Whisper
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
One routable IPv6 per AI agent, verifiable from the DNS root. Keyless tools need no signup.
| Author | io.github.whisper-sec |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2325 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Whisper": {
"url": "https://whisper.online/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (17)
whisper_signupStart or complete Whisper signup from an email address alone, and receive an API key that unlocks the provisioning and governance skills on this card. Send {"email":"..."} to start; a six-digit code arrives by email; send {"signup_id":"...","code":"123456"} to complete. No human step, no account needed first. Example call: {"skill":"signup","input":{"email":"[email protected]"}}
Parameters:
input(required) — object — Arguments for this operation, as an object. The example passes {"email":"[email protected]"}.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
whisper_verifyread-onlyIs this IPv6 address or hostname a real Whisper agent, and whose? Grades the full keyless trust chain: the reverse DNS record, the forward AAAA confirming it back to the same address, and the DANE-EE certificate pin published in DNSSEC-signed DNS. Returns is_whisper_agent with the evidence for the verdict either way, so a negative answer is an answer and not an error. Answers without an API key, and every leg of it is independently checkable from the DNS root with dig. Example call: {"skill":"verify","input":"2a04:2a01:b69a:6717:e3b0:51ff:3bf7:f478"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes 2a04:2a01:b69a:6717:e3b0:51ff:3bf7:f478.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_rdapread-onlyThe public registration record for any address in Whisper's space, in RFC 9083 form: the handle, the agent's label, its country, and the entities behind it. The same document the RDAP service serves at /ip/{address}, which any RDAP client can already read. Answers without an API key. Example call: {"skill":"rdap","input":"2a04:2a01:b69a:6717:e3b0:51ff:3bf7:f478"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes 2a04:2a01:b69a:6717:e3b0:51ff:3bf7:f478.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_identifyread-onlyIdentify an indicator (domain, IP, hash, …) against the graph. Answers without an API key. Example call: {"skill":"identify","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_assessread-onlyAssess the risk/policy posture of one or more indicators. Answers without an API key. Example call: {"skill":"assess","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_walkread-onlyWalk the graph from an indicator across its relationships. Answers without an API key. Example call: {"skill":"walk","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_watchWatch an indicator for change/activity over time. Answers without an API key. Example call: {"skill":"watch","input":{"action":"list"}}
Parameters:
input(required) — object — Arguments for this operation, as an object. The example passes {"action":"list"}.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
whisper_explainread-onlyExplain a verdict - the evidence and reasoning behind it. Answers without an API key. Example call: {"skill":"explain","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_variantsread-onlyEnumerate variants/permutations of an indicator. Answers without an API key. Example call: {"skill":"variants","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_originsread-onlyTrace the origins/provenance of an indicator. Answers without an API key. Example call: {"skill":"origins","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_historyread-onlyHistorical records for an indicator (incl. whois/bgp history). Answers without an API key. Example call: {"skill":"history","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_lookupTlsFingerprintread-onlyLook up a TLS (JA3/JA4) fingerprint in the graph. Answers without an API key. Example call: {"skill":"lookupTlsFingerprint","input":"ja3:771,4865-4866-4867"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes ja3:771,4865-4866-4867.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_lookupTorRelayread-onlyLook up Tor relay metadata for an address. Answers without an API key. Example call: {"skill":"lookupTorRelay","input":"185.220.101.1"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes 185.220.101.1.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_assetread-onlyResolve an asset and its catalog of attributes. Answers without an API key. Example call: {"skill":"asset","input":"example.com"}
Parameters:
input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_threatintelread-onlyThreat-intelligence indicator family (candidate apex/CDN/hosting). A family verb: name the sub-verb as "sub" alongside the input. Sub-verbs: candidateCdnApex, candidateMultiTenantApex, candidateSharedHostingIp.. Answers without an API key. Example call: {"skill":"threatintel","sub":"candidateCdnApex","input":5}
Parameters:
sub(required) — string — Which sub-verb of this family to run. The example runs "candidateCdnApex".input(required) — integer — A row limit. The example passes 5.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_pslread-onlyPublic-suffix-list family (tld-plus-one, is-public-suffix, affiliation). A family verb: name the sub-verb as "sub" alongside the input. Sub-verbs: tldPlusOne, isPublicSuffix, affiliation.. Answers without an API key. Example call: {"skill":"psl","sub":"tldPlusOne","input":"a.b.example.co.uk"}
Parameters:
sub(required) — string — Which sub-verb of this family to run. The example runs "tldPlusOne".input(required) — string — The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes a.b.example.co.uk.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
whisper_topAsnsByPrefixCountread-onlyTop ASNs ranked by announced-prefix count. Answers without an API key. Example call: {"skill":"topAsnsByPrefixCount","input":10}
Parameters:
input(required) — integer — A row limit. The example passes 10.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.