uunw/h1mcp

GitHub: uunw/h1mcp

用 Rust 构建的 HackerOne MCP 服务器,将完整的 HackerOne API 和本地草稿管理能力以 MCP 工具形式暴露给 AI 客户端,让白帽黑客通过对话驱动整个漏洞赏金工作流。

Stars: 0 | Forks: 0

# h1mcp — HackerOne MCP Server [![发布](https://img.shields.io/github/v/release/uunw/h1mcp?sort=semver)](https://github.com/uunw/h1mcp/releases) [![构建并推送 Docker 镜像](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0d06291732174936.svg)](https://github.com/uunw/h1mcp/actions/workflows/docker.yml) [![Container](https://img.shields.io/badge/ghcr.io-uunw%2Fh1mcp-2496ED?logo=docker&logoColor=white)](https://github.com/uunw/h1mcp/pkgs/container/h1mcp) [![使用 Rust 构建](https://img.shields.io/badge/built%20with-Rust-DEA584?logo=rust&logoColor=white)](https://www.rust-lang.org/) [![许可证: MIT](https://img.shields.io/badge/license-MIT-blue)](./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, 可观测性, 可视化界面, 漏洞悬赏, 网络流量审计, 网络调试, 自动化, 请求拦截, 通知系统