maco144 avatar

Nullcone Threat Intelligence

maco144/nullcone-mcp

Connects your Claude agent to the Nullcone threat intelligence network with 890K+ indicators of compromise. You get 30+ tools for checking IPs, domains, URLs, file hashes, and CVEs against live threat feeds, plus two AI-specific lookups: prompt injection payload detection and MCP tool definition scanning. The hosted endpoint at nullcone.ai/mcp requires no API key and supports incremental polling via poll_since for staying current without webhooks. Reach for this when you're building agents that handle untrusted input, load third-party skills, or need to validate artifacts against known malware hashes and malicious infrastructure. Submit your own IOCs back to the network or self-host the Python server for full control over stdio transport.

tools
30
transport
HTTP
last updated
Jun 6, 2026

Install

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

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 nullcone https://nullcone.ai/mcp

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

Tools

Verified live · 30 tools

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

submit_iocSubmit a threat indicator (IOC) to the shared intelligence network. The IOC is automatically classified into a malware family, metadata is compressed, and deduplication is handled atomically. All subscribed agents see the new IOC instantly. Args: ioc_type: IOC category. One of...8 params

Submit a threat indicator (IOC) to the shared intelligence network. The IOC is automatically classified into a malware family, metadata is compressed, and deduplication is handled atomically. All subscribed agents see the new IOC instantly. Args: ioc_type: IOC category. One of...

Parameters* required
confidenceinteger
default: 70
contextstring
default:
family_hintstring
default:
ioc_type*string
severityinteger
default: 5
sourcestring
default: mcp
tagsarray
value*string
submit_batchSubmit multiple IOCs in a single call. Preferred over looping submit_ioc for bulk ingest from honeypots, sandboxes, or feed processing. Each dict in `iocs` follows the same schema as submit_ioc parameters. Required keys: ioc_type, value. All others are optional. Returns one re...1 params

Submit multiple IOCs in a single call. Preferred over looping submit_ioc for bulk ingest from honeypots, sandboxes, or feed processing. Each dict in `iocs` follows the same schema as submit_ioc parameters. Required keys: ioc_type, value. All others are optional. Returns one re...

Parameters* required
iocs*array
lookup_iocLook up a threat signature by its exact IOC value. Returns the full signature record if found, including severity, family, detection count, and false positive votes. Args: value: The exact IOC value to search for (e.g. "evil.example.com")1 params

Look up a threat signature by its exact IOC value. Returns the full signature record if found, including severity, family, detection count, and false positive votes. Args: value: The exact IOC value to search for (e.g. "evil.example.com")

Parameters* required
value*string
recent_threatsReturn the most recently observed threat signatures. Args: limit: Max number of results to return (1-200) min_severity: Minimum severity level (0-10). Default 5 (medium+)2 params

Return the most recently observed threat signatures. Args: limit: Max number of results to return (1-200) min_severity: Minimum severity level (0-10). Default 5 (medium+)

Parameters* required
limitinteger
default: 20
min_severityinteger
default: 5
family_threatsReturn all threat signatures associated with a known malware family. Use list_families() first to discover available family names. Args: family_name: Exact malware family name (e.g. "emotet", "qbot", "cobalt_strike") limit: Max results to return (1-500). Default 50.2 params

Return all threat signatures associated with a known malware family. Use list_families() first to discover available family names. Args: family_name: Exact malware family name (e.g. "emotet", "qbot", "cobalt_strike") limit: Max results to return (1-500). Default 50.

Parameters* required
family_name*string
limitinteger
default: 50
list_familiesReturn all known malware families in the intelligence database. Each entry includes the family name, description, and category. Use family_threats(family_name) to retrieve the IOCs for a specific family.

Return all known malware families in the intelligence database. Each entry includes the family name, description, and category. Use family_threats(family_name) to retrieve the IOCs for a specific family.

No parameters. Call it with no arguments.

search_by_typeReturn threat signatures filtered by IOC type. Useful for pulling all known-bad IPs, all malicious domains, all malicious AI skill hashes, etc. Args: ioc_type: One of: hash_md5, hash_sha1, hash_sha256, ip, ip_port, domain, url, yara, email, mutex, filepath, asn, ja3, imphash,...3 params

Return threat signatures filtered by IOC type. Useful for pulling all known-bad IPs, all malicious domains, all malicious AI skill hashes, etc. Args: ioc_type: One of: hash_md5, hash_sha1, hash_sha256, ip, ip_port, domain, url, yara, email, mutex, filepath, asn, ja3, imphash,...

Parameters* required
ioc_type*string
limitinteger
default: 50
min_severityinteger
default: 0
report_detectionReport that you detected and acted on a known threat signature. Increments the signature's detection count and creates a ThreatEvent visible to all other agents in real-time. Args: signature_id: ID of the ThreatSignature (from submit_ioc or lookup_ioc) action: Action taken. On...3 params

Report that you detected and acted on a known threat signature. Increments the signature's detection count and creates a ThreatEvent visible to all other agents in real-time. Args: signature_id: ID of the ThreatSignature (from submit_ioc or lookup_ioc) action: Action taken. On...

Parameters* required
action*string
contextobject
signature_id*integer
vote_false_positiveFlag a threat signature as a likely false positive. When more than 20% of agents vote false positive on a signature, its `is_likely_fp` flag becomes True — a signal to review before blocking. Args: signature_id: ID of the ThreatSignature to flag reason: Optional explanation fo...2 params

Flag a threat signature as a likely false positive. When more than 20% of agents vote false positive on a signature, its `is_likely_fp` flag becomes True — a signal to review before blocking. Args: signature_id: ID of the ThreatSignature to flag reason: Optional explanation fo...

Parameters* required
reasonstring
default:
signature_id*integer
poll_sinceFetch new threat signatures since a high-water mark ID. This is the recommended sync pattern — one call, get new data, persist next_id, disconnect. No persistent connection required. Call with last_id=0 on first run to get all signatures. Persist the returned next_id and pass...3 params

Fetch new threat signatures since a high-water mark ID. This is the recommended sync pattern — one call, get new data, persist next_id, disconnect. No persistent connection required. Call with last_id=0 on first run to get all signatures. Persist the returned next_id and pass...

Parameters* required
batch_sizeinteger
default: 1000
last_idinteger
default: 0
min_severityinteger
default: 0
get_statsReturn aggregate statistics for the threat intelligence database. Includes total signatures, known malware families, active agents, and total detection events.

Return aggregate statistics for the threat intelligence database. Includes total signatures, known malware families, active agents, and total detection events.

No parameters. Call it with no arguments.

validate_skillSynchronous SKILL IOC lookup — call this before loading or invoking any MCP tool/skill to check it against the Nullcone threat feed. This is the pre-invocation enforcement hook. Returns an allow/warn/block decision based on whether the skill hash is a known-malicious indicator...3 params

Synchronous SKILL IOC lookup — call this before loading or invoking any MCP tool/skill to check it against the Nullcone threat feed. This is the pre-invocation enforcement hook. Returns an allow/warn/block decision based on whether the skill hash is a known-malicious indicator...

Parameters* required
manifest_urlstring
default:
skill_hash*string
skill_namestring
default:
scan_skill_contentPre-execution content scan for skill/instruction files. Analyzes the full text of a skill (markdown, plain text, SKILL.md, etc.) for malicious patterns BEFORE the agent follows the instructions. This is the critical defense against remote skill-mediated credential exfiltration...2 params

Pre-execution content scan for skill/instruction files. Analyzes the full text of a skill (markdown, plain text, SKILL.md, etc.) for malicious patterns BEFORE the agent follows the instructions. This is the critical defense against remote skill-mediated credential exfiltration...

Parameters* required
content*string
source_urlstring
default:
get_new_threatsDrain the live push-subscription buffer of threats received since the last call. Zero-polling — threats are delivered via SpacetimeDB WebSocket subscription and buffered server-side. Use this instead of poll_since() when you need sub-second latency without maintaining your own...1 params

Drain the live push-subscription buffer of threats received since the last call. Zero-polling — threats are delivered via SpacetimeDB WebSocket subscription and buffered server-side. Use this instead of poll_since() when you need sub-second latency without maintaining your own...

Parameters* required
drainboolean
default: true
warm_prompt_cacheLoad all PROMPT IOCs from SpacetimeDB into the in-memory hash set. Call once at startup (or after a major feed update) to populate the sub-1ms query cache. Subsequent check_prompt() calls require no network access. The cache auto-refreshes every 5 minutes in the background. Re...

Load all PROMPT IOCs from SpacetimeDB into the in-memory hash set. Call once at startup (or after a major feed update) to populate the sub-1ms query cache. Subsequent check_prompt() calls require no network access. The cache auto-refreshes every 5 minutes in the background. Re...

No parameters. Call it with no arguments.

check_promptCheck a prompt or text fragment for known PROMPT IOC patterns. Uses an in-memory hash set for sub-1ms token-level querying — no network calls after the cache is warmed. Slides a window of 3, 5, 8, and 10 tokens across the input and checks each window's canonical SHA256 against...2 params

Check a prompt or text fragment for known PROMPT IOC patterns. Uses an in-memory hash set for sub-1ms token-level querying — no network calls after the cache is warmed. Slides a window of 3, 5, 8, and 10 tokens across the input and checks each window's canonical SHA256 against...

Parameters* required
auto_warmboolean
default: true
text*string
check_prompt_batchCheck multiple prompts for PROMPT IOC patterns in a single call. More efficient than calling check_prompt() in a loop — tokenization overhead is amortized and the cache reference is shared. Args: texts: List of prompt strings to check Returns: One result dict per input text, i...1 params

Check multiple prompts for PROMPT IOC patterns in a single call. More efficient than calling check_prompt() in a loop — tokenization overhead is amortized and the cache reference is shared. Args: texts: List of prompt strings to check Returns: One result dict per input text, i...

Parameters* required
texts*array
prompt_cache_statsReturn PROMPT IOC cache statistics: size, hit rate, latency, refresh status. Use this to verify the cache is warmed and healthy before relying on check_prompt() for real-time detection.

Return PROMPT IOC cache statistics: size, hit rate, latency, refresh status. Use this to verify the cache is warmed and healthy before relying on check_prompt() for real-time detection.

No parameters. Call it with no arguments.

check_freshnessValidate that IOC threat intelligence is fresh enough for the named action. Call this before any high-risk agent action to ensure the TI snapshot is not stale. The check itself completes in <1ms (no network I/O). Action → staleness tier mapping: critical (≤30s): credential_acc...2 params

Validate that IOC threat intelligence is fresh enough for the named action. Call this before any high-risk agent action to ensure the TI snapshot is not stale. The check itself completes in <1ms (no network I/O). Action → staleness tier mapping: critical (≤30s): credential_acc...

Parameters* required
actionstring
default: load_skill
block_on_staleboolean
default: false
freshness_limitsReturn the configured IOC freshness limits for all action tiers. Shows max staleness, warn threshold, and which actions belong to each tier. Use this to understand when check_freshness() will warn or block.

Return the configured IOC freshness limits for all action tiers. Shows max staleness, warn threshold, and which actions belong to each tier. Use this to understand when check_freshness() will warn or block.

No parameters. Call it with no arguments.

fingerprint_tool_metadataAnalyze an MCP tool definition for instruction-injection and malicious patterns. Performs semantic fingerprinting of the tool's description, parameter schemas, and error templates — detecting credential exfiltration vectors, C2 callbacks, base64 payloads, authority spoofing, a...3 params

Analyze an MCP tool definition for instruction-injection and malicious patterns. Performs semantic fingerprinting of the tool's description, parameter schemas, and error templates — detecting credential exfiltration vectors, C2 callbacks, base64 payloads, authority spoofing, a...

Parameters* required
registrystring
default: unknown
tool_def*object
trackboolean
default: true
registry_monitor_statsReturn MCP registry monitoring statistics. Shows how many tool definitions are tracked, how many have been flagged, and the current drift detection rate.

Return MCP registry monitoring statistics. Shows how many tool definitions are tracked, how many have been flagged, and the current drift detection rate.

No parameters. Call it with no arguments.

registry_flagged_toolsReturn all MCP tools that have been flagged as suspicious or malicious. Includes tools flagged on initial ingestion (high-risk fingerprint) and tools that showed significant semantic drift on update.

Return all MCP tools that have been flagged as suspicious or malicious. Includes tools flagged on initial ingestion (high-risk fingerprint) and tools that showed significant semantic drift on update.

No parameters. Call it with no arguments.

subscribe_threatsOpen a named, stateful subscription to live threat push delivery. Returns a subscription_id. Pass it to drain_subscription() to collect the IOCs that have arrived since your last drain — zero polling, each caller gets their own isolated stream. Multiple subscribers receive ind...4 params

Open a named, stateful subscription to live threat push delivery. Returns a subscription_id. Pass it to drain_subscription() to collect the IOCs that have arrived since your last drain — zero polling, each caller gets their own isolated stream. Multiple subscribers receive ind...

Parameters* required
familiesarray
ioc_typesarray
min_severityinteger
default: 5
tagsarray
drain_subscriptionDrain the buffer of a stateful subscription created by subscribe_threats(). Returns all IOCs delivered to this subscription since the last drain. Each subscription is independent — draining yours does not affect others. Args: subscription_id: The ID returned by subscribe_threa...2 params

Drain the buffer of a stateful subscription created by subscribe_threats(). Returns all IOCs delivered to this subscription since the last drain. Each subscription is independent — draining yours does not affect others. Args: subscription_id: The ID returned by subscribe_threa...

Parameters* required
drainboolean
default: true
subscription_id*string
unsubscribeCancel a stateful subscription and free its buffer. Call this when you no longer need the subscription to release memory. Subscriptions also auto-expire after 1 hour of inactivity. Args: subscription_id: The ID returned by subscribe_threats() Returns: status: "ok" if removed,...1 params

Cancel a stateful subscription and free its buffer. Call this when you no longer need the subscription to release memory. Subscriptions also auto-expire after 1 hour of inactivity. Args: subscription_id: The ID returned by subscribe_threats() Returns: status: "ok" if removed,...

Parameters* required
subscription_id*string
list_subscriptionsList all active stateful push subscriptions on this MCP server instance. Returns metadata for each subscription (not the buffered IOCs themselves). Useful for inspecting what agents are currently subscribed and what filters they have configured.

List all active stateful push subscriptions on this MCP server instance. Returns metadata for each subscription (not the buffered IOCs themselves). Useful for inspecting what agents are currently subscribed and what filters they have configured.

No parameters. Call it with no arguments.

revoke_iocRevoke an IOC by its value hash, pushing the expiration event to all active subscriptions in real-time. Call this when an IOC is determined to be a false positive, expired, or superseded. Subscribed agents receive the revocation event on their next drain_subscription() call wi...3 params

Revoke an IOC by its value hash, pushing the expiration event to all active subscriptions in real-time. Call this when an IOC is determined to be a false positive, expired, or superseded. Subscribed agents receive the revocation event on their next drain_subscription() call wi...

Parameters* required
ioc_typestring
default:
reasonstring
default: false_positive
value_hash*string
is_ioc_revokedCheck whether an IOC has been revoked. O(1) in-process lookup. Use this before acting on any cached threat intelligence to ensure the IOC has not been retracted since it was loaded. Args: value_hash: SHA256 of {ioc_type}:{value.lower()}. Returns: revoked: bool event: Revocatio...1 params

Check whether an IOC has been revoked. O(1) in-process lookup. Use this before acting on any cached threat intelligence to ensure the IOC has not been retracted since it was loaded. Args: value_hash: SHA256 of {ioc_type}:{value.lower()}. Returns: revoked: bool event: Revocatio...

Parameters* required
value_hash*string
list_revocationsList recent IOC revocations, newest first. Args: limit: Maximum number of revocations to return (default 50). since_hours: Only return revocations newer than this many hours ago. 0 = no time filter (return all retained). Returns: revocations: List of revocation event dicts. to...2 params

List recent IOC revocations, newest first. Args: limit: Maximum number of revocations to return (default 50). since_hours: Only return revocations newer than this many hours ago. 0 = no time filter (return all retained). Returns: revocations: List of revocation event dicts. to...

Parameters* required
limitinteger
default: 50
since_hoursnumber
default: 0

Sponsors

Readme

Nullcone MCP Server

Real-time threat intelligence for AI agents, exposed as a Model Context Protocol server. Check IPs, domains, URLs, hashes, CVEs, prompt-injection payloads, and malicious AI-skill / MCP-tool definitions against the Nullcone network — 890K+ IOCs, free, no API key.

Backed by nullcone.ai.

Use it (hosted — nothing to install)

The server is hosted at https://nullcone.ai/mcp over streamable HTTP. Add it to any MCP client:

Claude Code

claude mcp add --transport http nullcone https://nullcone.ai/mcp

Cursor / other MCP clients — add to your MCP config:

{
  "mcpServers": {
    "nullcone": {
      "url": "https://nullcone.ai/mcp"
    }
  }
}

No signup or token required. Read tools and IOC submission are open; destructive tools (e.g. revoke_ioc) are disabled on the public endpoint.

Tools

30+ tools including:


View the full README on GitHub

Details

Repository
github.com/maco144/nullcone-mcp
Website
nullcone.ai
Category
AI & LLM Tools
Transport
HTTP
Registry
MCP registry, active
Resources
3
Prompts
3
Tools verified
Nov 6, 2026

Related AI & LLM Tools MCP servers

View all
1mdfifty50-boop avatarScope Guardmdfifty50-boop/scope-guard-mcpHard scope boundaries to prevent AI agent drift0stars
2meltingpixelsai avatarZero Core Verifymeltingpixelsai/harvey-verifyPost-tx outcome verification via LLM-as-judge. Zero Core Verify.0stars
3mukundakatta avatarPromptbudget Mcpmukundakatta/mcp-stackToken-budget-aware text handling: count, truncate, and chunk for LLM prompts.0stars
4mukundakatta avatarRagdrift Mcpmukundakatta/mcp-stackDiagnose RAG drift: interpret scores, recommend thresholds, explain dimensions.0stars
5patrickbakowski avatarAgentDilemmapatrickbakowski/agent-dilemma-skillSubmit a dilemma for blind community verdict with reasoning to improve low confidence0stars
6ryvonetwork avatarRyvo Protocolryvonetwork/ryvo-agenticMCP server for Ryvo Protocol state reads and prepare-only payment-channel actions.0stars