HH

hacker0x01/hackerone-graphql-mcp-server

Developer tools
19 stars 9 forks Quality 62 Trend 22MIT

MCP server for the HackerOne GraphQL API

Overview

A Docker image that provides access to HackerOne's GraphQL API through the Model Context Protocol (MCP). : Currently only stdio transport is supported. Please file an issue if you require other transports. : This image supports both Intel/AMD (amd64) and Apple Silicon (arm64) architectures. : This project is a thin wrapper around the upstream Apollo MCP Server, which exposes GraphQL operations as MCP tools. - : Latest stable release (only updated on version releases) - : Development builds from main branch - : Specific version releases - : Pull request builds 1. Visit https://hackerone.com/settings/api_token/edit to generate an API key 2. Run the token generation script: ./scripts/generate_token.sh This will prompt for your username and API key, then automatically encode and copy the token to your clipboard. 3. Use the resulting string as your TOKEN value 1. Visit https://hackerone.com/settings/api_token/edit to generate an API key 2.

README

HackerOne GraphQL MCP Server

A Docker image that provides access to HackerOne’s GraphQL API through the Model Context Protocol (MCP).

Supported MCP transport types: Currently only stdio transport is supported. Please file an issue if you require other transports.

Multi-Architecture Support: This image supports both Intel/AMD (amd64) and Apple Silicon (arm64) architectures.

Built on Apollo MCP Server: This project is a thin wrapper around the upstream Apollo MCP Server, which exposes GraphQL operations as MCP tools.

Quick Start

  1. Run with an MCP client:
    docker run -i --rm \
      -e ENDPOINT="https://hackerone.com/graphql" \
      -e TOKEN="" \
      -e MUTATION_MODE="none" \
      hackertwo/hackerone-graphql-mcp-server:1.0.7
    

Docker Image Tags

  • latest: Latest stable release (only updated on version releases)
  • dev-main: Development builds from main branch
  • 1.x.x: Specific version releases
  • pr-: Pull request builds

Environment Variables

Variable Description Default
ENDPOINT GraphQL endpoint URL https://hackerone.com/graphql
TOKEN Base64 encoded API token in format: base64(username:api_key) -
MUTATION_MODE Controls which mutations are allowed:• none: No mutations allowed• explicit: Only explicitly defined mutations allowed• all: All mutations allowed none
DISABLE_TYPE_DESCRIPTION If set to true, tools will have no type descriptions (e.g. “The returned value has type …”) false
DISABLE_SCHEMA_DESCRIPTION If set to true, tools will have no schema description false

Generating an API Token

  1. Visit https://hackerone.com/settings/api_token/edit to generate an API key
  2. Run the token generation script: ./scripts/generate_token.sh This will prompt for your username and API key, then automatically encode and copy the token to your clipboard.
  3. Use the resulting string as your TOKEN value

Option 2: Manual encoding

  1. Visit https://hackerone.com/settings/api_token/edit to generate an API key
  2. Encode as: echo -n "username:api_key" | base64
  3. Use the resulting string as your TOKEN value

Example config in Flowise

  1. Go to an Agent node
  2. Go to tools
  3. Select custom MCP
  4. Put the following in the MCP parameters:
{
    "command": "/usr/local/bin/docker",
    "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ENDPOINT=https://hackerone.com/graphql",
        "-e",
        "TOKEN=",
        "-e",
        "MUTATION_MODE=none",
        "hackertwo/hackerone-graphql-mcp-server:1.0.7"
    ]
}

Example config in editor (Zed)

{
  "context_servers": {
    "hackerone-graphql-mcp-server": {
      "source": "custom",
      "command": "/usr/local/bin/docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ENDPOINT=https://hackerone.com/graphql",
        "-e",
        "TOKEN=",
        "-e",
        "MUTATION_MODE=none",
        "hackertwo/hackerone-graphql-mcp-server:1.0.7"
      ]
    }
  }
}

Notes

  • The Docker container is designed to be piped into an MCP-compatible client
  • Running the container directly will result in an error as it expects an MCP client connection
  • The -i flag is required to maintain standard input for the stdio transport
  • The schema.graphql in this repository may become outdated over time, you can download the latest one from HackerOne at https://hackerone.com/schema.graphql

Development

Creating a Release

To create a new release:

  1. Create a new release in GitHub.

  2. GitHub Actions will automatically:

    • Build multi-architecture images (amd64, arm64)
    • Push to Docker Hub with appropriate tags
    • Update the latest tag

Manual Build (Local Development)

For local development and testing:

# Setup buildx
docker buildx create --name multiarch --driver docker-container --use
docker buildx inspect --bootstrap

# Build and push the image
bin/build

# Clean up
docker buildx rm multiarch

Debugging

  1. Run MCP inspector:

    npx @modelcontextprotocol/inspector
    
  2. Connect to the HackerOne MCP server from the web interface:

    Command:

    /usr/local/bin/docker
    

    Arguments:

    run -i --rm -e ENDPOINT=http://host.docker.internal:3000/graphql -e TOKEN= -e ALLOW_MUTATIONS=all hackertwo/hackerone-graphql-mcp-server:1.0.5
    

Issues & Contributions

  • HackerOne-specific behavior, configuration, token handling, schema quirks, mutation allow-listing, etc.: open an issue in this repository.
  • Generic MCP behavior, transports, protocol details, or GraphQL tool exposure mechanics: consider checking/filing upstream in apollographql/apollo-mcp-server.

Licensing Notes

This project depends on Apollo MCP Server, which is licensed under the MIT License.
Your use of this image includes use of Apollo MCP Server under its license; please review the upstream LICENSE.

View the full README on GitHub

Install

docker run -i --rm \
New to MCP? Start with the mcpskill.org guide →