Scry
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Free IPv4 lookups against a distributed attacker-observation corpus.
| Author | ai.tunnelmind |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 186 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Scry": {
"url": "https://mcp.tunnelmind.ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (12)
scry_statsReturns aggregate Scry corpus telemetry: total observation count, distinct source IPs, first/last observation timestamps, last-24h activity, and per-protocol breakdowns. Useful as a liveness/density check before issuing per-IP queries — lets an agent decide whether the corpus has enough data to be authoritative. Use this tool when: - An agent is planning a multi-step investigation and wants to know if Scry has corpus density worth querying. - You want a 'corpus health' signal in a dashboard or report. Do NOT use this tool when: - You want details about a specific IP — use `scry_check`. - You want sensor fleet size or node identities — never exposed at any tier. Inputs: none. Returns: total_observations, distinct_source_ips, first_seen_ms, last_seen_ms, observations_last_24h, distinct_source_ips_last_24h, by_protocol, as_of_ms. Cost: free, anonymous, rate-limited. Latency: <100ms typical.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_checkReturns Scry's corpus knowledge for a single IPv4 address: when it was first/last observed, observation count, protocols and ports targeted, ASN, country, category (actor/scanner/not_observed), and confidence_bucket (low/medium/high). Use when an agent needs IP triage, hostility assessment, or risk signaling. Do NOT use for raw payloads (never exposed) or IPv6 (corpus is v4-only at v0.1).
Parameters:
ip(required) — string — IPv4 address (e.g. '8.8.8.8')
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_check_bulkLook up many IPv4 addresses in one request. Up to 100 IPs per call. Same per-IP shape as scry_check, keyed by IP.
Parameters:
ips(required) — array
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_topTop-N source dimensions over a time window. Useful for situational awareness — 'where is the noise coming from right now?'
Parameters:
limit— integersince_ms— integerdimension— stringinclude_noise— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_timeseriesBucketed observation counts over time. Detect bursts, plot trends, sanity-check whether attacker activity is rising or falling.
Parameters:
bucket— stringsince_ms— integeruntil_ms— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_asnRoll-up of corpus activity for a single ASN — observation count, distinct source IPs, actor count, scanner count, high-confidence actor count, and per-protocol breakdown.
Parameters:
asn(required) — stringsince_ms— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_countryRoll-up of corpus activity by ISO country code. Same shape as scry_asn.
Parameters:
country(required) — stringsince_ms— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_toolsList detected attack tools — (protocol, payload, path) tuples sent by 3+ distinct source IPs. Aggregate metadata only; never lists member actors.
Parameters:
limit— integerprotocol— stringsince_ms— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_toolSingle tool detail by 16-char hex id from scry_tools.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_campaignsActive threat campaigns — coordinated attacker activity that exceeds the noise floor. ≥5 distinct actors, ≥3 ASNs, ≤5 destination ports, ≥1h history.
Parameters:
limit— integerinclude_inactive— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_campaignSingle campaign detail by id (format: c[0-9a-f]{15}).
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
scry_recentRecent observations feed — aggregated by source IP within a time window. Cursor-paginated via since_ms.
Parameters:
limit— integercountry— stringprotocol— stringsince_ms— integerinclude_noise— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.