h1-brain
h1-brain is an MCP server that connects Claude Desktop/Claude Code to HackerOne, pulling a researcher's own bounty-awarded reports and program scopes into a local SQLite database and shipping with a pre-built database of 3,600+ publicly disclosed bounty reports. Its primary tool, hack(handle), generates a full attack briefing for a target program in one call — fresh scope, past findings, weakness patterns, untouched assets, and cross-referenced public disclosures — putting the connected AI into offensive bug-hunting mode.
What it is
h1-brain is a Python MCP server (MIT license, by Patrik Grobshäuser, repo PatrikFehrenbach/h1-brain) that lets Claude Desktop, Claude Code or any MCP-compatible client query a researcher's HackerOne history. It stores data in local SQLite files. The repo includes disclosed_reports.db, with 3,600+ public bounty-awarded reports that have real write-ups. Each entry has title, details, weakness type, program, asset, CVEs and bounty amount when available.
How it works
Two databases sit behind the tools. h1_data.db holds your own reports, programs, scopes and activity timelines. It is auto-created and gitignored. disclosed_reports.db is read-only community data. Personal tools (search_reports, get_report) and public tools (search_disclosed_reports, get_disclosed_report) are kept separate.
hack(handle) runs this sequence: fetch current scope from the HackerOne API, pull your reports for that program, analyze weakness patterns across all your programs, find bounty-eligible assets you have not touched, cross-reference public disclosures for the program, then build a briefing. Its "Suggested Attack Vectors" section lists weaknesses that paid on other programs but have not been found on this one. The briefing is loaded from hack_instructions.md and ends with instructions that put the AI in attack mode.
Preconditions / Affected
- Python 3.10+.
- A HackerOne API token and username.
- Your own program access:
fetch_programspulls only programs you can access. - The personal database is empty until you sync it.
What to do
Install and register with Claude Code:
git clone https://github.com/PatrikFehrenbach/h1-brain.git
cd h1-brain
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
claude mcp add h1-brain \
-e H1_USERNAME=your_hackerone_username \
-e H1_API_TOKEN=your_api_token \
-- /path/to/h1-brain/venv/bin/python /path/to/h1-brain/server.pyFor Claude Desktop, add an mcpServers entry named h1-brain to ~/Library/Application Support/Claude/claude_desktop_config.json. Set command to the venv Python, args to server.py, and env to H1_USERNAME and H1_API_TOKEN. Restart Claude Desktop afterwards.
Then populate the personal database. fetch_rewarded_reports is described as the most important step. fetch_programs follows it. Re-run both periodically to sync new reports.
To include non-rewarded reports (informative, triaged, duplicate, new) and all comment threads for one program, call fetch_program_reports(handle). An optional out_dir exports each report as a markdown file.
Caveats
- Your API token sits in the MCP client config as plaintext environment variables, and report content goes to the connected AI.
- The page does not describe how the public dataset was collected or how often it is refreshed.
- The page does not say how the attack vector suggestions are scored. They compare weaknesses across programs.
- The tool is meant for programs where you are authorized to test, and the briefing pushes the AI into offensive mode. The page gives no scope or safety guardrails.
Technologies named here
- h1-brain
- HackerOne API
- Claude Desktop
- Claude Code
- hack
- fetch_rewarded_reports
- fetch_programs
- search_reports
- get_report
- search_disclosed_reports
- get_disclosed_report
- h1_data.db
- disclosed_reports.db
- Model Context Protocol
- HackerOne
- SQLite
- Python
Related in Offensive Security