
hacker0x01/hackerone-graphql-mcp-server
Developer toolsMCP 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
- 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 branch1.x.x: Specific version releasespr-: 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
Option 1: Using the included script (recommended)
- Visit https://hackerone.com/settings/api_token/edit to generate an API key
- Run the token generation script:
./scripts/generate_token.shThis will prompt for your username and API key, then automatically encode and copy the token to your clipboard. - Use the resulting string as your TOKEN value
Option 2: Manual encoding
- Visit https://hackerone.com/settings/api_token/edit to generate an API key
- Encode as:
echo -n "username:api_key" | base64 - Use the resulting string as your TOKEN value
Example config in Flowise
- Go to an Agent node
- Go to tools
- Select custom MCP
- 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
-iflag is required to maintain standard input for the stdio transport - The
schema.graphqlin 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:
-
Create a new release in GitHub.
-
GitHub Actions will automatically:
- Build multi-architecture images (amd64, arm64)
- Push to Docker Hub with appropriate tags
- Update the
latesttag
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
-
Run MCP inspector:
npx @modelcontextprotocol/inspector -
Connect to the HackerOne MCP server from the web interface:
Command:
/usr/local/bin/dockerArguments:
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.
Install
docker run -i --rm \