{"name":"ai.tunnelmind/scry","slug":"tunnelmind-scry","title":"Scry","description":"Free IPv4 lookups against a distributed attacker-observation corpus.","url":"https://mcp.market/server/tunnelmind-scry","rating":null,"grade":"B","score":72,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":14,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-05-25T00:42:44.000Z","license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T02:50:37.658Z","last_ok_at":"2026-11-04T02:50:37.658Z","latency_ms":75},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/TunnelMind/scry-mcp","website":"https://api.tunnelmind.ai","version":"0.5.0","remotes":[{"type":"streamable-http","url":"https://mcp.tunnelmind.ai/mcp"}],"packages":[],"tools":[{"name":"scry_asn","description":"Roll-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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"asn":{"type":"string"},"since_ms":{"type":"integer"}},"required":["asn"],"additionalProperties":false}},{"name":"scry_campaign","description":"Single campaign detail by id (format: c[0-9a-f]{15}).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^c[0-9a-f]{15}$"}},"required":["id"],"additionalProperties":false}},{"name":"scry_campaigns","description":"Active threat campaigns — coordinated attacker activity that exceeds the noise floor. ≥5 distinct actors, ≥3 ASNs, ≤5 destination ports, ≥1h history.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"include_inactive":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":200}},"additionalProperties":false}},{"name":"scry_check","description":"Returns Scry's corpus knowledge for a single IPv4 address: when it was first/last\nobserved, observation count, protocols and ports targeted, ASN, country, category\n(actor/scanner/not_observed), and confidence_bucket (low/medium/high).\n\nUse when an agent needs IP triage, hostility assessment, or risk signaling.\nDo NOT use for raw payloads (never exposed) or IPv6 (corpus is v4-only at v0.1).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ip":{"type":"string","description":"IPv4 address (e.g. '8.8.8.8')"}},"required":["ip"],"additionalProperties":false}},{"name":"scry_check_bulk","description":"Look up many IPv4 addresses in one request. Up to 100 IPs per call. Same per-IP shape as scry_check, keyed by IP.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ips":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":100}},"required":["ips"],"additionalProperties":false}},{"name":"scry_country","description":"Roll-up of corpus activity by ISO country code. Same shape as scry_asn.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"country":{"type":"string","pattern":"^[A-Za-z]{2}$"},"since_ms":{"type":"integer"}},"required":["country"],"additionalProperties":false}},{"name":"scry_recent","description":"Recent observations feed — aggregated by source IP within a time window. Cursor-paginated via since_ms.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"since_ms":{"type":"integer"},"limit":{"type":"integer","minimum":1,"maximum":500},"protocol":{"type":"string"},"country":{"type":"string","pattern":"^[A-Za-z]{2}$"},"include_noise":{"type":"boolean"}},"additionalProperties":false}},{"name":"scry_stats","description":"Returns aggregate Scry corpus telemetry: total observation count, distinct\nsource IPs, first/last observation timestamps, last-24h activity, and\nper-protocol breakdowns. Useful as a liveness/density check before issuing\nper-IP queries — lets an agent decide whether the corpus has enough data\nto be authoritative.\n\nUse this tool when:\n- An agent is planning a multi-step investigation and wants to know if Scry\n  has corpus density worth querying.\n- You want a 'corpus health' signal in a dashboard or report.\n\nDo NOT use this tool when:\n- You want details about a specific IP — use `scry_check`.\n- You want sensor fleet size or node identities — never exposed at any tier.\n\nInputs: none.\nReturns: total_observations, distinct_source_ips, first_seen_ms, last_seen_ms, observations_last_24h, distinct_source_ips_last_24h, by_protocol, as_of_ms.\nCost: free, anonymous, rate-limited.\nLatency: <100ms typical.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"scry_timeseries","description":"Bucketed observation counts over time. Detect bursts, plot trends, sanity-check whether attacker activity is rising or falling.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bucket":{"type":"string","enum":["minute","hour","day"]},"since_ms":{"type":"integer"},"until_ms":{"type":"integer"}},"additionalProperties":false}},{"name":"scry_tool","description":"Single tool detail by 16-char hex id from scry_tools.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-f]{16}$"}},"required":["id"],"additionalProperties":false}},{"name":"scry_tools","description":"List detected attack tools — (protocol, payload, path) tuples sent by 3+ distinct source IPs. Aggregate metadata only; never lists member actors.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"protocol":{"type":"string"},"since_ms":{"type":"integer"},"limit":{"type":"integer","minimum":1,"maximum":200}},"additionalProperties":false}},{"name":"scry_top","description":"Top-N source dimensions over a time window. Useful for situational awareness — 'where is the noise coming from right now?'","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"dimension":{"type":"string","enum":["asn","country","protocol","port"]},"since_ms":{"type":"integer"},"limit":{"type":"integer","minimum":1,"maximum":100},"include_noise":{"type":"boolean"}},"additionalProperties":false}}],"scan":{"score":72,"grade":"B","scanned_at":"2026-10-01T13:47:23.833Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-01T13:47:23.821Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1090ms"]},"poisoning":{"score":15,"max":15,"notes":["12 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":0,"max":15,"notes":["repository archived"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[{"id":"maint.archived","severity":"high","component":"maintenance","title":"Repository is archived"}],"inputs":{"probes":[{"url":"https://mcp.tunnelmind.ai/mcp","reachable":true,"authRequired":false,"latencyMs":1090,"serverInfo":{"name":"scry","version":"0.5.0"}}],"packages":[],"repo":{"found":true,"owner":"TunnelMind","repo":"scry-mcp","archived":true,"pushedAt":"2026-05-25T00:42:44Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/263980073?v=4","ownerCreatedAt":"2026-02-25T18:04:15Z"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-05-25T00:42:44.000Z","score":14}}}},"grade_history":[{"kind":"restore","fromGrade":"F","toGrade":"B","reason":"score 72: Repository is archived","createdAt":"2026-10-01T13:47:26.124Z"}],"reviews":[]}