
Threatcluster
io.github.Jam0kPublished by GitHub account Jam0kv0.2.3Updated Oct 26, 2026
Live threat intel for agents: incidents, actors, CVEs with KEV/EPSS, ransomware leak-site victims.
Overview
ThreatCluster MCP gives an assistant live cyber threat intelligence: incident clusters, actor and malware profiles, CVEs with KEV/EPSS, and ransomware…
- What you can do
- Search incident clusters by keyword, or search clusters, entity profiles and dark-web hits in one call
- List what is new over 1h, 24h, 7d or 30d, and fetch a full cluster record with timeline, articles, entities and optional validated indicators
- Look up profiles of actors, malware, tools, vendors, products, countries, industries and CVEs, and see which entities are trending
- Check a single CVE for CVSS, EPSS, KEV due date and exploits, or list exploited vulnerabilities filtered by KEV, exploit, severity, vendor or product
- Browse ransomware leak-site victims by sector, group, country or victim, with a tally of the window
- Report remaining API credits and rate state without spending a call
- When to use it
- Useful when an assistant needs current, citable answers about breaking incidents, threat actors, exploited CVEs or ransomware victims, for example in security research, vulnerability triage or briefing work. It is a read-only intelligence lookup, not a scanner or a feed of raw indicators.
- Requirements
- A ThreatCluster API key in THREATCLUSTER_API_KEY (or sent as the X-API-Key header); free keys are available. Runs as a local process via npx (Node 18+) or uvx (Python 3.10+), or as a hosted remote endpoint. Optional THREATCLUSTER_API_BASE and THREATCLUSTER_SITE override the API and site base URLs. Network access to the ThreatCluster API is required.
Installation
In SourceWeft
- Open Threatcluster in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.Jam0k%2Fthreatcluster/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"threatcluster": {
"type": "http",
"url": "https://threatcluster.io/mcp"
}
}
}README
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:
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 Desktop (claude_desktop_config.json, Settings > Developer > Edit Config)
Cursor — one-click: see listings/cursor-deeplink.md, or add to ~/.cursor/mcp.json / .cursor/mcp.json:
VS Code (.vscode/mcp.json; the input prompts for the key instead of storing it in the file)
Windsurf (~/.codeium/windsurf/mcp_config.json) — same mcpServers block as Claude Desktop.
Zed (settings.json)
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.
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
Repository layout
python3 tools/sync_tools.py copies the spec into both packages; CI fails if the copies drift.
Development
Related: 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.
Source: README.md at commit f914fbb
Tools
0Version history
1- v0.2.3LatestSep 26, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts