
One routable IPv6 per AI agent, verifiable from the DNS root. Keyless tools need no signup.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Assess the risk/policy posture of one or more indicators. Answers without an API key. Example call: {"skill":"assess","input":"example.com"}
The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com.
Assess the risk/policy posture of one or more indicators. Answers without an API key. Example call: {"skill":"assess","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Resolve an asset and its catalog of attributes. Answers without an API key. Example call: {"skill":"asset","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Explain a verdict - the evidence and reasoning behind it. Answers without an API key. Example call: {"skill":"explain","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Historical records for an indicator (incl. whois/bgp history). Answers without an API key. Example call: {"skill":"history","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Identify an indicator (domain, IP, hash, …) against the graph. Answers without an API key. Example call: {"skill":"identify","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Look up a TLS (JA3/JA4) fingerprint in the graph. Answers without an API key. Example call: {"skill":"lookupTlsFingerprint","input":"ja3:771,4865-4866-4867"}
| Argument | Type | Description |
|---|---|---|
| input* | 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. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes ja3:771,4865-4866-4867."
}
}
}Look up Tor relay metadata for an address. Answers without an API key. Example call: {"skill":"lookupTorRelay","input":"185.220.101.1"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes 185.220.101.1. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes 185.220.101.1."
}
}
}Trace the origins/provenance of an indicator. Answers without an API key. Example call: {"skill":"origins","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Public-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"}
| Argument | Type | Description |
|---|---|---|
| sub* | string | Which sub-verb of this family to run. The example runs "tldPlusOne". |
| input* | 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. |
{
"type": "object",
"required": [
"sub",
"input"
],
"properties": {
"sub": {
"type": "string",
"description": "Which sub-verb of this family to run. The example runs \"tldPlusOne\"."
},
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes a.b.example.co.uk."
}
}
}The 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"}
| Argument | Type | Description |
|---|---|---|
| input* | 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. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "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."
}
}
}Start 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]"}}
| Argument | Type | Description |
|---|---|---|
| input* | object | Arguments for this operation, as an object. The example passes {"email":"[email protected]"}. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"description": "Arguments for this operation, as an object. The example passes {\"email\":\"[email protected]\"}."
}
}
}Threat-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}
| Argument | Type | Description |
|---|---|---|
| sub* | string | Which sub-verb of this family to run. The example runs "candidateCdnApex". |
| input* | integer | A row limit. The example passes 5. |
{
"type": "object",
"required": [
"sub",
"input"
],
"properties": {
"sub": {
"type": "string",
"description": "Which sub-verb of this family to run. The example runs \"candidateCdnApex\"."
},
"input": {
"type": "integer",
"description": "A row limit. The example passes 5."
}
}
}Top ASNs ranked by announced-prefix count. Answers without an API key. Example call: {"skill":"topAsnsByPrefixCount","input":10}
| Argument | Type | Description |
|---|---|---|
| input* | integer | A row limit. The example passes 10. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "integer",
"description": "A row limit. The example passes 10."
}
}
}Enumerate variants/permutations of an indicator. Answers without an API key. Example call: {"skill":"variants","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Is 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"}
| Argument | Type | Description |
|---|---|---|
| input* | 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. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "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."
}
}
}Walk the graph from an indicator across its relationships. Answers without an API key. Example call: {"skill":"walk","input":"example.com"}
| Argument | Type | Description |
|---|---|---|
| input* | string | The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "string",
"description": "The indicator to look up: a domain, an IP address, an ASN or a file hash. The example passes example.com."
}
}
}Watch an indicator for change/activity over time. Answers without an API key. Example call: {"skill":"watch","input":{"action":"list"}}
| Argument | Type | Description |
|---|---|---|
| input* | object | Arguments for this operation, as an object. The example passes {"action":"list"}. |
{
"type": "object",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"description": "Arguments for this operation, as an object. The example passes {\"action\":\"list\"}."
}
}
}