tunnelmind avatar

TunnelMind Data API

ai.tunnelmind/data

Gives Claude direct access to TunnelMind's signed observability corpus across three lenses: Scry for hostile network actor data (IPs, ASNs, threat classifications), Sigil for programmatic ad supply chain trust scoring (publishers, SSPs, DSPs, OpenRTB SupplyChain), and Tracker for web surveillance fingerprints and SDK operators. All 43 tools in one surface. Reach for this when you need an AI agent to query cross-domain reputation signals that fuse attack intel, ad-tech trust graphs, and tracker ecosystems into verdicts no single feed provides. Every observation is Ed25519-signed at source, so provenance travels with the data. Runs over streamable HTTP with JSON-RPC 2.0.

tools
80
transport
HTTP
last updated
Aug 3, 2026

Install

From registry metadata
$ npx add-mcp https://mcp-data.tunnelmind.ai/mcp --name data

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http data https://mcp-data.tunnelmind.ai/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 80 tools

Verified live against the running server on Nov 6, 2026.

health_checkReturns a minimal status object confirming the API is alive. Use this to verify connectivity before chaining other calls, or as a liveness check in a workflow. Use this tool when: - You need to verify the API is reachable before starting a multi-step investigation. - A prior c...

Returns a minimal status object confirming the API is alive. Use this to verify connectivity before chaining other calls, or as a liveness check in a workflow. Use this tool when: - You need to verify the API is reachable before starting a multi-step investigation. - A prior c...

No parameters. Call it with no arguments.

get_domainReturns the complete surveillance intelligence record for a domain name. If the domain is in TunnelMind's tracker database (80,000+ entries), the response includes tracker category, risk score, fingerprinting data, cookie persistence, IAB TCF purposes, and the owning corporate...1 params

Returns the complete surveillance intelligence record for a domain name. If the domain is in TunnelMind's tracker database (80,000+ entries), the response includes tracker category, risk score, fingerprinting data, cookie persistence, IAB TCF purposes, and the owning corporate...

Parameters* required
domain*string
Domain name to look up (www. prefix stripped automatically)
list_domainsReturns a paginated list of domains from the tracker database. Results are ordered alphabetically by domain name and support cursor-based pagination for full traversal. Filtering by category and minimum score allows targeted data extraction. Use this tool when: - You want to e...4 params

Returns a paginated list of domains from the tracker database. Results are ordered alphabetically by domain name and support cursor-based pagination for full traversal. Filtering by category and minimum score allows targeted data extraction. Use this tool when: - You want to e...

Parameters* required
categorystring
one of ad_tech · analytics · social · fingerprinting · content · cdn
cursorstring
limitinteger
default: 50
min_scoreinteger
get_entityReturns an entity record for a surveillance company or data broker, including its industry, estimated annual data value per user (in USD), categories of personal data collected, and the full list of domains it controls. Free tier returns 5 domains, paid returns up to 200. Use...1 params

Returns an entity record for a surveillance company or data broker, including its industry, estimated annual data value per user (in USD), categories of personal data collected, and the full list of domains it controls. Free tier returns 5 domains, paid returns up to 200. Use...

Parameters* required
slug*string
list_entitiesReturns a paginated list of corporate entities in the TunnelMind surveillance database. Includes data categories, estimated data value, and industry classification. Useful for enumerating the surveillance ecosystem by sector. Use this tool when: - You want to enumerate all ent...3 params

Returns a paginated list of corporate entities in the TunnelMind surveillance database. Includes data categories, estimated data value, and industry classification. Useful for enumerating the surveillance ecosystem by sector. Use this tool when: - You want to enumerate all ent...

Parameters* required
cursorstring
industrystring
limitinteger
default: 50
searchSearches both the domains table and the entities table simultaneously. Returns matching domains (by domain name) and entities (by name or slug) in a single response. Minimum 2 characters, maximum 100 characters. Use this tool when: - You have a partial name and need to identif...1 params

Searches both the domains table and the entities table simultaneously. Returns matching domains (by domain name) and entities (by name or slug) in a single response. Minimum 2 characters, maximum 100 characters. Use this tool when: - You have a partial name and need to identif...

Parameters* required
q*string
intel_httpMakes a live HEAD request to the target domain from the Cloudflare edge, follows up to 5 redirects, and returns the full redirect chain, final HTTP status, key response headers, a security header score, and any third-party surveillance actors referenced in the Content-Security...3 params

Makes a live HEAD request to the target domain from the Cloudflare edge, follows up to 5 redirects, and returns the full redirect chain, final HTTP status, key response headers, a security header score, and any third-party surveillance actors referenced in the Content-Security...

Parameters* required
asyncboolean
When true, return a task handle immediately instead of blocking. Poll get_task for the result.default: false
domain*string
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
intel_stackFetches up to 32KB of the domain's HTML and response headers from the edge, then fingerprints the content for known CMS platforms, JavaScript frameworks, CDN providers, and analytics tools. Detection is based on meta generator tags, script src patterns, response headers, and c...3 params

Fetches up to 32KB of the domain's HTML and response headers from the edge, then fingerprints the content for known CMS platforms, JavaScript frameworks, CDN providers, and analytics tools. Detection is based on meta generator tags, script src patterns, response headers, and c...

Parameters* required
asyncboolean
When true, return a task handle immediately instead of blocking. Poll get_task for the result.default: false
domain*string
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
intel_robotsRetrieves the target domain's `robots.txt` file and parses it for AI crawler disallow rules. Specifically detects policies for known AI crawlers (GPTBot, ClaudeBot, CCBot, Bytespider, etc.) and returns a structured summary of the crawling policy. Use this tool when: - You need...3 params

Retrieves the target domain's `robots.txt` file and parses it for AI crawler disallow rules. Specifically detects policies for known AI crawlers (GPTBot, ClaudeBot, CCBot, Bytespider, etc.) and returns a structured summary of the crawling policy. Use this tool when: - You need...

Parameters* required
asyncboolean
When true, return a task handle immediately instead of blocking. Poll get_task for the result.default: false
domain*string
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
intel_agentProbes a domain for known AI agent integration signals: `llms.txt`, `ai.txt`, `/.well-known/ai-plugin.json`, `openapi.json`, `swagger.json`, MCP manifest, MCP SSE endpoint. Returns a score based on the count of signals detected. Use this to assess whether a domain is ready for...3 params

Probes a domain for known AI agent integration signals: `llms.txt`, `ai.txt`, `/.well-known/ai-plugin.json`, `openapi.json`, `swagger.json`, MCP manifest, MCP SSE endpoint. Returns a score based on the count of signals detected. Use this to assess whether a domain is ready for...

Parameters* required
asyncboolean
When true, return a task handle immediately instead of blocking. Poll get_task for the result.default: false
domain*string
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
intel_injectFetches a domain's homepage and checks for content patterns that could constitute prompt injection attacks against AI agents that visit and ingest the page. Signals include hidden text, invisible divs, `<!-- AI: ignore -->` style comments, and known injection patterns. Use thi...3 params

Fetches a domain's homepage and checks for content patterns that could constitute prompt injection attacks against AI agents that visit and ingest the page. Signals include hidden text, invisible divs, `<!-- AI: ignore -->` style comments, and known injection patterns. Use thi...

Parameters* required
asyncboolean
When true, return a task handle immediately instead of blocking. Poll get_task for the result.default: false
domain*string
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
intel_optoutChecks a domain for all known AI training data opt-out mechanisms beyond robots.txt: TDM (Text and Data Mining) reservation headers, `<meta name="ai">` tags, Creative Commons NonCommercial licenses, and other machine-readable opt-out signals. Use this tool when: - You need to...3 params

Checks a domain for all known AI training data opt-out mechanisms beyond robots.txt: TDM (Text and Data Mining) reservation headers, `<meta name="ai">` tags, Creative Commons NonCommercial licenses, and other machine-readable opt-out signals. Use this tool when: - You need to...

Parameters* required
asyncboolean
When true, return a task handle immediately instead of blocking. Poll get_task for the result.default: false
domain*string
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
get_receiptReturns metadata for a TunnelMind surveillance receipt — a signed document proving that a specific user's surveillance exposure was observed, measured, and recorded at a specific time. Does NOT return the receipt's signature (anti-phishing protection). To verify a receipt's co...1 params

Returns metadata for a TunnelMind surveillance receipt — a signed document proving that a specific user's surveillance exposure was observed, measured, and recorded at a specific time. Does NOT return the receipt's signature (anti-phishing protection). To verify a receipt's co...

Parameters* required
receipt_id*string
verify_receiptTamper-detection verification for TunnelMind surveillance receipts. Submit the receipt ID, the SHA-256 content hash, and the Ed25519 signature from the receipt document. The registry compares these against what was recorded at issuance time. Returns VALID if both match exactly...3 params

Tamper-detection verification for TunnelMind surveillance receipts. Submit the receipt ID, the SHA-256 content hash, and the Ed25519 signature from the receipt document. The registry compares these against what was recorded at issuance time. Returns VALID if both match exactly...

Parameters* required
content_hash*string
SHA-256 hex hash of the receipt JSON content
receipt_id*string
signature*string
Ed25519 signature from the receipt document
create_free_keySelf-serve free tier — the rung between anonymous access and paid blocks. One email in, one API key out, shown exactly once. Use this tool when: - You are calling anonymously and hitting the anonymous rate limit. - You want your calls identified so usage survives IP changes. L...1 params

Self-serve free tier — the rung between anonymous access and paid blocks. One email in, one API key out, shown exactly once. Use this tool when: - You are calling anonymously and hitting the anonymous rate limit. - You want your calls identified so usage survives IP changes. L...

Parameters* required
email*string
get_api_keyReturns the tier, label, masked owner email, creation date, last-used timestamp, today's request count, and daily request limit for the API key used in this request. Useful for agents that need to monitor their own quota consumption. Use this tool when: - You want to check how...

Returns the tier, label, masked owner email, creation date, last-used timestamp, today's request count, and daily request limit for the API key used in this request. Useful for agents that need to monitor their own quota consumption. Use this tool when: - You want to check how...

No parameters. Call it with no arguments.

revoke_api_keyPermanently deactivates the API key used to make this request. This action is irreversible. After revocation, the key will return 401 on all subsequent calls. Use this tool when: - You want to rotate your API key (revoke old, then provision a new one). - You believe your key h...

Permanently deactivates the API key used to make this request. This action is irreversible. After revocation, the key will return 401 on all subsequent calls. Use this tool when: - You want to rotate your API key (revoke old, then provision a new one). - You believe your key h...

No parameters. Call it with no arguments.

get_taskReturns the current status of a task created by an `?async=true` intel request. Poll this endpoint until `status` is one of: `complete`, `failed`, `cancelled`, `expired`. On `complete`, the `result` field contains the same payload the sync endpoint would have returned. On `fai...1 params

Returns the current status of a task created by an `?async=true` intel request. Poll this endpoint until `status` is one of: `complete`, `failed`, `cancelled`, `expired`. On `complete`, the `result` field contains the same payload the sync endpoint would have returned. On `fai...

Parameters* required
task_id*string
cancel_taskMarks the task as `cancelled`. If the task is already in a terminal state (`complete`, `failed`, `expired`), returns 409 Conflict. Only the identity that created the task may cancel it. Use this tool when: - You submitted a probe with `?async=true` and no longer need the resul...1 params

Marks the task as `cancelled`. If the task is already in a terminal state (`complete`, `failed`, `expired`), returns 409 Conflict. Only the identity that created the task may cancel it. Use this tool when: - You submitted a probe with `?async=true` and no longer need the resul...

Parameters* required
task_id*string
stream_taskOpens a persistent SSE connection that emits events as the task progresses. The stream closes automatically when the task reaches a terminal state or after ~90 seconds (timeout). Heartbeat comments are sent every ~15 seconds to keep the connection alive through proxies. Event...1 params

Opens a persistent SSE connection that emits events as the task progresses. The stream closes automatically when the task reaches a terminal state or after ~90 seconds (timeout). Heartbeat comments are sent every ~15 seconds to keep the connection alive through proxies. Event...

Parameters* required
task_id*string
audit_exportReturns NDJSON (one JSON object per line) of audit log entries. Each entry records the operation called, the identity, hashes of the request and response, duration, and an Ed25519 signature over the canonical entry JSON. Entries are hash-chained: each entry's `prev_entry_hash`...3 params

Returns NDJSON (one JSON object per line) of audit log entries. Each entry records the operation called, the identity, hashes of the request and response, duration, and an Ed25519 signature over the canonical entry JSON. Entries are hash-chained: each entry's `prev_entry_hash`...

Parameters* required
fromstring
limitinteger
default: 1000
tostring
generate_receiptAt least one of `domains` (or `domain`) is required. Looks up each submitted domain in the TunnelMind tracker database, aggregates risk metrics (avg score, max score, fingerprinters, high-risk domains, entity ownership), and issues a signed surveillance receipt. The receipt is...2 params

At least one of `domains` (or `domain`) is required. Looks up each submitted domain in the TunnelMind tracker database, aggregates risk metrics (avg score, max score, fingerprinters, high-risk domains, entity ownership), and issues a signed surveillance receipt. The receipt is...

Parameters* required
domainstring
Single domain shorthand (alternative to `domains`)
domainsarray
Domain names to look up (1–50)
sigil_verify_ads_txtConfirms whether an SSP/exchange is authorized to sell a publisher's inventory according to that publisher's ads.txt. This is a cache lookup against ads.txt files crawled daily across the top 10,000 publisher domains — it does NOT fetch the publisher's ads.txt live, so it is f...6 params

Confirms whether an SSP/exchange is authorized to sell a publisher's inventory according to that publisher's ads.txt. This is a cache lookup against ads.txt files crawled daily across the top 10,000 publisher domains — it does NOT fetch the publisher's ads.txt live, so it is f...

Parameters* required
exchange_domain*string
Exchange/SSP domain as listed in ads.txt
publisher_domain*string
Publisher domain (www. prefix and scheme stripped)
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — the response shape is otherwise unchanged, and a signing failure never costs you the verdict (ADR-014).default: false
resolve_chainboolean
When true, a matched RESELLER entry is cross-checked against the exchange's sellers.jsondefault: false
seller_id*string
Publisher's seller/account ID at the exchange
seller_typestring
Optional — checked against the ads.txt entryone of DIRECT · RESELLER
sigil_verify_ads_txt_batchRuns up to 100 ads.txt verifications in a single call — the endpoint an ad-buying agent uses for pre-bid checks across a whole campaign's supply. Each item is the same shape as `sigil_verify_ads_txt`. Per-item validation failures are reported inline; the batch never fails as a...2 params

Runs up to 100 ads.txt verifications in a single call — the endpoint an ad-buying agent uses for pre-bid checks across a whole campaign's supply. Each item is the same shape as `sigil_verify_ads_txt`. Per-item validation failures are reported inline; the batch never fails as a...

Parameters* required
items*array
1–100 verification requests
resolve_chainboolean
Resolve reseller chains for every RESELLER itemdefault: false
tractionLive traction numbers computed from sources the Worker owns: the hash-chained D1 audit log (7-day call volume, distinct identified callers, top operations), the stored-receipt table, and Stripe (succeeded charges → paying customers, gross USD). Ed25519-signed with the same att...

Live traction numbers computed from sources the Worker owns: the hash-chained D1 audit log (7-day call volume, distinct identified callers, top operations), the stored-receipt table, and Stripe (succeeded charges → paying customers, gross USD). Ed25519-signed with the same att...

No parameters. Call it with no arguments.

tollbooth_statsThe public read over the Conduct Log Commons: which agents knocked on attested tollbooth sites in the last 7 days, what they did when offered paid access, and what they would have paid. First-party monitors and credential-scanning recon are classified and EXCLUDED from the hea...

The public read over the Conduct Log Commons: which agents knocked on attested tollbooth sites in the last 7 days, what they did when offered paid access, and what they would have paid. First-party monitors and credential-scanning recon are classified and EXCLUDED from the hea...

No parameters. Call it with no arguments.

tollbooth_exportFree bulk read of the commons — the raw record is never paywalled. Every row is a tollbooth document exactly as its site signed it (Ed25519 over RFC 8785 JCS, key = the row's own `site`), wrapped in a `_commons` envelope naming the tier and vouching domain. Nothing in a row re...5 params

Free bulk read of the commons — the raw record is never paywalled. Every row is a tollbooth document exactly as its site signed it (Ed25519 over RFC 8785 JCS, key = the row's own `site`), wrapped in a `_commons` envelope naming the tier and vouching domain. Nothing in a row re...

Parameters* required
daystring
UTC day, YYYY-MM-DD. Defaults to yesterday.
formatstring
json for the {ok,data} envelope (what this tool reads); omit for the NDJSON download.one of jsondefault: json
kindstring
one of receipts · reportsdefault: receipts
limitinteger
Rows to return (JSON form defaults to 200; the NDJSON download at the same URL defaults to 5000).default: 200
tierstring
one of attested · alldefault: attested
tollbooth_sitesMembership of the commons: every signing key that has reported, the domain that vouched for it (by serving the key in its /.well-known/tollbooth-site.json), and when it was last re-checked. Attested only by default; tier=all adds unattested keys with the domain they CLAIMED bu...1 params

Membership of the commons: every signing key that has reported, the domain that vouched for it (by serving the key in its /.well-known/tollbooth-site.json), and when it was last re-checked. Attested only by default; tier=all adds unattested keys with the domain they CLAIMED bu...

Parameters* required
tierstring
one of attested · alldefault: attested
snapshot_manifestP4 corpus replication, the OPA "push data into the PDP" pattern. A daily snapshot of the domain corpus (domain, score, category, fingerprinting, entity) is published as deterministic JSONL with a manifest carrying row_count, sha256 over the exact bytes, a diff summary vs the p...1 params

P4 corpus replication, the OPA "push data into the PDP" pattern. A daily snapshot of the domain corpus (domain, score, category, fingerprinting, entity) is published as deterministic JSONL with a manifest carrying row_count, sha256 over the exact bytes, a diff summary vs the p...

Parameters* required
date*string
snapshot_dataThe exact bytes the manifest's sha256 commits to. Content-Type `application/x-ndjson`; rows ordered by domain. Verify: `sha256(body) == manifest.sha256`.1 params

The exact bytes the manifest's sha256 commits to. Content-Type `application/x-ndjson`; rows ordered by domain. Verify: `sha256(body) == manifest.sha256`.

Parameters* required
date*string
snapshot_diffJSONL diff vs the previous snapshot — apply +/~/- lines instead of re-pulling the corpus.1 params

JSONL diff vs the previous snapshot — apply +/~/- lines instead of re-pulling the corpus.

Parameters* required
date*string
status_historyOne sample per 20-minute monitor sweep. `uptime_pct` is the share of sweeps in which every fail point was green (the strictest read); `per_monitor` lists only monitors that failed at least once in the window. History begins at feature deploy and is never extrapolated backwards...1 params

One sample per 20-minute monitor sweep. `uptime_pct` is the share of sweeps in which every fail point was green (the strictest read); `per_monitor` lists only monitors that failed at least once in the window. History begins at feature deploy and is never extrapolated backwards...

Parameters* required
daysinteger
default: 30
get_self_viewP83 Gate 1. The caller is the subject: every fact here comes from the TLS handshake and headers the caller has already sent, so there is no render, no browser, and nothing to authorize. Three surfaces: - `client` — user-agent, HTTP protocol, TLS version/cipher, ClientHello len...1 params

P83 Gate 1. The caller is the subject: every fact here comes from the TLS handshake and headers the caller has already sent, so there is no render, no browser, and nothing to authorize. Three surfaces: - `client` — user-agent, HTTP protocol, TLS version/cipher, ClientHello len...

Parameters* required
receiptboolean
default: false
agent_registries_lookupP75 registry aggregation: the cross-lens join applied to agent identity. Incumbent providers each consult only their own registry; this endpoint checks every registry TunnelMind can reach and labels each answer with an explicit state, so a gap can never be mistaken for a clean...2 params

P75 registry aggregation: the cross-lens join applied to agent identity. Incumbent providers each consult only their own registry; this endpoint checks every registry TunnelMind can reach and labels each answer with an explicit state, so a gap can never be mistaken for a clean...

Parameters* required
receiptstring
Attach a signed TunnelMind Receipt v1.0 over the aggregation.one of true
subject*string
IP address, domain, or agent name / User-Agent fragment.
verify_agentReconciles a claimed bot User-Agent against the operator's OWN published IP-range feed (Googlebot, GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Bingbot). A User-Agent is trivial to forge; membership in the operator's published CIDR ranges is not. This e...2 params

Reconciles a claimed bot User-Agent against the operator's OWN published IP-range feed (Googlebot, GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Bingbot). A User-Agent is trivial to forge; membership in the operator's published CIDR ranges is not. This e...

Parameters* required
ip*string
uastring
verify_agent_signatureNeutral third-party Web Bot Auth verification. An origin — or the PDP deciding for it — received a request from a claimed agent carrying the Web Bot Auth headers (Signature, Signature-Input, Signature-Agent). Relay those headers here, plus the authority the request was address...7 params

Neutral third-party Web Bot Auth verification. An origin — or the PDP deciding for it — received a request from a claimed agent carrying the Web Bot Auth headers (Signature, Signature-Input, Signature-Agent). Relay those headers here, plus the authority the request was address...

Parameters* required
authority*string
methodstring
pathstring
schemestring
signature*string
signature_agent*string
signature_input*string
create_subscriptionSubscribe to a node (ip, domain, asn, or entity slug). On a recurring sweep (~20 min) TunnelMind re-runs the fused `POST /v1/verify` verdict and, when the *material* result changes — the verdict label flips, the trust score crosses a band, or the signal set changes — POSTs a s...3 params

Subscribe to a node (ip, domain, asn, or entity slug). On a recurring sweep (~20 min) TunnelMind re-runs the fused `POST /v1/verify` verdict and, when the *material* result changes — the verdict label flips, the trust score crosses a band, or the signal set changes — POSTs a s...

Parameters* required
callback_url*string
eventsarray
node*string
list_subscriptionsReturns the caller's active and inactive subscriptions (signing_key redacted). Requires an API key.

Returns the caller's active and inactive subscriptions (signing_key redacted). Requires an API key.

No parameters. Call it with no arguments.

get_subscriptionRead one of your subscriptions (signing_key redacted).1 params

Read one of your subscriptions (signing_key redacted).

Parameters* required
id*string
delete_subscriptionCancel a subscription.1 params

Cancel a subscription.

Parameters* required
id*string
receipt_log_sthP72 RFC 6962 transparency log over the unified receipt ledger (ADR-010). The STH commits to the entire log: `tree_size`, `root_hash` (`0x` + SHA-256), `timestamp`, and an Ed25519 signature (with `key_id` and embedded public key) over the RFC 8785 canonicalization of the body....

P72 RFC 6962 transparency log over the unified receipt ledger (ADR-010). The STH commits to the entire log: `tree_size`, `root_hash` (`0x` + SHA-256), `timestamp`, and an Ed25519 signature (with `key_id` and embedded public key) over the RFC 8785 canonicalization of the body....

No parameters. Call it with no arguments.

receipt_log_inclusion_proofProves a specific receipt (by unified `receipt_id`, lens alias, or raw `leaf_index`) is included in the tree at `tree_size` (default: the latest STH's). Returns `leaf_hash`, the `audit_path`, the recomputed `root_hash`, and the matching STH. What this proves: the receipt in yo...3 params

Proves a specific receipt (by unified `receipt_id`, lens alias, or raw `leaf_index`) is included in the tree at `tree_size` (default: the latest STH's). Returns `leaf_hash`, the `audit_path`, the recomputed `root_hash`, and the matching STH. What this proves: the receipt in yo...

Parameters* required
leaf_indexinteger
receipt_idstring
tree_sizeinteger
receipt_log_consistency_proofProves the log at size `second` is an append-only extension of the log at size `first` — history was never rewritten. Returns both roots and the proof path. Verify offline with `scripts/verify-log.mjs consistency <proof.json>`.2 params

Proves the log at size `second` is an append-only extension of the log at size `first` — history was never rewritten. Returns both roots and the proof path. Verify offline with `scripts/verify-log.mjs consistency <proof.json>`.

Parameters* required
first*integer
second*integer
receipt_lookupP72 unified receipt ledger (ADR-010): every receipt-issuing surface (cross-lens verify, tracker verify, verdict, profile, explain, GhostRoute, Sigil/ATAP, compliance export) records the exact signed document it returned, keyed by one ID space. Use this tool when: - An agent ho...1 params

P72 unified receipt ledger (ADR-010): every receipt-issuing surface (cross-lens verify, tracker verify, verdict, profile, explain, GhostRoute, Sigil/ATAP, compliance export) records the exact signed document it returned, keyed by one ID space. Use this tool when: - An agent ho...

Parameters* required
id*string
attributes_lookupP73 fast attributes endpoint (PIP-PLAN P3): a full `POST /v1/verify` resolve fans out across four lenses (~2s) — fine for preflight, fatal inside a per-request authorization loop. This endpoint serves the last-known signed bundle from a single KV read, with the P69 freshness c...1 params

P73 fast attributes endpoint (PIP-PLAN P3): a full `POST /v1/verify` resolve fans out across four lenses (~2s) — fine for preflight, fatal inside a per-request authorization loop. This endpoint serves the last-known signed bundle from a single KV read, with the P69 freshness c...

Parameters* required
node*string
tracker_verifyThe Tracker lens-owned verify surface: a per-node verdict over the normalized DDG Tracker Radar / IAB TCF / Disconnect.me corpus, with an optional signed TunnelMind Receipt v1.0. This is the single-lens ground truth the fused `POST /v1/verify` cites for its tracker block. Use...2 params

The Tracker lens-owned verify surface: a per-node verdict over the normalized DDG Tracker Radar / IAB TCF / Disconnect.me corpus, with an optional signed TunnelMind Receipt v1.0. This is the single-lens ground truth the fused `POST /v1/verify` cites for its tracker block. Use...

Parameters* required
node*string
receiptboolean
default: false
sigil_verify_domainConfirms a publisher controls a domain by checking for a DNS TXT record the owner publishes under `_tunnelmind.{domain}`. A DNS record can only be set by whoever controls the zone, so its presence proves control — a stronger signal than ads.txt, which is just a file anything i...1 params

Confirms a publisher controls a domain by checking for a DNS TXT record the owner publishes under `_tunnelmind.{domain}`. A DNS record can only be set by whoever controls the zone, so its presence proves control — a stronger signal than ads.txt, which is just a file anything i...

Parameters* required
domain*string
sigil_verify_ip_typeClassifies an IPv4 or IPv6 address by network type — the high-value ad-fraud signal being datacenter traffic posing as residential or living-room (CTV) devices. IP→ASN resolution uses Team Cymru's public service; the ASN is then classified by its registered organization name....1 params

Classifies an IPv4 or IPv6 address by network type — the high-value ad-fraud signal being datacenter traffic posing as residential or living-room (CTV) devices. IP→ASN resolution uses Team Cymru's public service; the ASN is then classified by its registered organization name....

Parameters* required
ip*string
sigil_verify_adscertReports whether a domain publishes ads.cert (IAB Tech Lab Authenticated Connections) DNS records — a readiness signal showing the domain supports cryptographically authenticated ad-tech connections. This is not signature verification: ads.cert is pairwise, so verifying a signe...1 params

Reports whether a domain publishes ads.cert (IAB Tech Lab Authenticated Connections) DNS records — a readiness signal showing the domain supports cryptographically authenticated ad-tech connections. This is not signature verification: ads.cert is pairwise, so verifying a signe...

Parameters* required
domain*string
sigil_verify_app_bundleVerifies that a mobile or CTV app bundle ID actually exists in the relevant app store — used to detect bundle spoofing in bid requests. Platform support (v1): - `ios`: verified live via Apple's iTunes Lookup API. - `android`: verified live via the Google Play store listing pag...3 params

Verifies that a mobile or CTV app bundle ID actually exists in the relevant app store — used to detect bundle spoofing in bid requests. Platform support (v1): - `ios`: verified live via Apple's iTunes Lookup API. - `android`: verified live via the Google Play store listing pag...

Parameters* required
bundle_id*string
claimed_developerstring
platform*string
one of ios · android · ctv_roku · ctv_fire · ctv_samsung · ctv_lg
cross_lens_verifyA2 — the cross-lens join. TunnelMind owns multiple halves of the open-web graph: Scry sees who is on every IP (attacker intelligence, actor class, Augur threat-intel overlap); Sigil sees the supply graph (publishers, SSPs, DSPs, ads.txt + sellers.json + SupplyChain Object); Gh...5 params

A2 — the cross-lens join. TunnelMind owns multiple halves of the open-web graph: Scry sees who is on every IP (attacker intelligence, actor class, Augur threat-intel overlap); Sigil sees the supply graph (publishers, SSPs, DSPs, ads.txt + sellers.json + SupplyChain Object); Gh...

Parameters* required
aitstring
Optional ATAP AIT id (`AIT-<uuidv7>`). When present, the verdict is wrapped in a witness-tier `cross_lens:verified` event chained onto the AIT and signed by Sigil (witness OAI-2026-0000201). Indepe...
claimed_zonestring
Caller-asserted sovereign zone for the subject (e.g. `EU`) — "the vendor's contract says EU-only; score the routing against that claim." Validated against the sovereign-zone reference; an unknown c...
node*string
The node to verify. Type is auto-detected: IPv4/IPv6 address, domain, ASN with optional `AS` prefix, or entity_slug.
thresholdsobject
{ pass, fail } verdict cutoffs (defaults 0.7 / 0.3)
weightsobject
Per-component weight overrides
cross_lens_lookupReturns all three lens views for a single node key without computing a fused verdict. Use this when you want raw transparency — the Tracker catalog presence, Scry attacker observations, and Sigil supply-graph position — and intend to make your own decision. For an opinionated...1 params

Returns all three lens views for a single node key without computing a fused verdict. Use this when you want raw transparency — the Tracker catalog presence, Scry attacker observations, and Sigil supply-graph position — and intend to make your own decision. For an opinionated...

Parameters* required
node*string
IPv4/IPv6 address, domain, ASN with optional `AS` prefix, or entity_slug. Type is auto-detected.
verdict_lookupThe reconciliation layer in one call. Where `cross_lens_verify` answers "what is this network destination," `verdict_lookup` answers a different, sharper question about a key-addressed ACTOR: **does what this key claims about itself match what the network has seen it do?** It...6 params

The reconciliation layer in one call. Where `cross_lens_verify` answers "what is this network destination," `verdict_lookup` answers a different, sharper question about a key-addressed ACTOR: **does what this key claims about itself match what the network has seen it do?** It...

Parameters* required
claimsstring
URL-encoded JSON array of raw claim objects, e.g. `[{"type":"ed25519-self","signature":"…","nonce":"…"},{"type":"eat","token":"…"}]`. Overrides the `nonce`/`sig`/`eat` convenience params when prese...
eatstring
A RATS/EAT compact JWS (EdDSA) attesting this key, signed by a trusted anchor.
key*string
The actor's Ed25519 public key, as hex (64 chars, optional 0x), base64url (43 chars, unpadded), or did:key (did:key:z6Mk…).
noncestring
Binding nonce for a bare-Ed25519 self-attestation (paired with `sig`).
sigstring
Base64 Ed25519 signature over `nonce`, proving control of the key.
subjectstring
An ip / domain / ASN / entity_slug the key claims to act as. Drives the conduct (graph behavior) side of the reconciliation. Omit for a claim-only verdict.
preflight_should_i_actThe single call an agent makes before transacting with a destination on the open web. Composes the cross-lens verdict with a bounded Tracker-presence bonus, maps the adjusted trust score to a tri-state decision (`allow` / `caution` / `deny`), and returns a 5-minute signed cons...5 params

The single call an agent makes before transacting with a destination on the open web. Composes the cross-lens verdict with a bounded Tracker-presence bonus, maps the adjusted trust score to a tri-state decision (`allow` / `caution` / `deny`), and returns a 5-minute signed cons...

Parameters* required
agent_idstring
Caller's stable agent identifier, recorded in the receipt. Validated against /^[A-Za-z0-9._:-]{1,128}$/.
aitstring
Optional ATAP AIT id. When present, chains a witness-tier `preflight:consulted` event onto the AIT. Requires `Authorization: Bearer <holder_secret>` (issued once at AIT registration); nothing is ap...
intentstring
Free-form context — recorded in the receipt, never affects the decision. Validated against /^[A-Za-z0-9._:-]{1,64}$/.
node*string
IPv4/IPv6 address, domain, ASN with optional `AS` prefix, or entity_slug.
thresholdsobject
Optional overrides; must satisfy 0 <= caution < allow <= 1.
explain_verdictCall this when you need to ACT ON a verdict and prove why. It returns the exact verdict `/v1/verify/{node}` computes (same fusion, same weights) PLUS a traced evidence chain: every claim is attributed to where it came from — the attested sensor fleet (with attestation tier), a...1 params

Call this when you need to ACT ON a verdict and prove why. It returns the exact verdict `/v1/verify/{node}` computes (same fusion, same weights) PLUS a traced evidence chain: every claim is attributed to where it came from — the attested sensor fleet (with attestation tier), a...

Parameters* required
node*string
IPv4/IPv6, ASN (AS####), domain, or entity_slug.
profile_entityAt least one of `ip`, `domain` or `entity` is required. Call this before routing traffic, bidding on inventory, or trusting a counterparty. It fuses ALL THREE TunnelMind lenses for one subject — Scry (attacker intelligence + threat feeds + open ports), Sigil (ad-supply-chain p...3 params

At least one of `ip`, `domain` or `entity` is required. Call this before routing traffic, bidding on inventory, or trusting a counterparty. It fuses ALL THREE TunnelMind lenses for one subject — Scry (attacker intelligence + threat feeds + open ports), Sigil (ad-supply-chain p...

Parameters* required
domainstring
Domain of the subject (Sigil + Tracker lenses).
entitystring
entity_slug of the subject (Sigil + Tracker lenses).
ipstring
IPv4 or IPv6 address of the subject (Scry lens).
signal_tracker_densityObserved component counts first, a labelled derived roll-up second. The components — `data_categories`, supply-surface counts (ssp + publisher + dsp + owns_seat + buys_through), and corroborating `sources` — are facts. `derived.tracker_density` (0–100) is a weighted blend of t...1 params

Observed component counts first, a labelled derived roll-up second. The components — `data_categories`, supply-surface counts (ssp + publisher + dsp + owns_seat + buys_through), and corroborating `sources` — are facts. `derived.tracker_density` (0–100) is a weighted blend of t...

Parameters* required
entity_slug*string
Stable kebab-case entity identifier ([a-z0-9-], 1–255 chars).
signal_dark_pool_riskReconciles every sell path a publisher declares (`sells_through`) against each SSP's own sellers.json (`exchange_seat`) and keeps three classes strictly separate: `corroborated` (seat present), `contradicted` (SSP crawled but seller_id absent — real risk), and `unchecked` (SSP...1 params

Reconciles every sell path a publisher declares (`sells_through`) against each SSP's own sellers.json (`exchange_seat`) and keeps three classes strictly separate: `corroborated` (seat present), `contradicted` (SSP crawled but seller_id absent — real risk), and `unchecked` (SSP...

Parameters* required
domain*string
Publisher hostname.
signal_halo_scoreScores an entity by the trust character of its neighbours — the SSPs its publishers sell through and the DSPs it buys through. Reports neighbour counts, mean/min neighbour trust, and how many neighbours are adversary-classified (P46). `derived.halo_score` (0–100, or null when...1 params

Scores an entity by the trust character of its neighbours — the SSPs its publishers sell through and the DSPs it buys through. Reports neighbour counts, mean/min neighbour trust, and how many neighbours are adversary-classified (P46). `derived.halo_score` (0–100, or null when...

Parameters* required
entity_slug*string
Stable kebab-case entity identifier.
signal_team_signalSurfaces other entities that operate as a coordinated team with this one: they share a NARROWLY-held direct seller account (2–8 entities — network house accounts shared by hundreds are separated into `house_accounts_excluded`, not counted) or co-own an exchange seat. `derived....1 params

Surfaces other entities that operate as a coordinated team with this one: they share a NARROWLY-held direct seller account (2–8 entities — network house accounts shared by hundreds are separated into `house_accounts_excluded`, not counted) or co-own an exchange seat. `derived....

Parameters* required
entity_slug*string
Stable kebab-case entity identifier.
sigil_verify_supply_pathThe core Sigil pre-bid call. Submit a supply path; Sigil composes its individual checks into one trust verdict and returns a signed `sigil_token` the agent can attach to its bid as proof of verification. Checks composed: - `ads_txt` — exchange authorized in the publisher's ads...6 params

The core Sigil pre-bid call. Submit a supply path; Sigil composes its individual checks into one trust verdict and returns a signed `sigil_token` the agent can attach to its bid as proof of verification. Checks composed: - `ads_txt` — exchange authorized in the publisher's ads...

Parameters* required
aitstring
Optional ATAP AIT id (`AIT-<uuidv7>`). When present, the `sigil_token` is bound to the AIT and a witness-tier `supply:verified` / `supply:rejected` event is chained onto it (when publisher_domain,...
buyerobject
Optional. When present and the verdict is not `fail`, Sigil opportunistically records a `buys_through` edge linking the buyer entity to the resolved DSP. Side-effect persistence only — never affect...
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — the response shape is otherwise unchanged, and a signing failure never costs you the verdict (ADR-014).default: false
supply_path*object
thresholdsobject
{ pass, fail } verdict cutoffs
weightsobject
Per-check weight overrides
sigil_verify_tokenVerifies the authenticity and expiry of a `sigil_token` returned by `sigil_verify_supply_path`. Anyone can call this — no key needed; Sigil verifies the Ed25519 signature server-side. Tokens live 5 minutes. Returns `valid` (boolean), `reason` (when invalid: malformed / expired...1 params

Verifies the authenticity and expiry of a `sigil_token` returned by `sigil_verify_supply_path`. Anyone can call this — no key needed; Sigil verifies the Ed25519 signature server-side. Tokens live 5 minutes. Returns `valid` (boolean), `reason` (when invalid: malformed / expired...

Parameters* required
token*string
sigil_verify_supply_chainThe bid-time contract. Pass the SupplyChain object from an OpenRTB bid request (`source.ext.schain`) verbatim, plus the originating site domain or app bundle. Sigil verifies, per node and in aggregate: - origin ads.txt — the publisher's ads.txt authorizes node[0] (asi + sid)....4 params

The bid-time contract. Pass the SupplyChain object from an OpenRTB bid request (`source.ext.schain`) verbatim, plus the originating site domain or app bundle. Sigil verifies, per node and in aggregate: - origin ads.txt — the publisher's ads.txt authorizes node[0] (asi + sid)....

Parameters* required
app_bundlestring
buyerobject
Optional. When present and the verdict is not `fail`, Sigil opportunistically records a `buys_through` edge linking the buyer entity to the resolved DSP. Side-effect persistence only — never affect...
schain*object
site_domainstring
sigil_traverseReconstructs the supply paths for a publisher domain from Sigil's own crawl and returns them ITEMIZED — distinct from `sigil_verify_supply_chain` (which verifies a schain the caller brings) and from `signal_dark_pool_risk` (which returns only aggregate counts). Every SSP the p...2 params

Reconstructs the supply paths for a publisher domain from Sigil's own crawl and returns them ITEMIZED — distinct from `sigil_verify_supply_chain` (which verifies a schain the caller brings) and from `signal_dark_pool_risk` (which returns only aggregate counts). Every SSP the p...

Parameters* required
domain*string
Publisher hostname to traverse.
limitinteger
Max paths returned (default 200, hard cap 500).default: 200
get_statsOne public "state of the corpus" readout — the whole graph in a single call. Distinct from the Scry-only sensor stats at api.tunnelmind.ai/v1/stats (which this reuses for the `scry` block): this spans Scry, Sigil, and Tracker plus the attestation and routing layers. Use it to...

One public "state of the corpus" readout — the whole graph in a single call. Distinct from the Scry-only sensor stats at api.tunnelmind.ai/v1/stats (which this reuses for the `scry` block): this spans Scry, Sigil, and Tracker plus the attestation and routing layers. Use it to...

No parameters. Call it with no arguments.

get_website_historyThe over-time layer behind the site's website map (the successor to the retired radar). Every domain verify appends the domain's machinery tuple — origin AS, RPKI state, announced prefix, network country, CDN, certificate authority, registrar, owning entity, and the per-lens c...1 params

The over-time layer behind the site's website map (the successor to the retired radar). Every domain verify appends the domain's machinery tuple — origin AS, RPKI state, announced prefix, network country, CDN, certificate authority, registrar, owning entity, and the per-lens c...

Parameters* required
domain*string
get_freshnessD4 — the freshness contract a PDP can gate on. For each lens (Scry / Sigil / Tracker / GhostRoute) this reports the newest observation timestamp in the corpus, the declared ingest cadence (taken from the ingester's own code and cron schedules, never asserted), the published SL...

D4 — the freshness contract a PDP can gate on. For each lens (Scry / Sigil / Tracker / GhostRoute) this reports the newest observation timestamp in the corpus, the declared ingest cadence (taken from the ingester's own code and cron schedules, never asserted), the published SL...

No parameters. Call it with no arguments.

get_tool_registrySpec 097 FR-010 / ADR-034. Returns the tool registry generated from openapi.yaml: one entry per operation with its version, status (active / deprecated / retired), lens and schema hash, plus the `registry_hash` over the whole set. Retired entries stay listed. No database read:...1 params

Spec 097 FR-010 / ADR-034. Returns the tool registry generated from openapi.yaml: one entry per operation with its version, status (active / deprecated / retired), lens and schema hash, plus the `registry_hash` over the whole set. Retired entries stay listed. No database read:...

Parameters* required
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
get_pricingSpec 097 / ADR-035 Amendment C8. Returns the usage-tiered price schedule for paid calls. Prices are integer strings of USDC atomic units (6 decimals). Rows are `{tier, from, to, price_atomic}`; `to` is null for the open tier. `anonymous` is the price a call without an API key...1 params

Spec 097 / ADR-035 Amendment C8. Returns the usage-tiered price schedule for paid calls. Prices are integer strings of USDC atomic units (6 decimals). Rows are `{tier, from, to, price_atomic}`; `to` is null for the open tier. `anonymous` is the price a call without an API key...

Parameters* required
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
get_demand_aggregateWeekly public aggregate of demand: what callers asked this API for that it did not have or rejected (ghost routes, rejected arguments, ghost MCP tools, tools/list counts). One ISO week, Monday 00:00 UTC to the next Monday 00:00 UTC (`?week=` picks the week containing a date; d...2 params

Weekly public aggregate of demand: what callers asked this API for that it did not have or rejected (ghost routes, rejected arguments, ghost MCP tools, tools/list counts). One ISO week, Monday 00:00 UTC to the next Monday 00:00 UTC (`?week=` picks the week containing a date; d...

Parameters* required
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
weekstring
Any date (YYYY-MM-DD) inside the wanted ISO week. Defaults to the current week.
get_changesThe change ledger, read back: what TunnelMind itself changed in the window, newest first, as one Ed25519-signed document. Use this tool when: - you need to know what changed in TunnelMind's site, prices, tools or operations, and want it signed rather than asserted. - you are c...3 params

The change ledger, read back: what TunnelMind itself changed in the window, newest first, as one Ed25519-signed document. Use this tool when: - you need to know what changed in TunnelMind's site, prices, tools or operations, and want it signed rather than asserted. - you are c...

Parameters* required
daysinteger
Window length in days, 1-365.default: 30
kindstring
Only this kind. Omit for all kinds.one of site_change · price_change · retirement · ratified_op · code_merge · toolset_change
limitinteger
Maximum items returned, 1-500.default: 100
ledger_searchOne public search over the receipt sources, newest first. Not `/v1/search` (that is the domain search). Use this tool when: - you want to find a TunnelMind change by ref, kind or summary. - you want one newest-first view of TunnelMind's changes and the attested tollbooth commo...8 params

One public search over the receipt sources, newest first. Not `/v1/search` (that is the domain search). Use this tool when: - you want to find a TunnelMind change by ref, kind or summary. - you want one newest-first view of TunnelMind's changes and the attested tollbooth commo...

Parameters* required
beforestring
Only rows strictly older than this ISO 8601 instant (timezone required). A time filter, not a paging cursor; cannot be combined with `cursor`.
cursorstring
Opaque paging cursor: pass `next_cursor` from the previous page, unchanged, with the same other filters. 1-256 base64url characters encoding JSON `{t, s, i}` (the last row's issued_at, source and i...
daystring
Only rows issued on this UTC day (YYYY-MM-DD). Not in the future.
kindstring
Only changes of this kind. Applies to the `changes` source only.one of site_change · price_change · retirement · ratified_op · code_merge · toolset_change
limitinteger
Maximum rows returned, 1-100.default: 25
qstring
Substring to match (changes — subject or summary; commons — path class; weather-health — station or flag id). 0-100 chars of letters, digits, space and `._:/#@-`.
receiptboolean
When true, attach a signed Receipt v1.0 over the result (not logged to the receipts ledger). Additive — a signing failure never costs you the observation (ADR-014).default: false
sourcestring
Only this source. Omit for the default view, `changes` + `commons` (weather-health only when asked for).one of changes · commons · weather-health
station_healthSigned station-health row for a settlement station; see /docs Live is paid, history is free. The live answer is a flat price via x402 when the answer is fresh. Every paid live answer is a signed row that also appears in the next UTC day's public file (`v1/health/<D>.jsonl` on...3 params

Signed station-health row for a settlement station; see /docs Live is paid, history is free. The live answer is a flat price via x402 when the answer is fresh. Every paid live answer is a signed row that also appears in the next UTC day's public file (`v1/health/<D>.jsonl` on...

Parameters* required
X-PAYMENTstring
base64(JSON) x402 payment. Only a fresh answer is ever charged, and only when the paid tools flag is on.
icao*string
ICAO code of a weather settlement station, case-insensitive. An unknown code answers 404 with the valid codes in `stations`.
receiptboolean
When true, attach a signed Receipt v1.0 over the answer (not logged to the receipts ledger). A signing failure never costs you the answer.default: false
get_referral_logWeekly public aggregate of demand: what callers asked this API for that it did not have or rejected on paid referrals (kinds referral and ghost_referral only). One ISO week, Monday 00:00 UTC to the next Monday 00:00 UTC (`?week=` picks the week containing a date; default is th...2 params

Weekly public aggregate of demand: what callers asked this API for that it did not have or rejected on paid referrals (kinds referral and ghost_referral only). One ISO week, Monday 00:00 UTC to the next Monday 00:00 UTC (`?week=` picks the week containing a date; default is th...

Parameters* required
receiptboolean
When true, attach a signed Receipt v1.0 committed to the transparency log. Additive — a signing failure never costs you the observation (ADR-014).default: false
weekstring
Any date (YYYY-MM-DD) inside the wanted ISO week. Defaults to the current week.
get_referralFor a capability TunnelMind does not provide itself, returns the destination's endpoint and schema URL from a reviewed catalog, plus facts TunnelMind itself observed: when its own probe last reached the destination, whether the destination advertises x402 or Web Bot Auth, and...2 params

For a capability TunnelMind does not provide itself, returns the destination's endpoint and schema URL from a reviewed catalog, plus facts TunnelMind itself observed: when its own probe last reached the destination, whether the destination advertises x402 or Web Bot Auth, and...

Parameters* required
X-PAYMENTstring
base64(JSON) x402 payment. Absent on the first call, which returns the 402 challenge.
capability*string
Capability slug from the referral catalog, for example whois_history.
ghostroute_checkGhostRoute is TunnelMind's fourth lens: routing-integrity / sovereignty verification. It answers "is this infrastructure where it claims to be, owned by who it claims, routing where it says — and does that match the sovereign jurisdiction it asserts?" It resolves the originati...2 params

GhostRoute is TunnelMind's fourth lens: routing-integrity / sovereignty verification. It answers "is this infrastructure where it claims to be, owned by who it claims, routing where it says — and does that match the sovereign jurisdiction it asserts?" It resolves the originati...

Parameters* required
entity*string
An IPv4/IPv6 address, domain, ASN (`AS####`), or cert SHA-1/256 to check.
receiptboolean
When `true`, issues a signed, persisted GhostRoute receipt (`GR-YYYY-NNNNNNN`) instead of an ephemeral verdict.default: false
ghostroute_verifyRetrieves a previously-issued, signed GhostRoute receipt by its GR-YYYY-NNNNNNN id, for independent audit of a past sovereignty verdict. Use this tool when: - You hold a GhostRoute receipt id and want to confirm its contents/signature. - You are reconciling an agent's action l...1 params

Retrieves a previously-issued, signed GhostRoute receipt by its GR-YYYY-NNNNNNN id, for independent audit of a past sovereignty verdict. Use this tool when: - You hold a GhostRoute receipt id and want to confirm its contents/signature. - You are reconciling an agent's action l...

Parameters* required
receipt_id*string
ghostroute_asn_lookupReturns GhostRoute's ownership-graph record for an autonomous system: the registrant/parent organisation, its HQ country and sovereign zone, RIR, and cloud/AI-infrastructure flags. The long-term moat — who actually owns the network a route originates from. Use this tool when:...1 params

Returns GhostRoute's ownership-graph record for an autonomous system: the registrant/parent organisation, its HQ country and sovereign zone, RIR, and cloud/AI-infrastructure flags. The long-term moat — who actually owns the network a route originates from. Use this tool when:...

Parameters* required
asn*string
ghostroute_cert_lookupReturns the five most recent CT certificate observations GhostRoute has recorded for a domain (issuer CA, its jurisdiction, validity), newest first. The certificate leg of the sovereignty check, on its own. Use this tool when: - You want to know which CA has been issuing certi...1 params

Returns the five most recent CT certificate observations GhostRoute has recorded for a domain (issuer CA, its jurisdiction, validity), newest first. The certificate leg of the sovereignty check, on its own. Use this tool when: - You want to know which CA has been issuing certi...

Parameters* required
domain*string
ghostroute_batch_checkBatch form of `ghostroute_check`: one verdict per subject, aligned to input order. The batch is validated whole before anything is charged, run or signed: an empty or non-array `subjects`, or any invalid subject, fails the entire batch with 400 `invalid_request` (the message n...2 params

Batch form of `ghostroute_check`: one verdict per subject, aligned to input order. The batch is validated whole before anything is charged, run or signed: an empty or non-array `subjects`, or any invalid subject, fails the entire batch with 400 `invalid_request` (the message n...

Parameters* required
receiptboolean
When `true`, issue a signed, persisted GhostRoute receipt per subject.default: false
subjects*array

Sponsors

Details

Website
tunnelmind.ai
Category
Data & Analytics
Transport
HTTP
Registry
MCP registry, active
Prompts
1
Tools verified
Nov 6, 2026

More from tunnelmind

Related Data & Analytics MCP servers

View all
1shibui avatarShibui Financefinance.shibui/data9,900+ US equities, 64 years of prices, financials, technicals, and earnings. Ask in plain English.0stars
2gurvinder-dhillon avatarPowerBI MCP Servergurvinder-dhillon/powerbi-mcpPowerBI REST API integration. Query workspaces, datasets, and execute DAX queries via MCP.0stars
3monte-carlo-data avatarMonte Carloio.github.monte-carlo-data/mcpData + AI observability — monitor and troubleshoot production-grade agents and the context they use.0stars
4mukundakatta avatarCsv Tools Mcpmukundakatta/mcp-stackReliable CSV parsing + generation. Handles quotes, embedded commas, BOMs, CRLF.0stars
5microsoft avatarPower BI Authoring MCP Server (Local)microsoft/powerbi-modeling-mcpThe Power BI Authoring MCP server lets an AI agent create and change Power BI semantic models.1.3Kstars
6tickdb avatarTickDB Market Datatickdb/tickdb-unified-realtime-marketdata-apiReal-time & historical market data: forex, stocks, crypto, indices, metals, K-line, quotes0stars