ThreatCluster
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
ThreatCluster: free CTI API and MCP server
A free threat intelligence API (100 credits a day, no card) and an MCP server over it. Ask Claude, Cursor or any MCP client what is new, who was hit, whether a CVE is exploited, and get answers from a live corpus of deduplicated incident clusters, actor and malware profiles, CVEs with KEV and EPSS, and ransomware leak-site victims.
An MCP server that gives Claude, Cursor, VS Code, Windsurf, Zed and any other MCP client live threat intelligence from ThreatCluster (setup guide): incident clusters (one deduplicated story per incident, with a threat score, timeline and extracted entities), entity profiles (actors, malware, tools, vendors, CVEs), CVE records with KEV / EPSS / exploit status, and ransomware leak-site victims.
It is a thin, auditable wrapper over the public REST API. Every tool call is one or two GETs to https://threatcluster.io/api/public/v1 with your API key; nothing else leaves your machine, and there is no telemetry.
Why this and not a feed aggregator
Most free CTI MCP servers wrap other people's indicator feeds (OTX, abuse.ch, AbuseIPDB). ThreatCluster is the corpus itself: every story is one cluster built from every source that covered it, with a threat score, a timeline and the entities extracted from the text, plus the leak-site victim list and CVE exploit status in the same API. The free key covers all of it with a 7-day lookback; paid plans extend the window. Details and the hosted endpoint (https://threatcluster.io/mcp) are at threatcluster.io/about/free-api.
Published twice from one tool spec, so both are identical:
Runtime | Install | Package |
Python 3.10+ |
| |
Node 18+ |
|
Related MCP server: Cybersecurity Threat Intelligence MCP
1. Get a key
Free keys carry the five read scopes, 100 credits a day, 30 requests a minute and a 7-day lookback: https://threatcluster.io/api. Put it in THREATCLUSTER_API_KEY. If you use the tc CLI and have run tc auth login, the Python server picks that credential up automatically (keyring or the ~/.config/tc-cli/credentials file); the Node server reads the file only.
2. Add the server
Claude Code
claude mcp add threatcluster -e THREATCLUSTER_API_KEY=tc_live_... -- npx -y threatcluster-mcp
# or the Python build:
claude mcp add threatcluster -e THREATCLUSTER_API_KEY=tc_live_... -- uvx threatcluster-mcpClaude Desktop (claude_desktop_config.json, Settings > Developer > Edit Config)
{
"mcpServers": {
"threatcluster": {
"command": "npx",
"args": ["-y", "threatcluster-mcp"],
"env": { "THREATCLUSTER_API_KEY": "tc_live_..." }
}
}
}Cursor — one-click: see listings/cursor-deeplink.md, or add to ~/.cursor/mcp.json / .cursor/mcp.json:
{ "mcpServers": { "threatcluster": { "command": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "tc_live_..." } } } }VS Code (.vscode/mcp.json; the input prompts for the key instead of storing it in the file)
{
"inputs": [{ "type": "promptString", "id": "tc-key", "description": "ThreatCluster API key", "password": true }],
"servers": {
"threatcluster": { "type": "stdio", "command": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "${input:tc-key}" } }
}
}Windsurf (~/.codeium/windsurf/mcp_config.json) — same mcpServers block as Claude Desktop.
Zed (settings.json)
{ "context_servers": { "threatcluster": { "command": { "path": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "tc_live_..." } } } } }Check a configuration without starting a client: THREATCLUSTER_API_KEY=... npx -y threatcluster-mcp --check (prints where the key came from and where it will be sent — never the key).
3. Tools
Costs are ThreatCluster API credits (free keys: 100 a day). Every result carries cost (credits this call spent), budget (remaining today, from the response headers), as_of, and url fields on every cluster, entity, victim and CVE for citation.
Tool | What it answers | API endpoint(s) | Credits |
| Keyword search over incident clusters; phrase, then all words, then any word; |
| 1 per term (max 8 calls) |
| Clusters, entity profiles and dark-web hits in one call |
| 5 |
| What is new in 1h / 24h / 7d / 30d, by first report or by momentum |
| 1 |
| Full record for one cluster: summary, timeline, articles, entities; |
| 1 (+1) |
| Ransomware leak-site listings by sector / group / country / victim, plus a tally of the whole window |
| 2 |
| Profile of an actor, malware, tool, vendor, product, country, industry or CVE |
| 2 |
| One CVE: CVSS, EPSS, KEV with due date, exploits, vendors, products |
| 1 |
| CVEs in a window filtered to KEV / public exploit / severity / vendor / product |
| 1 |
| Actors, malware, tools, vendors, CVEs, countries rising over a window |
| 1 |
| Remaining credits and rate state from the last responses — no API call | — | 0 |
One prompt, threatcluster_analyst, carries the analyst rules (tools first, cite every fact with the returned url, say what period you searched, leak-site listings are claims).
Errors come back as MCP tool errors with the API's own message: 401 tells the agent to set THREATCLUSTER_API_KEY and where a free key comes from, 429 carries the Retry-After, 403 names the missing scope or the lookback window and the plan that lifts it.
More on threatcluster.io
MCP server page, with the per-client setups: Claude, OpenAI, Cursor, VS Code
Agent keys: scoped, budgeted keys for agents
Free API key and the API reference
LLM recency benchmark: grounded answers against bare-model answers on live threats
Security
The key is read from
THREATCLUSTER_API_KEY(thenTC_REFRESH_TOKEN, then the tc-cli store) and sent only as theX-API-Keyheader (orAuthorization: Bearerfor a JWT minted bytc login) toTHREATCLUSTER_API_BASE.It is never logged, never printed by
--check, never written to disk, and scrubbed from every error string; the test suites assert the key is absent from all stdout and stderr bytes, including on a 401 whose body quotes it.stdio only. No outbound connection other than the API. No analytics.
All tools are read-only (
readOnlyHint: true) and validate arguments against the spec before any request is made.
Environment
Variable | Default | Purpose |
| — | your key ( |
|
| API base (self-hosted or local test servers) |
|
| base for the |
Repository layout
tools/tools.json the single source of truth: tools, schemas, endpoint mapping, credits, prompt
python/ PyPI package (hatchling; mcp + httpx) -> console script threatcluster-mcp
node/ npm package (TypeScript; @modelcontextprotocol/sdk + zod) -> bin threatcluster-mcp
tests/fixtures/ recorded API responses and tool outputs; both packages must replay them identically
listings/ directory manifests and submission copy (Smithery, MCP registry, Glama, mcp.so, Cursor, VS Code)
.github/workflows/ CI (both suites) and tag-triggered publishing (PyPI trusted publishing, npm provenance)python3 tools/sync_tools.py copies the spec into both packages; CI fails if the copies drift.
Development
pip install -e "python/[test]" && (cd python && pytest)
cd node && npm install && npm test
# live validation against a real API (spends ~30 credits, re-records tests/fixtures):
THREATCLUSTER_LIVE=1 THREATCLUSTER_API_KEY=... THREATCLUSTER_API_BASE=... pytest python/tests/test_live.pyRelated: the tc CLI, the API reference, the agent-tool recipe for a bare tool-calling function, and the integration guide.
GPL-3.0-or-later © ThreatCluster Ltd.
This server cannot be deployed
Maintenance
Related MCP Connectors
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
Free, read-only public-source threat intel over MCP. No account or API key.
One-call briefings for AI agents: dependency risk (KEV/EPSS), SEC companies, domains, US places.
CVE lookup via NIST NVD, CISA KEV, EPSS, and MITRE ATT&CK. 7 tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides threat intelligence and vulnerability research tools by integrating with NVD, VirusTotal, AbuseIPDB, Shodan, and MITRE ATT\&CK. It enables users to perform CVE lookups, analyze IP reputation, and retrieve detailed MITRE ATT\&CK technique information.1-
- AlicenseNot gradedqualityFmaintenanceProvides CVE search enriched with EPSS exploit likelihood and CISA KEV status, plus live IP/domain reputation and a real-time threat feed for AI agents.MIT
- FlicenseNot gradedqualityDmaintenanceProvides real-time threat intelligence for AI agents, enabling checks on IPs, domains, URLs, hashes, CVEs, prompt-injection payloads, and malicious AI-skill/MCP-tool definitions against a free database of 890K+ IOCs.-
- AlicenseAqualityBmaintenanceEnables MCP clients to query the ransomware.live PRO threat-intelligence API through 25 read-only tools covering ransomware group TTPs, victims, IOCs, YARA rules, ransom notes, leaked negotiation chats, press coverage, SEC 8-K disclosures, and CSIRT contacts.25MIT