Skip to main content
Glama
Sicks3c

HackerOne MCP Server

by Sicks3c
README.md
# HackerOne MCP Server

> **Disclaimer:** This is an unofficial, community-built project. It is not affiliated with, endorsed by, or maintained by HackerOne. "HackerOne" is a trademark of HackerOne, Inc. This project simply integrates with their publicly documented [Hacker API](https://api.hackerone.com/hacker-resources/).

MCP server that gives Claude Code (or any MCP client) full access to your HackerOne reports, programs, earnings, and scope data via the HackerOne API — including submitting reports and responding to triage.

## Setup

### 1. Get your HackerOne API token

Go to **HackerOne > Settings > API Token** and generate one.

### 2. Install and build

```bash
git clone https://github.com/Sicks3c/hackerone-mcp-server.git
cd hackerone-mcp-server
npm install
npm run build
```

### 3. Add to Claude Code

```bash
claude mcp add hackerone \
  -e H1_USERNAME=your-username \
  -e H1_API_TOKEN=your-api-token \
  -s user \
  -- node /path/to/hackerone-mcp-server/dist/index.js
```

Or add manually to `~/.claude.json`:

```json
{
  "mcpServers": {
    "hackerone": {
      "command": "node",
      "args": ["/path/to/hackerone-mcp-server/dist/index.js"],
      "env": {
        "H1_USERNAME": "your-username",
        "H1_API_TOKEN": "your-api-token"
      }
    }
  }
}
```

### 4. Verify

```bash
claude
> /mcp
# You should see "hackerone" listed with 16 tools
```

## Tools

### Read

| Tool | Description |
|------|-------------|
| `search_reports` | Search and filter your reports by keyword, program, severity, or state |
| `get_report` | Get full report details including CVSS vector, bounty amounts, and attachments |
| `get_report_with_conversation` | Get a report with its triage conversation thread |
| `get_report_activities` | Get activity timeline (comments, state changes, bounties) |
| `list_programs` | List all bug bounty programs you have access to (auto-paginates) |
| `get_program_details` | Get single program info: policy, response times, metrics |
| `get_program_scope` | Get all in-scope assets for a program (auto-paginates) |
| `get_program_weaknesses` | Get accepted CWE/weakness types for a program (auto-paginates) |
| `get_earnings` | Get your bounty earnings history (amounts, dates, programs) |
| `get_hacker_profile` | Get your reputation, signal, impact, and rank |
| `get_balance` | Get your current unpaid bounty balance |
| `analyze_report_patterns` | Analyze your hunting patterns (severity distribution, top programs, weakness types) |
| `search_disclosed_reports` | Search publicly disclosed reports on hacktivity — great for recon and learning |

### Write

| Tool | Description |
|------|-------------|
| `submit_report` | Submit a new vulnerability report to a program |
| `add_comment` | Add a comment to an existing report (respond to triage) |
| `close_report` | Withdraw/close one of your own reports |

## Usage Examples

**Submit a report directly:**
```
Submit this SSRF finding to the uber program with critical severity. Here's my writeup: [paste]
```

**Respond to triage:**
```
Add a comment to report #2345678: "Here's the updated PoC with the new endpoint..."
```

**Draft a report matching your style:**
```
Find my resolved critical reports and use the same structure to draft a new report for this SSRF I found.
```

**Learn from triage conversations:**
```
Show me the triage conversation on report #2345678. What questions did they ask?
```

**Research what gets paid:**
```
Search disclosed reports on the uber program for SSRF — what did they pay?
```

**Check program details before hunting:**
```
Show me the uber program details — what are their response times?
```

**Check your stats:**
```
Show my hacker profile — what's my current reputation and signal?
```

**Track earnings:**
```
Show my recent bounty earnings and current balance
```

**Analyze patterns:**
```
Analyze my report patterns — what severity gets resolved most?
```

## How It Works

- Connects to the [HackerOne Hacker API v1](https://api.hackerone.com/hacker-resources/) using your personal API token
- Runs locally over stdio — your credentials never leave your machine
- Supports both read and write operations (submit reports, add comments, close reports)
- Auto-paginates programs, scope, and weakness endpoints so nothing gets silently truncated
- Uses server-side API filters where available (program, severity, state) for faster searches
- Built-in retry with exponential backoff for rate limit handling
- 60-second response cache to reduce redundant API calls

## License

MIT

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes, such as get_earnings for bounty history and get_program_scope for program assets, but get_report, get_report_activities, and get_report_with_conversation overlap in focusing on report details, which could cause minor confusion in selection. The descriptions help clarify the differences, but the boundaries are not entirely clear.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as analyze_report_patterns, get_earnings, and list_programs. There are no deviations in naming conventions, making the set predictable and easy to parse for agents.

Tool Count5/5

With 9 tools, the server is well-scoped for managing HackerOne bug bounty activities, covering key areas like program info, reports, and earnings. Each tool earns its place without feeling excessive or insufficient for the domain.

Completeness4/5

The tool surface provides comprehensive coverage for bug bounty hunters, including program listing, scope and weakness details, report retrieval and search, and earnings tracking. A minor gap exists in lacking tools for creating or submitting new reports, but agents can work around this with the available tools for drafting and referencing.

Maintenance

ActivityInactive
ResponsivenessNo issues