Honeybadger
STDIOHoneybadger错误监控API的MCP服务器
Honeybadger错误监控API的MCP服务器
An MCP (Model Context Protocol) server for Honeybadger, providing structured access to Honeybadger's API through the MCP protocol.
First, pull the Docker image:
docker pull ghcr.io/honeybadger-io/honeybadger-mcp-server:latest
Then, configure your MCP client(s). You can find your personal auth token under the "Authentication" tab in your Honeybadger User settings.
Put this config in ~/.cursor/mcp.json for Cursor, or ~/.codeium/windsurf/mcp_config.json for Windsurf. See Anthropic's MCP quickstart guide for how to locate your claude_desktop_config.json for Claude Desktop:
{ "mcpServers": { "honeybadger": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "HONEYBADGER_PERSONAL_AUTH_TOKEN", "ghcr.io/honeybadger-io/honeybadger-mcp-server" ], "env": { "HONEYBADGER_PERSONAL_AUTH_TOKEN": "your personal auth token" } } } }
Run this command to configure Claude Code:
claude mcp add honeybadger -- docker run -i --rm -e HONEYBADGER_PERSONAL_AUTH_TOKEN="HONEYBADGER_PERSONAL_AUTH_TOKEN" ghcr.io/honeybadger-io/honeybadger-mcp-server:latest
Add the following to your user settings or .vscode/mcp.json in your workspace:
{ "mcp": { "inputs": [ { "type": "promptString", "id": "honeybadger_auth_token", "description": "Honeybadger Personal Auth Token", "password": true } ], "servers": { "honeybadger": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "HONEYBADGER_PERSONAL_AUTH_TOKEN", "ghcr.io/honeybadger-io/honeybadger-mcp-server" ], "env": { "HONEYBADGER_PERSONAL_AUTH_TOKEN": "${input:honeybadger_auth_token}" } } } } }
See Use MCP servers in VS Code for more info.
Add the following to your Zed settings file in ~/.config/zed/settings.json:
{ "context_servers": { "honeybadger": { "command": { "path": "docker", "args": [ "run", "-i", "--rm", "-e", "HONEYBADGER_PERSONAL_AUTH_TOKEN", "ghcr.io/honeybadger-io/honeybadger-mcp-server" ], "env": { "HONEYBADGER_PERSONAL_AUTH_TOKEN": "your personal auth token" } }, "settings": {} } } }
To build the Docker image and run it locally:
git clone [email protected]:honeybadger-io/honeybadger-mcp-server.git cd honeybadger-mcp-server docker build -t honeybadger-mcp-server .
Then you can replace "ghcr.io/honeybadger-io/honeybadger-mcp-server" with "honeybadger-mcp-server" in any of the configs above. Or you can run the image directly:
docker run -i --rm -e HONEYBADGER_PERSONAL_AUTH_TOKEN honeybadger-mcp-server
If you don't have Docker, you can build the server from source:
git clone [email protected]:honeybadger-io/honeybadger-mcp-server.git cd honeybadger-mcp-server go build -o honeybadger-mcp-server ./cmd/honeybadger-mcp-server
And then configure your MCP client to run the server directly:
{ "mcpServers": { "honeybadger": { "command": "/path/to/honeybadger-mcp-server", "args": ["stdio"], "env": { "HONEYBADGER_PERSONAL_AUTH_TOKEN": "your personal auth token" } } } }
| Environment Variable | Required | Default | Description | 
|---|---|---|---|
HONEYBADGER_PERSONAL_AUTH_TOKEN | yes | — | API token for Honeybadger | 
HONEYBADGER_READ_ONLY | no | true | Run in read-only mode, excluding write operations like delete_project | 
LOG_LEVEL | no | info | Log verbosity (debug, info, warn, error) | 
HONEYBADGER_API_URL | no | https://app.honeybadger.io | Override the base URL for Honeybadger's API | 
Important: The server runs in read-only mode by default for security. This means only read operations (like list_projects, get_project, list_faults) are available. Write operations such as create_project, update_project, and delete_project are excluded to prevent accidental modifications.
To enable write operations, explicitly set HONEYBADGER_READ_ONLY=false. Use with caution as this allows destructive operations like deleting projects.
When running the server via the CLI you can configure the server with command-line flags:
# Run with custom configuration ./honeybadger-mcp-server stdio --auth-token your_token --log-level debug --api-url https://custom.honeybadger.io # Enable write operations (use with caution) ./honeybadger-mcp-server stdio --auth-token your_token --read-only=false # Get help ./honeybadger-mcp-server stdio --help
The --read-only flag defaults to true. Set --read-only=false to enable write operations like create_project, update_project, and delete_project.
You can also use a configuration file at ~/.honeybadger-mcp-server.yaml:
auth-token: "your_token_here" log-level: "info" api-url: "https://app.honeybadger.io" read-only: true
list_projects - List all Honeybadger projects
account_id : Account ID to filter projects by specific account (string, optional)get_project - Get detailed information for a single project by ID
id : The ID of the project to retrieve (number, required)create_project - Create a new Honeybadger project (requires read-only=false)
account_id : The account ID to associate the project with (string, required)name : The name of the new project (string, required)resolve_errors_on_deploy : Whether all unresolved faults should be marked as resolved when a deploy is recorded (boolean, optional)disable_public_links : Whether to allow fault details to be publicly shareable via a button on the fault detail page (boolean, optional)user_url : A URL format like 'http://example.com/admin/users/[user_id]' that will be displayed on the fault detail page (string, optional)source_url : A URL format like 'https://gitlab.com/username/reponame/blob/[sha]/[file]#L[line]' that is used to link lines in the backtrace to your git browser (string, optional)purge_days : The number of days to retain data (up to the max number of days available to your subscription plan) (number, optional)user_search_field : A field such as 'context.user_email' that you provide in your error context (string, optional)update_project - Update an existing Honeybadger project (requires read-only=false)
id : The ID of the project to update (number, required)name : The name of the project (string, optional)resolve_errors_on_deploy : Whether all unresolved faults should be marked as resolved when a deploy is recorded (boolean, optional)disable_public_links : Whether to allow fault details to be publicly shareable via a button on the fault detail page (boolean, optional)user_url : A URL format like 'http://example.com/admin/users/[user_id]' that will be displayed on the fault detail page (string, optional)source_url : A URL format like 'https://gitlab.com/username/reponame/blob/[sha]/[file]#L[line]' that is used to link lines in the backtrace to your git browser (string, optional)purge_days : The number of days to retain data (up to the max number of days available to your subscription plan) (number, optional)user_search_field : A field such as 'context.user_email' that you provide in your error context (string, optional)delete_project - Delete a Honeybadger project (requires read-only=false)
id : The ID of the project to delete (number, required)get_project_occurrence_counts - Get occurrence counts for all projects or a specific project
project_id : Project ID to get occurrence counts for a specific project (number, optional)period : Time period for grouping data: 'hour', 'day', 'week', or 'month'. Defaults to 'hour' (string, optional)environment : Environment name to filter results (string, optional)get_project_integrations - Get a list of integrations (channels) for a Honeybadger project
project_id : The ID of the project to get integrations for (number, required)get_project_report - Get report data for a Honeybadger project
project_id : The ID of the project to get report data for (number, required)report : The type of report to get: 'notices_by_class', 'notices_by_location', 'notices_by_user', or 'notices_per_day' (string, required)start : Start date/time in ISO 8601 format for the beginning of the reporting period (string, optional)stop : Stop date/time in ISO 8601 format for the end of the reporting period (string, optional)environment : Environment name to filter results (string, optional)list_faults - Get a list of faults for a project with optional filtering and ordering
project_id : The ID of the project to get faults for (number, required)q : Search string to filter faults (string, optional)created_after : Filter faults created after this timestamp (string, optional)occurred_after : Filter faults that occurred after this timestamp (string, optional)occurred_before : Filter faults that occurred before this timestamp (string, optional)limit : Maximum number of faults to return (max 25) (number, optional)order : Order results by 'recent' or 'frequent' (string, optional)page : Page number for pagination (number, optional)get_fault - Get detailed information for a specific fault in a project
project_id : The ID of the project containing the fault (number, required)fault_id : The ID of the fault to retrieve (number, required)get_fault_counts - Get fault count statistics for a project with optional filtering
project_id : The ID of the project to get fault counts for (number, required)q : Search string to filter faults (string, optional)created_after : Filter faults created after this timestamp (string, optional)occurred_after : Filter faults that occurred after this timestamp (string, optional)occurred_before : Filter faults that occurred before this timestamp (string, optional)list_fault_notices - Get a list of notices (individual error events) for a specific fault
project_id : The ID of the project containing the fault (number, required)fault_id : The ID of the fault to get notices for (number, required)created_after : Filter notices created after this timestamp (string, optional)created_before : Filter notices created before this timestamp (string, optional)limit : Maximum number of notices to return (max 25) (number, optional)list_fault_affected_users - Get a list of users who were affected by a specific fault with occurrence counts
project_id : The ID of the project containing the fault (number, required)fault_id : The ID of the fault to get affected users for (number, required)q : Search string to filter affected users (string, optional)Run the tests:
go test ./...
git checkout -b feature/amazing-feature)git commit -m 'Add my amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.