uunw/h1mcp
GitHub: uunw/h1mcp
用 Rust 构建的 HackerOne MCP 服务器,将完整的 HackerOne API 和本地草稿管理能力以 MCP 工具形式暴露给 AI 客户端,让白帽黑客通过对话驱动整个漏洞赏金工作流。
Stars: 0 | Forks: 0
# h1mcp — HackerOne MCP Server
[](https://github.com/uunw/h1mcp/releases)
[](https://github.com/uunw/h1mcp/actions/workflows/docker.yml)
[](https://github.com/uunw/h1mcp/pkgs/container/h1mcp)
[](https://www.rust-lang.org/)
[](./LICENSE)
**h1mcp** 是一个使用 Rust 编写的 [HackerOne](https://hackerone.com) [MCP (Model Context Protocol)]( ) 服务器。它将完整的 HackerOne API —— 包括报告、项目、范围、弱点、赏金和 hacktivity —— 以及本地草稿管理功能,作为 MCP 工具暴露出来,你可以通过 **Claude Desktop**、**Claude Code** 或任何兼容 MCP 的客户端来驱动它。
使用它与 AI 助手一起运行你的漏洞赏金工作流:通过 [HackerOne API](https://api.hackerone.com/) 搜索和分类你的报告、在测试前查看项目范围、在本地起草提交内容,以及分析你发现的漏洞模式。
## 功能
- **完整的报告生命周期** — 搜索、阅读、提交、评论、关闭、更新严重程度、申请披露
- **项目发现** — 列出项目,获取范围(范围内资产),获取接受的弱点类型
- **黑客统计** — 资料(signal、reputation、impact)、余额、收入、hacktivity 搜索
- **模式分析** — 对你提交的报告进行聚合统计
- **本地草稿管理** — 保存、审查、编辑和提交草稿,而无需立即调用 API
- **单一静态二进制文件/微型 Docker 镜像** — 使用 Rust 构建,无运行时依赖
## 工具
| 工具 | 描述 |
|---|---|
| `search_reports` | 按关键字、项目、严重程度、状态搜索你提交的报告 |
| `get_report` | 按 ID 获取完整的报告详情 |
| `get_report_with_conversation` | 报告 + 完整的活动时间线捆绑包 |
| `get_report_activities` | 报告的活动时间线 |
| `submit_report` | 直接提交(推荐使用草稿流程) |
| `add_comment` | 对报告发表评论(支持 internal 标志) |
| `close_report` | 关闭/撤回报告 |
| `update_report_severity` | 更新严重程度评级 |
| `request_disclosure` | 请求公开披露 |
| `create_report_intent` | 在提交完整报告之前,发送一段自由文本的漏洞描述,供 HackerOne 助手进行预验证 |
| `list_report_intents` | 列出你的报告意图及其助手状态 |
| `get_report_intent` | 获取单个报告意图(助手回复 + 任务状态) |
| `list_programs` | 列出你有权访问的项目 |
| `get_program_details` | 完整的项目详情 |
| `get_program_scope` | 范围内的资产 |
| `get_program_weaknesses` | 接受的 CWE 类型 |
| `get_submission_options` | 一次调用即可获取项目的可提交范围 ID + 弱点 ID |
| `get_hacker_profile` | 从你的报告中推导出的身份(用户名/姓名/简介) |
| `get_balance` | 当前赏金余额 |
| `get_earnings` | 收入记录 |
| `search_disclosed_reports` | 搜索 hacktivity(已公开披露的报告) |
| `analyze_report_patterns` | 对你近期的报告进行聚合统计 |
| `draft_report` | 在本地保存报告草稿 |
| `list_drafts` | 列出已保存的草稿 |
| `get_draft` | 阅读草稿 |
| `update_draft` | 更新草稿字段 |
| `delete_draft` | 删除草稿 |
| `submit_draft` | 将草稿提交至 H1(成功后会自动删除草稿) |
## 设置
### 凭证
在 创建 HackerOne API token。该页面上显示的 **API username** 用于 HTTP Basic 认证(`username:token`)。
```
H1_USERNAME=your_hackerone_username
H1_API_KEY=your_api_key
```
### Docker(推荐)
直接从 GitHub Container Registry 拉取并运行:
```
docker pull ghcr.io/uunw/h1mcp
docker run --rm -i -e H1_USERNAME=... -e H1_API_KEY=... ghcr.io/uunw/h1mcp
```
或在本地构建:
```
docker build -t h1mcp .
```
### 手动构建
```
cargo build --release
./target/release/h1mcp
```
### Claude Desktop 配置
添加到 `~/Library/Application Support/Claude/claude_desktop_config.json`:
**Docker(推荐):**
```
{
"mcpServers": {
"hackerone": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "H1_USERNAME", "-e", "H1_API_KEY", "ghcr.io/uunw/h1mcp"],
"env": {
"H1_USERNAME": "your_username",
"H1_API_KEY": "your_api_key"
}
}
}
}
```
**二进制文件:**
```
{
"mcpServers": {
"hackerone": {
"command": "/path/to/h1mcp",
"env": {
"H1_USERNAME": "your_username",
"H1_API_KEY": "your_api_key"
}
}
}
}
```
### Claude Code (CLI)
```
# user scope (在所有项目中可用)
claude mcp add --scope user \
--env H1_USERNAME=your_username \
--env H1_API_KEY=your_api_key \
h1mcp -- docker run --rm -i -e H1_USERNAME -e H1_API_KEY ghcr.io/uunw/h1mcp
# project scope (提交至 .mcp.json,与团队共享)
claude mcp add --scope project \
--env H1_USERNAME=your_username \
--env H1_API_KEY=your_api_key \
h1mcp -- docker run --rm -i -e H1_USERNAME -e H1_API_KEY ghcr.io/uunw/h1mcp
```
验证:`claude mcp list`
## 草稿工作流
```
draft_report → get_draft → update_draft → submit_draft
```
草稿以 JSON 文件的形式存储在 `~/.config/h1mcp/drafts/` 中。
## 工作原理
h1mcp 与位于 `https://api.hackerone.com/v1/hackers/` 下的 HackerOne **hacker API** 进行通信,使用 HTTP Basic 认证(`H1_USERNAME:H1_API_KEY`)。响应会在进程内进行短暂缓存,并且对于速率限制(`429`)和服务器错误,会通过退避策略进行重试。
工具输出针对 LLM token 成本进行了优化:结果会剔除 null 字段、空容器和头像 URL,然后序列化为紧凑(非美化)的 JSON。
## 许可证
[MIT](./LICENSE)
标签:API集成, MCP, Rust, 可观测性, 可视化界面, 漏洞悬赏, 网络流量审计, 网络调试, 自动化, 请求拦截, 通知系统