Skip to main content
Glama
h1-hacker-mcp

h1-hacker-mcp

by pablocian

h1-hacker-mcp

Read-only MCP server for the HackerOne Hacker API. An agent can read the programs, policies, scope, reports, and payments the authenticated hacker account can already see. It cannot create, update, or submit reports.

Credentials

Create an API token in HackerOne under Settings → API Token, then set:

export HACKERONE_API_IDENTIFIER="your-api-token-identifier"
export HACKERONE_API_TOKEN="your-api-token"

Related MCP server: hackerone-mcp

Cursor

Add this to your MCP config. The process needs the two environment variables above.

{
  "mcpServers": {
    "h1-hacker": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/h1-hacker-mcp", "h1-hacker-mcp"]
    }
  }
}

Run

uv run h1-hacker-mcp

Docker

The image starts the same stdio server. Credentials are read from the environment at run time and are not copied into the image.

docker build -t h1-hacker-mcp .

Cursor must keep stdin open and must not allocate a TTY, because a TTY corrupts the MCP stream. -e NAME forwards each variable from the environment that launches Cursor.

{
  "mcpServers": {
    "h1-hacker": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "HACKERONE_API_IDENTIFIER",
        "-e", "HACKERONE_API_TOKEN",
        "h1-hacker-mcp"
      ]
    }
  }
}

Available Tools

15 tools
check_credentialsA
Read-onlyIdempotent

Check the stored HackerOne API token by requesting one program.

Inputs: no named parameters. Returns: object

get_balanceA
Read-onlyIdempotent

Get the authenticated hacker's current payments balance.

Inputs: no named parameters. Returns: object

get_programA
Read-onlyIdempotent

Get one program, including its policy and declaration flags.

Declaration flags are offers_bounties, open_scope, fast_payments,
gold_standard_safe_harbor, and allows_bounty_splitting. handle is the
program handle from list_programs, such as "security".

Inputs: handle (required). Returns: object

get_reportA
Read-onlyIdempotent

Get one report the account can view, including activity.

Includes reporter, program, weakness, severity, bounties, swag, activities,
attachment metadata (with expiring download URLs), structured scope, and
summaries. vulnerability_information is present when the hacker owns the
report. This tool does not download attachment bytes.

Inputs: report_id (required). Returns: object

get_report_intentB
Read-onlyIdempotent

Get one report-intent draft. This does not submit or update it.

Inputs: report_intent_id (required). Returns: object

list_earningsB
Read-onlyIdempotent

List earnings (bounties, retests, and pentests) for the authenticated hacker.

Inputs: page_size, page_number. Returns: object

list_my_reportsA
Read-onlyIdempotent

List reports submitted by the authenticated hacker.

This page does not include report activity. Call get_report for the full
report. page_number starts at 1. page_size is 1-100.

Inputs: page_size, page_number. Returns: object

list_payoutsB
Read-onlyIdempotent

List payouts sent to the authenticated hacker.

Inputs: page_size, page_number. Returns: object

list_programsA
Read-onlyIdempotent

List programs the hacker account can access.

Program policies are omitted from this list. Call get_program for the policy
and declaration flags. page_number starts at 1. page_size is 1-100.

Inputs: page_size, page_number. Returns: object

list_report_intent_attachmentsA
Read-onlyIdempotent

List attachment metadata for a report-intent draft, including expiring download URLs.

This does not download file bytes or upload attachments.

Inputs: report_intent_id (required). Returns: object

list_report_intentsA
Read-onlyIdempotent

List unsubmitted report-intent drafts owned by the authenticated hacker.

This does not submit them.

Inputs: no named parameters. Returns: object

list_scope_exclusionsC
Read-onlyIdempotent

List report categories a program excludes from rewards, beyond core ineligible findings.

Inputs: handle (required). Returns: object

list_structured_scopesA
Read-onlyIdempotent

List a program's structured scope (in-scope and submission-eligible assets).

Each asset includes asset_identifier, asset_type, eligible_for_submission,
eligible_for_bounty, max_severity, and instruction. Limited to 50 requests
per minute. Page offsets cover at most 10,000 rows; pass id_gt (the last
seen scope id) to continue, and prefer that over high page numbers.
created_after and updated_after are ISO-8601 timestamps.

Inputs: handle (required), id_gt, page_size, page_number, +2 more. Returns: object

list_weaknessesB
Read-onlyIdempotent

List weakness types a program accepts. page_number starts at 1. page_size is 1-100.

Inputs: handle (required), page_size, page_number. Returns: object

search_hacktivityA
Read-onlyIdempotent

Search publicly disclosed hacktivity reports.

query is an Apache Lucene query. Filters: severity_rating, asset_type,
substate, cwe, cve_ids, reporter, team, total_awarded_amount, disclosed_at,
has_collaboration, disclosed. Example:
severity_rating:critical AND disclosed_at:>=01-01-1970.
sort is latest_disclosable_activity_at, disclosed_at, total_awarded_amount,
or votes. Prefix with - for descending order. The API default is
-latest_disclosable_activity_at.

Inputs: sort, query, page_size, page_number. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: program listing/getting, report listing/getting, hacktivity search, scopes/exclusions/weaknesses, and financial tools (balance/earnings/payouts) are clearly separated. The report-intent trio (get_report_intent, list_report_intents, list_report_intent_attachments) also has clear boundaries via verb and object. No two tools appear to do the same thing.

    Naming Consistency5/5

    Every tool follows a strict verb_noun pattern (list_programs, get_program, list_my_reports, get_balance, search_hacktivity, etc.) with snake_case throughout. No camelCase or vague single-word verbs are mixed in.

    Tool Count5/5

    15 tools is within the well-scoped range and each maps to a distinct HackerOne resource family. No redundant or filler tools inflate the count.

    Completeness3/5

    Read coverage is strong (programs, reports, scopes, earnings, payouts, hacktivity), but the report-intent surface offers get/list/attachments with no create, update, submit, or delete, which is a notable lifecycle gap. There is also no way to submit or mutate reports, leaving several dead ends for the draft workflow the tools imply.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Read-only MCP server for Akamai CDN that enables searching properties, browsing EdgeWorker code, querying DNS zones, inspecting network lists, and translating error codes via natural language.
      16
      79 PyPI
      1
      MIT
    • F
      license
      A
      quality
      D
      maintenance
      A local, read-only MCP server that connects your HackerOne researcher account to Claude Desktop and Claude Code, helping you find targets, analyze program scopes, review reports and earnings, and draft bug reports.
      17
      4
      -
    • A
      license
      A
      quality
      D
      maintenance
      Read-only MCP server for the Action1 RMM REST API, enabling access to endpoints, missing updates, vulnerabilities, installed software, policies, automations, and reports.
      21
      Apache 2.0
    • F
      license
      B
      quality
      C
      maintenance
      Enables read-only interaction with HackerOne, providing tools for searching and analyzing reports, exploring programs and scope, accessing earnings, and retrieving public disclosures.
      25
      -