pete-builds/mcp-threatintel
GitHub: pete-builds/mcp-threatintel
一个为 Claude Code 构建的本地化威胁情报 MCP 服务器,通过离线同步与缓存实现快速 IOC、CVE 与泄露查询,降低对外部 API 的依赖。
Stars: 0 | Forks: 0
# mcp-threatintel
一个用于 [Claude Code](https://claude.com/claude-code) 的威胁情报 MCP 服务器。为 Claude 提供工具,用于查询 IOC、搜索威胁源、检查泄露凭证、查询 CVE 以及搜索暗网。
基于 [FastMCP](https://github.com/jlowin/fastmcp) 和 SQLite 构建。数据源通过后台轮询器本地同步,因此查询速度快且不依赖外部 API 的可用性。
## 工具
| 工具 | 功能 |
|------|------|
| `lookup_ioc` | 检查 IP、域名、哈希或 URL 是否在所有威胁源中 |
| `search_threats` | 在 IOC、OTX 脉冲和 CVE 中进行全文搜索 |
| `get_recent_threats` | 最近 N 小时内新增的内容 |
| `lookup_cve` | 检查 CVE 是否在 CISA 已知被利用漏洞目录中 |
| `get_feed_status` | 显示所有数据源的同步状态和记录数 |
| `search_pulses` | 搜索 AlienVault OTX 社区威胁脉冲 |
| `check_breach` | 通过邮箱、域名、用户名或哈希检查 LeakCheck 的泄露凭证 |
| `check_domain_breaches` | 检查某个域名的所有已知泄露 |
| `search_darkweb` | 搜索 Ahmia.fi 的 Tor 隐藏服务索引 |
| `check_password_breach` | 检查密码是否已泄露(使用 HIBP k-匿名性,密码不会离开本机) |
| `check_email_breaches` | 通过 HIBP 检查邮箱是否存在于任何已知泄露中 |
| `get_latest_breach` | 获取 HIBP 最近新增的泄露记录 |
## 数据源
| 来源 | 提供内容 | 认证 | 成本 |
|------|----------|------|------|
| [abuse.ch](https://abuse.ch/)(URLhaus、MalwareBazaar、ThreatFox、Feodo) | 恶意 URL、哈希、C2、僵尸网络 IP | `ABUSECH_API_KEY` | 免费 |
| [AlienVault OTX](https://otx.alienvault.com/) | 社区威胁脉冲、IOC 增强 | `OTX_API_KEY` | 免费 |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | 已知被利用漏洞目录 | 无 | 免费 |
| [Ahmia.fi](https://ahmia.fi/) | 暗网搜索(.onion 索引) | 无 | 免费 |
| [HIBP Passwords](https://haveibeenpwned.com/Passwords) | 泄露密码检查(k-匿名性) | 无 | 免费 |
| [HIBP Email](https://haveibeenpwned.com/API/Key) | 邮箱泄露查询 | `HIBP_API_KEY` | $4.50/月 |
| [LeakCheck](https://leakcheck.io/) | 暗网泄露数据(70 亿+ 记录) | `LEAKCHECK_API_KEY` | $10/月 |
所有可选密钥均可优雅降级。服务器在没有这些密钥的情况下仍可正常运行,并在工具需要未配置的密钥时返回明确的错误信息。
## 架构
```
Claude Code
|
| SSE (port 3707)
v
mcp-threatintel (server.py)
|
|-- SQLite cache (threatintel.db) <-- populated by poller
|-- Live API calls (LeakCheck, HIBP, Ahmia)
v
threatintel-poller (poller.py)
|
|-- abuse.ch feeds (URLhaus, MalwareBazaar, ThreatFox, Feodo)
|-- AlienVault OTX pulses
|-- CISA KEV catalog
(syncs hourly by default)
```
轮询器作为一个独立容器运行,并将威胁源同步到共享的 SQLite 数据库中。MCP 服务器从缓存读取数据以实现快速查询,仅在需要按需服务时(LeakCheck、HIBP、Ahmia)进行实时 API 调用。
## 安装
### 1. 克隆并配置
```
git clone https://github.com/pete-builds/mcp-threatintel.git
cd mcp-threatintel
cp .env.example .env
```
编辑 `.env` 并添加你的 API 密钥。只有 `ABUSECH_API_KEY` 是必需的,其余均为可选。
### 2. 启动服务栈
```
docker compose up -d
```
这将启动两个容器:
- `mcp-threatintel`:MCP 服务器,监听 3707 端口
- `threatintel-poller`:后台源同步(每小时运行一次)
首次启动时轮询器会执行一次初始同步。请等待一分钟后,工具才能获取数据。
### 3. 连接到 Claude Code
在 Claude Code 的 `settings.json` 中添加:
```
{
"mcpServers": {
"threatintel": {
"type": "sse",
"url": "http://localhost:3707/sse"
}
}
}
```
重启 Claude Code。12 个工具将以 `mcp__threatintel__*` 的形式显示。
## API 密钥
```
# 必需
ABUSECH_API_KEY # Register free at https://auth.abuse.ch/
# 可选(免费)
OTX_API_KEY # Register free at https://otx.alienvault.com/
# 可选(付费)
HIBP_API_KEY # $4.50/mo at https://haveibeenpwned.com/API/Key
LEAKCHECK_API_KEY # $10/mo at https://leakcheck.io/
```
## 说明
- `docker-compose.yml` 使用 `network_mode: host`。MCP 服务器绑定到 `0.0.0.0:3707`。如果你在服务器上(而不仅是本地主机)运行此服务,请添加防火墙规则以限制访问。
- SQLite 数据库存储在命名的 Docker 卷(`threatintel-data`)中,容器重启后数据仍会保留。
- LeakCheck 结果会隐藏大部分暴露的密码值,仅显示首尾两个字符。
- HIBP 密码检查使用 k-匿名性:仅将 SHA-1 哈希的前 5 个字符发送到 API。完整密码不会离开本机。
## 致谢
由 [Pete Stergion](https://github.com/pete-builds) 构建,用于 [Claude Code](https://claude.com/claude-code) 的安全调查。
相关项目:[claude-research-agent](https://github.com/pete-builds/claude-research-agent) — 使用该服务器进行安全调查的研究技能。
标签:Claude Code, CVE检查, FastMCP, IOC查询, MalwareBazaar, masscan, MCP服务器, OTX, SQLite, URLhaus, XSS, 威胁情报, 威胁情报平台, 威胁监控, 威胁聚合, 开发者工具, 数据同步, 暗网搜索, 泄露凭证检查, 漏洞情报, 网络威胁, 请求拦截, 逆向工具