关于 threatcluster
ThreatCluster 是面向安全分析人员和 Agent 的威胁情报 API 封装及 MCP 服务。它通过只读工具提供实时事件集群、实体档案、漏洞状态和勒索软件泄露站受害者信息。
主要功能
- 01搜索事件集群和威胁记录
- 02查询攻击者、恶意软件及厂商档案
- 03检查包含 KEV 和 EPSS 数据的 CVE
- 04查询勒索软件泄露站受害者
- 05追踪热门实体与已利用漏洞
- 06提供带引用网址的只读工具
适用场景
- 01检查某个 CVE 是否已遭利用
- 02查看近期事件及其时间线
- 03查找勒索软件泄露站受害者名单
- 04为 Agent 提供带引用的威胁情报
MCP 相关
MCP 服务通过 ThreatCluster API 提供只读工具,用于搜索事件、实体、漏洞和勒索软件受害者。工具结果包含引用网址,以及调用成本和剩余额度。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://threatcluster.io/mcpclaude mcp add --transport http jam0k-threatcluster https://threatcluster.io/mcp{"mcpServers":{"jam0k-threatcluster":{"type":"http","url":"https://threatcluster.io/mcp"}}}在 Cursor 中打开{"servers":{"jam0k-threatcluster":{"type":"http","url":"https://threatcluster.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"jam0k-threatcluster":{"type":"http","url":"https://threatcluster.io/mcp"}}}{"mcpServers":{"jam0k-threatcluster":{"serverUrl":"https://threatcluster.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://threatcluster.io/mcp需要授权工具
详细介绍
ThreatCluster:免费的 CTI API 和 MCP 服务
免费的威胁情报 API(每天 100 个积分,无需银行卡),以及基于它的 MCP 服务。向 Claude、Cursor 或任何 MCP 客户端询问最新动态、受影响对象、某个 CVE 是否遭到利用,即可从实时语料库获得答案。该语料库包含去重后的事件集群、攻击者和恶意软件档案、含 KEV 和 EPSS 信息的 CVE,以及勒索软件泄露站点上的受害者。
一个 MCP 服务,可让 Claude、Cursor、VS Code、Windsurf、Zed 及任何其他 MCP 客户端从 ThreatCluster 获取实时威胁情报(设置指南):事件集群(每起事件对应一个去重后的故事,包含威胁评分、时间线和提取出的实体)、实体档案(攻击者、恶意软件、工具、供应商、CVE)、含 KEV / EPSS / 利用状态的 CVE 记录,以及勒索软件泄露站点上的受害者。
这是对公开 REST API 的轻量、可审计封装。每次工具调用只会向 https://threatcluster.io/api/public/v1 发出一到两次 GET 请求,并使用你自己的 API 密钥;不会有其他数据离开你的设备,也不会收集遥测数据。
为什么选择它,而不是信息源聚合器
大多数免费的 CTI MCP 服务都封装了其他人提供的指标信息源(OTX、abuse.ch、AbuseIPDB)。ThreatCluster 本身就是语料库:每个故事都是一个集群,由报道该事件的所有信息源构建而成,包含威胁评分、时间线和从文本中提取的实体;同一个 API 还提供泄露站点受害者列表和 CVE 利用状态。免费密钥涵盖所有这些内容,可查询最近 7 天的数据;付费套餐则可延长时间范围。详情和托管端点(https://threatcluster.io/mcp)请见 threatcluster.io/about/free-api。
基于同一份工具规范发布了两个版本,因此两者完全一致:
| 运行环境 | 安装方式 | 软件包 |
|---|---|---|
| Python 3.10+ | uvx threatcluster-mcp(或 pipx run threatcluster-mcp) | PyPI:threatcluster-mcp |
| Node 18+ | npx -y threatcluster-mcp | npm:threatcluster-mcp |
1. 获取密钥
免费密钥包含五种读取权限,每天 100 个积分,每分钟 30 次请求,以及 7 天的数据回溯范围:https://threatcluster.io/api。将密钥放入 THREATCLUSTER_API_KEY。如果你使用 tc CLI 并已运行 tc auth login,Python 服务会自动读取该凭据(从密钥环或 ~/.config/tc-cli/credentials 文件);Node 服务则只会读取该文件。
2. 添加服务
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-mcp
Claude Desktop(claude_desktop_config.json,Settings > Developer > Edit Config)
{
"mcpServers": {
"threatcluster": {
"command": "npx",
"args": ["-y", "threatcluster-mcp"],
"env": { "THREATCLUSTER_API_KEY": "tc_live_..." }
}
}
}
Cursor — 一键添加:请见 listings/cursor-deeplink.md,或添加到 ~/.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;输入提示会要求输入密钥,而不会将其存储在文件中)
{
"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)— 使用与 Claude Desktop 相同的 mcpServers 配置块。
Zed(settings.json)
{ "context_servers": { "threatcluster": { "command": { "path": "npx", "args": ["-y", "threatcluster-mcp"], "env": { "THREATCLUSTER_API_KEY": "tc_live_..." } } } } }
无需启动客户端即可检查配置:THREATCLUSTER_API_KEY=... npx -y threatcluster-mcp --check(会显示密钥的来源及其发送目标,但绝不会显示密钥本身)。
3. 工具
费用以 ThreatCluster API 积分计算(免费密钥:每天 100 积分)。每个结果中的每个集群、实体、受害者和 CVE 都包含 cost(本次调用消耗的积分)、budget(根据响应标头显示的今日剩余积分)、as_of 和 url 字段,供引用。
| 工具 | 可回答的问题 | API 端点 | 积分 |
|---|---|---|---|
search_threats | 按关键词搜索事件集群;依次尝试完整短语、全部单词、任意单词;matched_stage 会说明命中了哪种匹配方式 | 每个词条调用一次 GET /threats?keyword= | 每个词条 1 积分(最多调用 8 次) |
search_everything | 一次调用搜索集群、实体档案和暗网命中项 | GET /search | 5 |
newest_threats | 按首次报告时间或热度趋势,查询过去 1 小时 / 24 小时 / 7 天 / 30 天的新内容 | GET /threats | 1 |
get_threat | 获取单个集群的完整记录:摘要、时间线、文章、实体;include_iocs 会添加经过验证的指标 | GET /threats/{id}(以及 /iocs) | 1(+1) |
leak_site_victims | 按行业、组织、国家或受害者筛选勒索软件泄露站点列表,并提供整个时间范围的总数 | GET /darkweb/ransomware/victims + /facets | 2 |
lookup_entity | 查询攻击者、恶意软件、工具、供应商、产品、国家、行业或 CVE 的档案 | GET /entities/search + GET /entities/{type}/{value} | 2 |
get_vulnerability | 查询单个 CVE:CVSS、EPSS、包含截止日期的 KEV、漏洞利用、供应商、产品 | GET /vulnerabilities/{cve_id} | 1 |
exploited_vulnerabilities | 查询指定时间范围内的 CVE,并按 KEV / 公开漏洞利用 / 严重性 / 供应商 / 产品筛选 | GET /vulnerabilities | 1 |
trending_entities | 查询指定时间范围内热度上升的攻击者、恶意软件、工具、供应商、CVE、国家 | GET /entities/trending | 1 |
api_budget | 查看剩余积分和最近响应中的速率状态——不调用 API | — | 0 |
一个提示词 threatcluster_analyst 包含分析员规则(先使用工具;每条事实都要引用返回的 url;说明搜索的时间范围;泄露站点列表中的内容仅为声称)。
错误会作为 MCP 工具错误返回,并附带 API 自身的消息:401 会提示 Agent 设置 THREATCLUSTER_API_KEY,并说明如何获取免费密钥;429 会包含 Retry-After;403 会指出缺少的作用域或回溯时间范围,以及可解除限制的方案。
了解更多 threatcluster.io
- MCP 服务页面,提供各客户端的配置方式:Claude、OpenAI、Cursor、VS Code
- Agent 密钥:为 Agent 提供带作用域和预算限制的密钥
- 免费 API 密钥和 API 参考
- LLM 时效性基准测试:对比基于实时威胁数据的回答与仅依赖基础模型的回答
安全
- 密钥从
THREATCLUSTER_API_KEY(其次是TC_REFRESH_TOKEN,再其次是 tc-cli 存储)读取,并且只会通过X-API-Key标头发送到THREATCLUSTER_API_BASE(由tc login生成的 JWT 则使用Authorization: Bearer)。 - 密钥绝不会被记录或由
--check打印,也不会写入磁盘,并且会从所有错误字符串中清除;测试套件会断言密钥不会出现在任何 stdout 和 stderr 字节中,包括响应正文引用密钥的401错误。 - 仅使用 stdio。除 API 外不建立任何出站连接。不收集分析数据。
- 所有工具均为只读(
readOnlyHint: true),并会在发出任何请求前根据规范验证参数。
环境
| 变量 | 默认值 | 用途 |
|---|---|---|
THREATCLUSTER_API_KEY | — | 你的密钥(tc_live_…、tc_agent_…)或来自 tc login 的 bearer token |
THREATCLUSTER_API_BASE | https://threatcluster.io/api/public/v1 | API 基础地址(用于可自托管或本地测试服务) |
THREATCLUSTER_SITE | https://threatcluster.io | 结果中 url 字段的基础地址 |
仓库布局
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 会将规范复制到两个软件包中;如果副本不一致,CI 将失败。
开发
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.py
相关内容:tc CLI、API 参考、用于实现基础工具调用函数的 Agent 工具指南,以及集成指南。
GPL-3.0-or-later © ThreatCluster Ltd.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。