此 MCP 可以做什么
Provides threat-intelligence lookups for domains, IPs, hashes, TLS fingerprints, Tor relays, DNS relationships, history, and related indicators.
工具
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['objectClassName', 'handle'], 'properties': {'name': {'type': 'string', 'description': 'The label its owner gave it.'}, 'type': {'type': 'string', 'description': 'What kind of allocation this is.'}, 'links': {'type': 'array', 'description': 'Related RDAP and web resources.'}, 'events': {'type': 'array', 'description': 'Registration lifecycle events with their timestamps.'}, 'handle': {'type': 'string', 'description': 'The registry handle for this address.'}, 'status': {'type': 'array', 'description': 'Registry status values for the object.'}, 'country': {'type': 'string', 'description': 'Two-letter country code of the registration.'}, 'notices': {'type': 'array', 'description': 'Service-level notices, including the terms of use.'}, 'remarks': {'type': 'array', 'description': 'Free-text notes the registry publishes with the object.'}, 'entities': {'type': 'array', 'description': 'The parties behind the registration, in RFC 9083 entity form.'}, 'ipVersion': {'type': 'string', 'description': '"v6" or "v4".'}, 'endAddress': {'type': 'string', 'description': 'Last address of the range.'}, 'startAddress': {'type': 'string', 'description': 'First address of the range.'}, 'objectClassName': {'type': 'string', 'description': 'Always "ip network" for this tool (RFC 9083).'}, 'rdapConformance': {'type': 'array', 'description': 'The RDAP extensions this answer conforms to.'}}, 'description': 'The public registration record for one address, RFC 9083 shaped, byte-for-byte what the RDAP service serves at /ip/{address}.'}
输入模式
{'type': 'object', 'required': ['input'], 'properties': {'input': {'type': 'object', 'description': 'Arguments for this operation, as an object. The example passes {"email":"agent@example.com"}.'}}}
输出模式
{'type': 'object', 'required': ['ok'], 'properties': {'ok': {'type': 'boolean', 'description': 'Whether the step succeeded.'}, 'api_key': {'type': 'string', 'description': 'Returned by the second step. This is the credential; send it as the X-API-Key header and the provisioning and governance tools appear in tools/list.'}, 'message': {'type': 'string', 'description': 'What to do next, in a sentence.'}, 'signup_id': {'type': 'string', 'description': 'Returned by the first step. Send it back with the six-digit code from the email to finish.'}}, 'description': 'The result of a signup step: an id to continue with, or the API key itself.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'type': 'object', 'required': ['input'], 'properties': {'input': {'type': 'integer', 'description': 'A row limit. The example passes 10.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['is_whisper_agent', 'evidence'], 'properties': {'fqdn': {'type': 'string', 'description': "The agent's canonical hostname, forward-confirmed against the address. Positive verdicts only."}, 'detail': {'type': 'string', 'description': 'A sentence explaining a negative verdict. Absent on a positive one.'}, 'jws_ok': {'type': 'boolean', 'description': 'Whether a verifiable signed identity document can be produced for this agent.'}, 'tenant': {'type': 'string', 'description': 'The tenant handle, which also appears inside the fqdn.'}, 'dane_ok': {'type': 'boolean', 'description': 'Whether the certificate this address actually serves satisfies the DANE-EE pin published for it in DNSSEC-signed DNS. This is the leg that cannot be forged without the zone.'}, 'evidence': {'type': 'object', 'description': 'What was checked and what was found: the address or fqdn as given, the PTR, and the forward record that did or did not confirm it.'}, 'operator': {'type': 'string', 'description': 'The opaque handle of the account that owns this agent.'}, 'verified_at': {'type': 'string', 'description': 'When this verdict was graded, ISO 8601.'}, 'is_whisper_agent': {'type': 'boolean', 'description': 'The verdict. False is an ANSWER, not a failure: the address or name is simply not a Whisper agent, and the evidence says which leg of the chain is missing.'}}, 'description': 'Whether an address or hostname is a Whisper agent, with the evidence for the verdict either way. Every leg is independently checkable from the DNS root with dig.'}
输入模式
{'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.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
输入模式
{'type': 'object', 'required': ['input'], 'properties': {'input': {'type': 'object', 'description': 'Arguments for this operation, as an object. The example passes {"action":"list"}.'}}}
输出模式
{'type': 'object', 'required': ['columns', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': 'The answers, one object per row, keyed by the column names above. An empty array means the question was understood and nothing matched, which is an answer and not a failure.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The column names, in order. Every row object has exactly these keys, so this is the row shape and reading it is cheaper than inspecting a row.'}, 'statistics': {'type': 'object', 'required': ['rowCount'], 'properties': {'rowCount': {'type': 'integer', 'description': 'How many rows came back.'}, 'executionTimeMs': {'type': 'integer', 'description': 'Milliseconds the graph spent answering.'}}, 'description': 'What the query cost.'}}, 'description': 'A tabular graph answer: the column names, the rows keyed by them, and the cost.'}
近期工具变更
类似的 MCP 服务器
osint-terminal
Provides keyless OSINT and reconnaissance tools for domains, DNS, IPs, breach exposure, threat intelligence, and related lookups.
tollbooth
Provides paid OSINT, web intelligence, security threat and vulnerability lookups, prediction-market analysis, financial data, leg…
TunnelMind Data API
Aggregates web, routing, supply-chain, tracker, threat, and agent-registry intelligence into risk verdicts, evidence, receipts, a…
DataNexus MCP
Enables public-data research across domains, patents, government contracts, nonprofits, compliance registries, and software secur…
website-search
Provides security article search and structured guidance, templates, frameworks, and review criteria for incident response, threa…
1cent Web Intelligence for AI Agents
Performs SSRF-safe public web inspection, URL extraction, metadata and content analysis, accessibility checks, feed and sitemap d…
x402 Checker (AI Nock)
Offers paid x402 utilities for blockchain, crypto markets, academic and news search, DNS and email checks, CVE lookups, geocoding…
Urlscan Io
Searches urlscan.io historical scan results by domain or IP address and returns URLs, verdicts, screenshots, and scan metadata.