/ developer & network toolbox
← all tools

API & MCP

The network, email and TLS tools are callable programmatically — free, read-only and without an API key. Same logic as the web UI, one source of truth. Rate-limited per IP.

# 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).

Jump to: REST · tools · MCP · OpenAPI

# 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).
curl https://invoker.tools/api/v1/tools/dns?domain=example.com&type=MX curl -X POST https://invoker.tools/api/v1/tools/dns \ -H 'content-type: application/json' \ -d '{"domain":"example.com","type":"MX"}'

# 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.

GET https://invoker.tools/api/v1/tools/ip

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
typeA | AAAA | MX | TXT | NS | CNAME | SOA — DNS record type (default A)
GET https://invoker.tools/api/v1/tools/dns?domain=example.com&type=MX

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
GET https://invoker.tools/api/v1/tools/mx?domain=example.com

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
GET https://invoker.tools/api/v1/tools/spf?domain=example.com

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
GET https://invoker.tools/api/v1/tools/dmarc?domain=example.com

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
GET https://invoker.tools/api/v1/tools/dkim?domain=example.com&selector=google

rdnsnetmcpweb UI →

Reverse DNS (PTR) + forward-confirmed reverse DNS (FCrDNS) for an IP address.

ip *string — IPv4 or IPv6 address
GET https://invoker.tools/api/v1/tools/rdns?ip=8.8.8.8

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.
GET https://invoker.tools/api/v1/tools/ssl?host=example.com

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
GET https://invoker.tools/api/v1/tools/whois?query=example.com

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
GET https://invoker.tools/api/v1/tools/dnsbl?target=8.8.8.8

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
GET https://invoker.tools/api/v1/tools/http?url=https%3A%2F%2Fexample.com

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
GET https://invoker.tools/api/v1/tools/up?url=example.com

propagationnetmcpweb UI →

Query several public DNS resolvers and compare their answers to check DNS propagation.

domain *string — domain to check
typeA | AAAA | MX | TXT | NS | CNAME — record type (default A)
GET https://invoker.tools/api/v1/tools/propagation?domain=example.com&type=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.
portstring — TCP port 1-65535 (optional if given as host:port)
timeoutstring — Connect timeout in ms (default 5000, max 10000)
GET https://invoker.tools/api/v1/tools/port?host=example.com&port=443

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
selectorsstring — Comma-separated DKIM selectors to probe (optional; defaults to common ones)
GET https://invoker.tools/api/v1/tools/mailcheck?domain=example.com

uuidmcpweb UI →

Generate one or many RFC 4122 version 4 (random) UUIDs.

countstring — how many, 1-100 (default 1)
GET https://invoker.tools/api/v1/tools/uuid?count=3

idsmcpweb UI →

Generate time-sortable ULID or UUIDv7 identifiers.

kindulid | uuidv7 — identifier type (default ulid)
countstring — how many, 1-100 (default 1)
GET https://invoker.tools/api/v1/tools/ids?kind=ulid&count=3

passwordmcpweb UI →

Generate a cryptographically strong random password with chosen character sets.

lengthstring — length 6-128 (default 20)
lowerstring — include a-z (default true)
upperstring — include A-Z (default true)
digitsstring — include 0-9 (default true)
symbolsstring — include symbols (default true)
noAmbiguousstring — exclude ambiguous chars like O/0 (default false)
GET https://invoker.tools/api/v1/tools/password?length=24&symbols=false

passphrasemcpweb UI →

Generate a memorable diceware-style passphrase with an entropy estimate.

wordsstring — number of words 2-12 (default 5)
separatordash | dot | space | underscore — default dash
capitalizestring — capitalize each word (default true)
numberstring — append a number (default true)
GET https://invoker.tools/api/v1/tools/passphrase?words=5&separator=dash

hashmcpweb UI →

Compute a SHA-1/256/384/512 digest of text.

text *string — text to hash
algorithmSHA-1 | SHA-256 | SHA-384 | SHA-512 — default SHA-256
GET https://invoker.tools/api/v1/tools/hash?text=hello&algorithm=SHA-256

base64mcpweb UI →

Encode or decode Base64 (UTF-8 safe).

text *string — text to encode, or Base64 to decode
modeencode | decode — default encode
GET https://invoker.tools/api/v1/tools/base64?text=hello+world&mode=encode

jwtmcpweb UI →

Decode a JWT header + payload and read exp/iat/nbf. Signature is NOT verified.

token *string — the JWT (header.payload.signature)
GET https://invoker.tools/api/v1/tools/jwt?token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc

jsonmcpweb UI →

Format (pretty-print), minify and validate JSON.

json *string — JSON text
modeformat | minify — default format
indentstring — spaces for format (default 2)
GET https://invoker.tools/api/v1/tools/json?json=%7B%22a%22%3A1%2C%22b%22%3A%5B2%2C3%5D%7D&mode=format

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
GET https://invoker.tools/api/v1/tools/case?text=hello+world&case=kebab

numbersmcpweb UI →

Convert an integer between binary, octal, decimal, hex and any base 2-36 (BigInt).

value *string — the integer, in the input base
fromstring — input base 2-36 (default 10)
tostring — an extra output base 2-36
GET https://invoker.tools/api/v1/tools/numbers?value=255&from=10

chmodmcpweb UI →

Convert a Unix octal file mode to symbolic notation and the chmod command.

mode *string — octal mode, e.g. 755 or 1777
GET https://invoker.tools/api/v1/tools/chmod?mode=755

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
GET https://invoker.tools/api/v1/tools/subnet?cidr=192.168.1.10%2F24

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
countstring — how many next runs, 1-20 (default 5)
GET https://invoker.tools/api/v1/tools/cron?expr=30+4+*+*+1-5&count=5

totpmcpweb UI →

Generate a TOTP secret + otpauth URI, or compute the current 6-digit code for a secret (RFC 6238).

secretstring — base32 secret; omit to generate a new one
issuerstring — issuer label (default invoker.tools)
accountstring — account label (default user@example.com)
GET https://invoker.tools/api/v1/tools/totp?issuer=invoker.tools&account=user%40example.com

metamcpweb UI →

Generate SEO + Open Graph + Twitter Card meta tags for a page.

title *string — page title
description *string — meta description
urlstring — canonical URL
imagestring — share image URL
sitestring — site name
cardsummary_large_image | summary — twitter card (default summary_large_image)
GET https://invoker.tools/api/v1/tools/meta?title=My+Page&description=A+great+page&url=https%3A%2F%2Fexample.com&image=https%3A%2F%2Fexample.com%2Fog.png

loremmcpweb UI →

Generate Lorem Ipsum placeholder text by paragraphs, sentences or words.

countstring — amount, 1-50 (default 3)
unitparagraphs | sentences | words — default paragraphs
GET https://invoker.tools/api/v1/tools/lorem?count=3&unit=paragraphs

palettemcpweb UI →

Generate a harmonious 5-colour palette (random/analogous/complementary/triad/monochrome).

schemerandom | analogous | complementary | triad | monochrome — default random
GET https://invoker.tools/api/v1/tools/palette?scheme=analogous

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)
GET https://invoker.tools/api/v1/tools/headers?headers=Received%3A+from+a+by+b%3B+Tue%2C+24+Jun+2026+03%3A05%3A46+-0700%0AFrom%3A+a%40b.com

timestampmcpweb UI →

Convert between a Unix timestamp (seconds or milliseconds) and a human-readable UTC date.

valuestring — a Unix timestamp or a date string; omit for the current time
GET https://invoker.tools/api/v1/tools/timestamp?value=1700000000

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
modeencode | decode — default encode
fullstring — treat as a full URL (encodeURI) instead of a component (default false)
GET https://invoker.tools/api/v1/tools/url?text=hello+world+%26+co&mode=encode

yamlmcpweb UI →

Convert between JSON and YAML.

text *string — JSON or YAML source
fromjson | yaml — input format (default json)
GET https://invoker.tools/api/v1/tools/yaml?text=%7B%22name%22%3A%22invoker%22%2C%22tags%22%3A%5B%22dns%22%2C%22tls%22%5D%7D&from=json

diffmcpweb UI →

Line-by-line diff of two texts, marking added, removed and unchanged lines.

a *string — original text
b *string — changed text
GET https://invoker.tools/api/v1/tools/diff?a=line+one%0Aline+two&b=line+one%0Aline+2

wordcountmcpweb UI →

Count characters, words, lines, sentences and paragraphs, with a reading-time estimate.

text *string — text to analyze
GET https://invoker.tools/api/v1/tools/wordcount?text=Hello+world.+This+is+invoker.tools.

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
samplesstring — number of probes, 1-10 (default 5)
intervalstring — milliseconds between probes, 250-5000 (default 1000)
GET https://invoker.tools/api/v1/tools/ttfb?url=https%3A%2F%2Fexample.com&samples=5

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
GET https://invoker.tools/api/v1/tools/robots?url=https%3A%2F%2Fexample.com%2F

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
GET https://invoker.tools/api/v1/tools/dnssec?domain=internetsociety.org

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
GET https://invoker.tools/api/v1/tools/emailhost?domain=example.com

# 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:

{ "mcpServers": { "invoker-tools": { "url": "https://invoker.tools/api/mcp" } } }

# 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.