内容
# inti-brain
一款连接您的 AI 助手(Claude Code / Desktop,或任何 MCP 客户端)到 **Intigriti** 的 MCP 服务器。它拉取您可以访问的程序、它们的范围(域)和参与规则到本地 SQLite 数据库,然后通过 `hack(handle)` 提供搜索程序、拉取范围和生成可行的攻击简报的工具。
这是 [h1-brain](https://github.com/PatrikFehrenbach/h1-brain) 的 Intigriti 等价物。
> **仅限授权测试。** 请仅针对您被允许测试的程序,并遵循每个程序的范围和参与规则。
## 功能
- 同步您所有可以访问的 Intigriti 程序(句柄、名称、赏金范围、状态、行业)。
- 拉取每个程序的范围,按 **赏金等级** 分解,以及参与规则 — 包括 **所需的请求头** (例如 `X-Intigriti-Username: {you}`)、安全港状态和是否允许自动化工具。
- `hack(handle)` 返回一份完整的简报:首先是符合赏金资格的资产,然后是没有赏金资产、一个明确的 **超出范围** 部分、所需的头、参与规则和(可选)来自已披露报告知识库的弱点模式命中。
## 要求
- Python 3.10+
- Intigriti **研究人员 API 个人访问令牌** (在 <https://app.intigriti.com/researcher/personal-access-tokens> 处生成)。
## 设置
```bash
git clone https://github.com/<you>/inti-brain.git
cd inti-brain
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
cp .intienv.example .intienv # 然后用您的令牌编辑 .intienv
```
`.intienv`:
```
INTI_USERNAME=您的_intigriti_用户名
INTI_API_TOKEN=您的研究人员_api_令牌
```
## 连接到 Claude Code
```bash
claude mcp add inti-brain \
-e INTI_USERNAME=您的用户名 \
-e INTI_API_TOKEN=您的令牌 \
-- /绝对路径/to/inti-brain/venv/bin/python \
/绝对路径/to/inti-brain/server.py
```
对于 Claude Desktop,请添加一个等效的 `mcpServers` 条目,指向 `venv/bin/python server.py`,并带有两个环境变量。
## 首次运行
1. `fetch_programs` — 同步所有您可以访问的程序。
2. `sync_all_scopes(bounty_only=True)` — 可选的批量范围拉取,适用于付费程序。
3. `hack(handle)` — 针对一个程序的完整攻击简报(自动拉取最新范围)。
## 工具
| 工具 | 描述 |
|------|-------------|
| `fetch_programs()` | 将所有可访问的程序同步到数据库 |
| `fetch_program_scope(handle)` | 获取一个程序的域名 + 参与规则 |
| `sync_all_scopes(bounty_only, limit)` | 批量范围同步(每个 API 调用 — 较重) |
| `search_programs(query, bounty_only, status, industry, min_max_bounty, limit)` | 搜索同步的程序 |
| `search_scopes(program, asset, bounty_only, asset_type, limit)` | 搜索范围条目 |
| `get_program(handle)` | 完整的程序详细信息,包括参与规则 + 范围(自动同步) |
| `hack(handle)` | 攻击简报:按赏金等级划分的范围、所需头、安全港/工具标志、超出范围部分、参与规则、知识库命中 |
| `search_disclosed_reports(query, weakness, limit)` | 全文模式知识库搜索 *(需要可选的知识库,下面有介绍)* |
| `get_disclosed_report(id)` | 来自模式知识库的完整报告 *(需要可选的知识库)* |
## 可选:弱点模式知识库
`hack()` 的两个 `*_disclosed_report*` 工具和“模式知识库命中”部分读取一个可选的 SQLite 公共已披露漏洞赏金报告语料库。将 `disclosed_reports.db` 放入此文件夹中(来自 [h1-brain](https://github.com/PatrikFehrenbach/h1-brain) 的模式可以直接使用),或将 `DISCLOSED_DB_FILE` 指向一个。如果不存在,这些工具会优雅地降级,服务器的其他部分正常工作。
## API
- 基础:`https://api.intigriti.com/external/researcher/v1`
- 认证:`Authorization: Bearer <研究人员-api-令牌>`
- 程序:`GET /programs?limit=&offset=` (偏移分页)
- 程序详情/范围:`GET /programs/{programId}`
## 注意事项
- `inti_data.db`、`.intienv` 和 `disclosed_reports.db` 被 git 忽略 — 您的令牌和本地数据永远不会被提交。
- 始终在范围内请求中发送程序所需的头,否则您可能会被标记为超出范围。
## 许可证
MIT