/ 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 (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.

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

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.

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

{ "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.