Honeybadger について
Honeybadger MCP Serverは、エラー、ログ、監視データを調べるエージェントやMCPクライアントに、Honeybadger APIへの構造化アクセスを提供します。既定では読み取り専用で、ホスト型リモートサーバーへの接続とDockerまたはソースからのローカル実行に対応します。
主な機能
- 01プロジェクト一覧と詳細の取得
- 02エラー、イベント、Insightsのクエリ
- 03アラーム、ダッシュボード、監視データへのアクセス
- 04既定で読み取り専用
- 05ホスト型リモートまたはローカルで利用
活用シーン
- 01プロジェクトのエラーやイベントの調査
- 02BadgerQLによる本番データのクエリ
- 03エージェントからHoneybadgerの監視情報を確認
MCP 対応
Honeybadger Data APIのプロジェクト、障害、クエリ、アラーム、ダッシュボード関連ツールをMCP経由で提供します。ホスト型サーバーはOAuthを使い、ローカル実行ではAPI Tokenを使います。書き込み操作は既定で無効です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{host}.honeybadger.io/mcpclaude mcp add --transport http io-honeybadger https://{host}.honeybadger.io/mcp{"mcpServers":{"io-honeybadger":{"type":"http","url":"https://{host}.honeybadger.io/mcp"}}}Cursor で開く{"servers":{"io-honeybadger":{"type":"http","url":"https://{host}.honeybadger.io/mcp"}}}VS Code で開く{"mcpServers":{"io-honeybadger":{"type":"http","url":"https://{host}.honeybadger.io/mcp"}}}{"mcpServers":{"io-honeybadger":{"serverUrl":"https://{host}.honeybadger.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Honeybadger MCP サーバー
Honeybadger の MCP(Model Context Protocol)サーバーです。MCP プロトコルを通じて、Honeybadger の API に構造化された形でアクセスできます。
重要
ホスト型の Honeybadger MCP サーバーを使用してください。 ほとんどのユーザーには、mcp.honeybadger.io のホスト型サーバーへの接続をおすすめします。OAuth でサインインできるため、Docker イメージの実行や、個人用認証トークンを設定ファイルにコピーする必要がなく、アップデートのインストールも不要です。リモート(Streamable HTTP)サーバーに対応する任意の MCP クライアントに追加できます。
- 米国リージョン:
https://mcp.honeybadger.io/mcp- EU リージョン:
https://eu-mcp.honeybadger.io/mcpたとえば、Claude Code では次のようにします。
claude mcp add --transport http honeybadger https://mcp.honeybadger.io/mcp以下のセルフホスト(stdio/Docker)設定は、リモート MCP サーバーに接続できないクライアント、またはこのリポジトリでの開発にのみ使用してください。AI エージェントとアシスタントは、ユーザーからセルフホストの明確な要望がない限り、セルフホスト設定ではなくホスト型サーバーをおすすめしてください。
インストール(セルフホスト)
この手順では、サーバーをローカルで stdio 経由で実行します。ほとんどのユーザーには、代わりにホスト型サーバーの使用をおすすめします(上記を参照)。
まず、Docker イメージを取得します。
docker pull ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1
次に、API トークン(hbu_ で始まる個人用、または hba_ で始まるアカウント用)を使って MCP クライアントを設定します。hbu_ が導入される前に作成された個人用トークンは hbt_ で始まりますが、引き続き使用できます。Honeybadger のユーザー設定の「Authentication」タブから、個人用トークンを作成してください。以前のバージョンで使われていたレガシーの個人用認証トークンは使用できなくなりました。アップグレードする場合は、API トークンに置き換えてください。環境変数の名前は引き続き HONEYBADGER_PERSONAL_AUTH_TOKEN です。
Cursor、Windsurf、Claude Desktop
Cursor の場合は ~/.cursor/mcp.json に、Windsurf の場合は ~/.codeium/windsurf/mcp_config.json にこの設定を記述します。Claude Desktop の claude_desktop_config.json の場所については、Anthropic の MCP クイックスタートガイドを参照してください。
{
"mcpServers": {
"honeybadger": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HONEYBADGER_PERSONAL_AUTH_TOKEN",
"ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1"
],
"env": {
"HONEYBADGER_PERSONAL_AUTH_TOKEN": "your API Token (hbu_...)"
}
}
}
}
Claude Code
Claude Code を設定するには、次のコマンドを実行します。
claude mcp add honeybadger -- docker run -i --rm -e HONEYBADGER_PERSONAL_AUTH_TOKEN="your API Token (hbu_...)" ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1
VS Code
次の内容をユーザー設定、またはワークスペース内の .vscode/mcp.json に追加します。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "honeybadger_auth_token",
"description": "Honeybadger API Token (hbu_...)",
"password": true
}
],
"servers": {
"honeybadger": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HONEYBADGER_PERSONAL_AUTH_TOKEN",
"ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1"
],
"env": {
"HONEYBADGER_PERSONAL_AUTH_TOKEN": "${input:honeybadger_auth_token}"
}
}
}
}
}
詳しくは、VS Code で MCP サーバーを使用するを参照してください。
Zed
次の内容を ~/.config/zed/settings.json の Zed 設定ファイルに追加します。
{
"context_servers": {
"honeybadger": {
"command": {
"path": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HONEYBADGER_PERSONAL_AUTH_TOKEN",
"ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1"
],
"env": {
"HONEYBADGER_PERSONAL_AUTH_TOKEN": "your API Token (hbu_...)"
}
},
"settings": {}
}
}
}
Docker をローカルでビルドする
Docker イメージをビルドしてローカルで実行するには、次のようにします。
git clone [email protected]:honeybadger-io/honeybadger-mcp-server.git
cd honeybadger-mcp-server
docker build -t honeybadger-mcp-server .
その後、上記の各設定で「ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1」を「honeybadger-mcp-server」に置き換えます。または、イメージを直接実行することもできます。
docker run -i --rm -e HONEYBADGER_PERSONAL_AUTH_TOKEN honeybadger-mcp-server
ソースからビルドする
Docker がない場合は、ソースからサーバーをビルドできます。
git clone [email protected]:honeybadger-io/honeybadger-mcp-server.git
cd honeybadger-mcp-server
go build -o honeybadger-mcp-server ./cmd/honeybadger-mcp-server
その後、サーバーを直接実行するよう MCP クライアントを設定します。
{
"mcpServers": {
"honeybadger": {
"command": "/path/to/honeybadger-mcp-server",
"args": ["stdio"],
"env": {
"HONEYBADGER_PERSONAL_AUTH_TOKEN": "your API Token (hbu_...)"
}
}
}
}
設定
環境変数
| 環境変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
HONEYBADGER_PERSONAL_AUTH_TOKEN | はい | — | Data API の API トークン |
HONEYBADGER_READ_ONLY | いいえ | true | 読み取り専用モードで実行します。delete_project などの書き込み操作は除外されます |
LOG_LEVEL | いいえ | info | ログの詳細度(debug、info、warn、error) |
HONEYBADGER_API_URL | いいえ | https://app.honeybadger.io | Honeybadger の API のベース URL を上書きします |
HONEYBADGER_INSTRUCTIONS_URL | いいえ | https://docs.honeybadger.io/resources/llms/instructions | LLM リファレンストピックの取得元となるベース URL を上書きします |
MCP_CONFIRM_SECRET | HTTP モードのみ | — | 削除確認トークンに署名します。32 文字以上で、ロードバランサー配下のすべてのインスタンスで同一である必要があります。これが設定されていない場合、サーバーは HTTP モードで起動しません。stdio モードでは使用されません |
重要:セキュリティ上、サーバーはデフォルトで読み取り専用モードで実行されます。つまり、読み取り操作(list_projects、get_project、list_faults など)のみ利用できます。誤操作による変更を防ぐため、create_project、update_project、delete_project などの書き込み操作は除外されています。
書き込み操作を有効にするには、HONEYBADGER_READ_ONLY=false を明示的に設定してください。プロジェクトの削除などの破壊的な操作が可能になるため、注意して使用してください。
EU リージョン
サーバーはデフォルトで Honeybadger の米国 API(https://app.honeybadger.io)を使用します。アカウントがEU リージョンにある場合は、HONEYBADGER_API_URL に https://eu-app.honeybadger.io を設定し、EU のユーザー設定で取得した API トークンを使用してください。米国のトークンでは EU リージョンに対して認証できず、その逆も同様です。
Claude Code での例:
claude mcp add honeybadger-eu -- docker run -i --rm -e HONEYBADGER_PERSONAL_AUTH_TOKEN="your_eu_token" -e HONEYBADGER_API_URL="https://eu-app.honeybadger.io" ghcr.io/honeybadger-io/honeybadger-mcp-server:1.5.1
両方のリージョンを同時に使用するには、それぞれ固有の名前(たとえば honeybadger-us と honeybadger-eu)を付けた 2 つのサーバーを実行し、それぞれに専用のトークンと API URL を設定してください。
コマンドラインオプション
CLI からサーバーを実行する場合、コマンドラインフラグでサーバーを設定できます。
# 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
--read-only フラグのデフォルト値は true です。--read-only=false を設定すると、create_project、update_project、delete_project などの書き込み操作が有効になります。
設定ファイル
~/.honeybadger-mcp-server.yaml に設定ファイルを置いて使用することもできます。
auth-token: "your_token_here"
log-level: "info"
api-url: "https://app.honeybadger.io"
read-only: true
v3 Data API へのアップグレード
このバージョンでは、Honeybadger の v3 Data API を使用します。アップグレードする場合:
-
認証情報:API トークン(
hbu_またはhba_。以前の個人用hbt_トークンも引き続き利用できます)を使用してください。従来の個人用認証トークンは使用できなくなりました。インストールを参照してください。 -
get_project_reportは削除されました:v3 にはプロジェクトレポートがありません。query_insightsを使って同じ内容を確認してください。すべてのエラー発生は、プロジェクトの内部ストリームにおけるnoticeイベントです。ts(例:P7D)で期間を指定し、| filter environment::str == "production"を追加すると、環境を絞り込めます:以前のレポート BadgerQL notices_by_classfilter event_type::str == "notice" | stats count() as notices by klass::str as klass | sort notices descnotices_by_userfilter event_type::str == "notice" | stats count() as notices by user::str as user | sort notices descnotices_per_dayfilter event_type::str == "notice" | stats count() as notices by bin(1d) as day | sort daynotices_by_locationNotice イベントにはコンポーネントやアクションがありません。最も近いグループ化方法は、バックトレースの先頭にあるファイルです: filter event_type::str == "notice" | stats count() as notices by file::str as file | sort notices desc -
v3 で処理できないパラメーターは拒否され、無視されません:
account_id(アカウントは認証情報から取得されます)、list_fault_noticesのcreated_after/created_before、list_streamsのquery、およびインテグレーションのfilter_events、filter_queries、all_sites、all_check_ins(現在はfilters、またsite_ids/check_in_idsに null を設定します)。
ツール
削除ツール(delete_project、delete_dashboard、delete_alarm、delete_check_in、delete_fault_comment、delete_integration、delete_ingestion_key、delete_site)は、2 回呼び出す必要があります。1 回目の呼び出しでは何も削除されず、削除対象のプレビューと confirm トークンが返されます。同じ引数とそのトークンを指定してツールを再度呼び出した場合にのみ削除が実行されます。トークンは 10 分後に期限切れとなり、同じリソースと呼び出し元に限り有効です。トークンは一度きりの使用ではありません。期限が切れるまでは、ユーザーがそのトークンの発行対象となった削除を拒否した場合でも有効です。
リファレンス
- get_reference - LLM 向けの Honeybadger リファレンスドキュメントを、重複しないトピック別に返します:
badgerql(クエリ言語)、queries(Insights クエリの基本)、charts(可視化ビュー、chart_config)、dashboards(ウィジェットのスキーマ、グリッドレイアウト)、alarms(trigger_configスキーマ、状態、パターン)、errors(fault/notice モデル、エラー検索構文)。トピックはドキュメントサイトから取得され、メモリにキャッシュされます。ツールの説明には、必要なトピックが記載されています。topics:取得するリファレンストピック。例:["badgerql", "charts"]。すべて取得するには["all"]を指定します。省略するとトピックの一覧が返されます(文字列の配列、任意)
プロジェクト
-
list_projects - Honeybadger のすべてのプロジェクトを一覧表示します
name:プロジェクト名の完全一致。このプロジェクトのみを返します(文字列、任意)
-
get_project - ID で指定した単一のプロジェクトの詳細情報を取得します
id:取得するプロジェクトの ID(文字列、必須)
-
create_project - Honeybadger プロジェクトを新規作成します。(
read-only=falseが必要です)name:新しいプロジェクトの名前(文字列、必須)resolve_errors_on_deploy:デプロイが記録されたときに、未解決の障害をすべて解決済みとしてマークするかどうか(ブール値、任意)disable_public_links:障害の詳細ページにあるボタンから、障害の詳細を公開共有できるようにするかどうか(ブール値、任意)user_url:障害の詳細ページに表示される、「http://example.com/admin/users/[user_id]」のような URL 形式(文字列、任意)source_url:バックトレース内の行から Git ブラウザーにリンクするために使う、「https://gitlab.com/username/reponame/blob/[sha]/[file]#L[line]」のような URL 形式(文字列、任意)purge_days:データを保持する日数(サブスクリプションプランで利用可能な最大日数まで)(数値、任意)user_search_field:エラーコンテキストに指定する、「context.user_email」のようなフィールド(文字列、任意)
-
update_project - 既存の Honeybadger プロジェクトを更新します。(
read-only=falseが必要です)id:更新するプロジェクトの ID(文字列、必須)name:プロジェクトの名前(文字列、任意)resolve_errors_on_deploy:デプロイが記録されたときに、未解決の障害をすべて解決済みとしてマークするかどうか(ブール値、任意)disable_public_links:障害の詳細ページにあるボタンから、障害の詳細を公開共有できるようにするかどうか(ブール値、任意)user_url:障害の詳細ページに表示される、「http://example.com/admin/users/[user_id]」のような URL 形式(文字列、任意)source_url:バックトレース内の行から Git ブラウザーにリンクするために使う、「https://gitlab.com/username/reponame/blob/[sha]/[file]#L[line]」のような URL 形式(文字列、任意)purge_days:データを保持する日数(サブスクリプションプランで利用可能な最大日数まで)(数値、任意)user_search_field:エラーコンテキストに指定する、「context.user_email」のようなフィールド(文字列、任意)
-
delete_project - Honeybadger プロジェクトを削除します。(
read-only=falseが必要です)id:削除するプロジェクトの ID(文字列、必須)confirm:最初の呼び出しで返されたプレビューに含まれる確認トークン(文字列、任意)
-
get_project_occurrence_counts - すべてのプロジェクト、または特定のプロジェクトの発生回数を取得します。
project_id:特定のプロジェクトの発生回数を取得するためのプロジェクト ID(文字列、任意)period:集計期間:「hour」(1 分単位のバケット 61 個)、「day」(1 時間単位 25 個)、「week」(1 日単位 8 個)、または「month」(1 日単位 31 個)。デフォルトは「hour」です(文字列、任意)environment:結果を絞り込む環境名(文字列、任意)
-
list_ingestion_keys - プロジェクトの Ingestion Key を一覧表示します。Ingestion Key は、アプリが Honeybadger にエラーやイベントを送信するために使う
hbp_キーで、クライアントの設定ではingestion_key(旧クライアントではapi_key)として設定します。Ingestion Key は秘密情報ではなく、Data API の呼び出しには使えません。Data API の呼び出しには API Token が必要です。project_id:Ingestion Key を一覧表示するプロジェクトの ID(文字列、必須)
-
create_ingestion_key - プロジェクトの新しい Ingestion Key を作成します。キーはレスポンスで返されます。(
read-only=falseが必要です)project_id:Ingestion Key を作成するプロジェクトの ID(文字列、必須)label:キーの人が読める名前(文字列、任意)
-
update_ingestion_key - Ingestion Key のラベルを更新します。(
read-only=falseが必要です)project_id:Ingestion Key が属するプロジェクトの ID(文字列、必須)ingestion_key_id:更新する Ingestion Key の ID(文字列、必須)label:キーの新しいラベル(文字列、必須)
-
delete_ingestion_key - Ingestion Key を削除します。このキーを使って送信するアプリは拒否されます (requires
read-only=false)project_id: Ingestion Key が属するプロジェクトの ID(文字列、必須)ingestion_key_id: 削除する Ingestion Key の ID(文字列、必須)confirm: 最初の呼び出しで返されたプレビューに含まれる確認トークン(文字列、任意)
-
get_project_integrations - Honeybadger プロジェクトのインテグレーション(チャネル)の一覧を取得します
project_id: インテグレーションを取得するプロジェクトの ID(文字列、必須)
-
get_integration - 単一の通知インテグレーションを取得します
project_id: インテグレーションが属するプロジェクトの ID(文字列、必須)integration_id: インテグレーションの ID(文字列、必須)
-
create_integration - 通知インテグレーションを作成します (requires
read-only=false)project_id: インテグレーションを作成するプロジェクトの ID(文字列、必須)type: インテグレーションの種類。WebHook、Email、PagerDutyV2、Slackなどがあります。OAuth タイプは未接続の状態で開始します。ユーザーは結果のlinks.webから接続でき、最初から有効にすることもできます(文字列、必須)config: タイプ固有の設定を格納する JSON オブジェクト。たとえば、WebHookの場合は{"url": "https://example.com/hook"}です(文字列、任意)active、events、rate、threshold、notification_limit、site_ids、check_in_ids、alarm_alert_ids、alarm_ok_ids、included_environments、excluded_environments、filters: すべてのタイプに共通する設定です。configの中ではなく、それぞれ独立したパラメーターとして指定します。filtersは{"event", "query"}オブジェクトの順序付きリストです(eventにはallを指定できます)。site_ids/check_in_idsには、後から追加されるものを含むすべてのサイトまたはチェックインを対象にする場合はnull(作成時のデフォルト)、対象がない場合は[]、またはリストを指定します(任意)
-
update_integration - 通知インテグレーションを更新します (requires
read-only=false)project_id、integration_id: 対象のインテグレーション(文字列、必須)configと共通設定はcreate_integrationと同様です。指定した項目のみが変更され、タイプは変更できません(任意)
-
delete_integration - 通知インテグレーションとそのチケットを削除します (requires
read-only=false)project_id、integration_id: 対象のインテグレーション(文字列、必須)confirm: 最初の呼び出しで返されたプレビューに含まれる確認トークン(文字列、任意)
-
list_faults - 任意のフィルタリングと並べ替えを指定して、プロジェクトの障害一覧を取得します。障害/通知モデルと
qの検索構文については、errorsのリファレンストピックを(get_reference経由で)取得してください。project_id: 障害を取得するプロジェクトの ID(文字列、必須)q: 障害を絞り込む検索文字列(文字列、任意)created_after: この日時より後に作成された障害に絞り込みます。RFC 3339 形式のタイムスタンプまたは日付(UTC 午前 0 時)を指定します(文字列、任意)occurred_after: この日時より後に発生した障害に絞り込みます。RFC 3339 形式のタイムスタンプまたは日付(UTC 午前 0 時)を指定します(文字列、任意)occurred_before: この日時より前に発生した障害に絞り込みます。RFC 3339 形式のタイムスタンプまたは日付(UTC 午前 0 時)を指定します(文字列、任意)limit: 返す障害の最大数(最大 25)(数値、任意)order: 結果の並べ替え順。recentまたはfrequentを指定します(文字列、任意)page: ページネーションのページ番号(数値、任意)
-
get_fault - プロジェクト内の特定の障害の詳細情報を取得します
project_id: 障害を含むプロジェクトの ID(文字列、必須)fault_id: 取得する障害の ID(文字列、必須)
-
update_fault - フォルトの解決済み、無視、担当者、またはデプロイ時の解決状態を更新します。指定したフィールドのみが変更されます。
project_id: フォルトを含むプロジェクトの ID(文字列、必須)fault_id: 更新するフォルトの ID(文字列、必須)resolved: フォルトが解決済みかどうか(ブール値、任意)ignored: フォルトが無視されているかどうか(ブール値、任意)assignee_id: フォルトを割り当てるプロジェクトメンバーの公開 ID。現在の担当者を解除する場合は null、変更しない場合は省略します(文字列または null、任意)resolve_on_deploy: 次回のデプロイ時にフォルトが自動的に解決されるよう設定します(ブール値、任意)
-
get_fault_counts - 任意のフィルタリングを使用して、プロジェクトのフォルト件数の統計情報を取得します。
qの検索構文については、errorsリファレンストピックを取得してください(get_reference経由)。project_id: フォルト件数を取得するプロジェクトの ID(文字列、必須)q: フォルトを絞り込む検索文字列(文字列、任意)created_after: この時刻より後に作成されたフォルトに絞り込みます。RFC 3339 のタイムスタンプ、または日付(UTC の午前 0 時)(文字列、任意)occurred_after: この時刻より後に発生したフォルトに絞り込みます。RFC 3339 のタイムスタンプ、または日付(UTC の午前 0 時)(文字列、任意)occurred_before: この時刻より前に発生したフォルトに絞り込みます。RFC 3339 のタイムスタンプ、または日付(UTC の午前 0 時)(文字列、任意)
-
list_fault_notices - 特定のフォルトに関する通知(個別のエラーイベント)の一覧を取得します
project_id: フォルトを含むプロジェクトの ID(文字列、必須)fault_id: 通知を取得するフォルトの ID(文字列、必須)before: 古い通知を取得するためのカーソル。前回のレスポンスに含まれるtime_series.oldest_cursorを指定します(文字列、任意)after: 新しい通知を取得するためのカーソル。前回のレスポンスに含まれるtime_series.newest_cursorを指定します(文字列、任意)limit: 取得する通知の最大数(最大 25)(数値、任意)
-
list_fault_affected_users - 特定のフォルトの影響を受けたユーザーの一覧を、発生回数とともに取得します。
qの有無にかかわらず、最大 500 人のユーザーが返されます。project_id: フォルトを含むプロジェクトの ID(文字列、必須)fault_id: 影響を受けたユーザーを取得するフォルトの ID(文字列、必須)q: 影響を受けたユーザーを絞り込む検索文字列(文字列、任意)
Fault コメント
-
list_fault_comments - Fault 上のすべてのコメントを新しい順に一覧表示します。
project_id: fault を含むプロジェクトの ID(文字列、必須)fault_id: fault の ID(文字列、必須)
-
get_fault_comment - ID を指定して fault 上のコメントを 1 件取得します。
project_id: fault を含むプロジェクトの ID(文字列、必須)fault_id: fault の ID(文字列、必須)comment_id: コメントの ID(文字列、必須)
-
create_fault_comment - fault にコメントを追加します。
project_id: fault を含むプロジェクトの ID(文字列、必須)fault_id: fault の ID(文字列、必須)body: 空白のみではないコメント本文(文字列、必須)
-
update_fault_comment - 既存の fault コメントの本文を置き換えます。保存されたコメントを返します。
project_id: fault を含むプロジェクトの ID(文字列、必須)fault_id: fault の ID(文字列、必須)comment_id: コメントの ID(文字列、必須)body: 空白のみではないコメント本文(文字列、必須)
-
delete_fault_comment - fault から既存のコメントを削除します。
project_id: fault を含むプロジェクトの ID(文字列、必須)fault_id: fault の ID(文字列、必須)comment_id: コメントの ID(文字列、必須)confirm: 最初の呼び出しで返されたプレビューの確認トークン(文字列、任意)
コメントの作成、更新、削除には書き込みアクセスが必要です(stdio モードでは --read-only=false、HTTP モードでは write スコープ)。アカウントスコープの API Token(hba_)を使用する場合、新しいコメントにはトークンの名前が投稿者として設定されます。コメントを編集できるのは投稿者のみのため、更新は access_denied で拒否されます。また、削除にはプロジェクトを管理する権限が必要です。
Insights
- query_insights - Insights データに対して BadgerQL クエリを実行します
project_id: Insights をクエリするプロジェクトの ID(文字列、必須)query: Insights データに対して実行する BadgerQL クエリ文字列(文字列、必須)ts: 時間範囲。「today」、「week」などのショートカット、または ISO 8601 期間(例:'PT3H')を指定します。デフォルトは PT3H です(文字列、任意)timezone: タイムスタンプの解釈に使用する IANA タイムゾーン識別子(例:'America/New_York')(文字列、任意)stream_ids: クエリ対象を特定の Insights ストリームに絞り込むためのストリーム ID のリストです。プロジェクトのストリーム ID を確認するにはlist_streamsを使用します。すべてのストリームをクエリする場合は省略してください(文字列の配列、任意)
Streams
- list_streams - プロジェクトの Insights データストリームを一覧表示します
project_id: ストリームを一覧表示するプロジェクトの ID(文字列、必須)
ダッシュボード
-
list_dashboards - プロジェクトのすべての Insights ダッシュボードを一覧表示します
project_id:ダッシュボードを一覧表示するプロジェクトの ID(文字列、必須)
-
get_dashboard - ID を指定して単一の Insights ダッシュボードを取得します
project_id:ダッシュボードが属するプロジェクトの ID(文字列、必須)dashboard_id:取得するダッシュボードの ID(文字列、必須)
-
create_dashboard - 新しい Insights ダッシュボードを作成します。(
read-only=falseが必要です)project_id:ダッシュボードを作成するプロジェクトの ID(文字列、必須)title:ダッシュボードのタイトル(文字列、必須)widgets:ウィジェットオブジェクトの JSON 配列です。完全なウィジェットスキーマと例については、dashboardsのリファレンストピックを参照してください。各ウィジェットにはtype(insights_vis、alarms、errors、deployments、checkins、uptime)が必要です。また、grid({x,y,w,h})、presentation({title, subtitle})、config(種類固有の設定)を指定することもできます(文字列、必須)default_ts:ダッシュボードのデフォルトの時間範囲です。ISO 8601 期間(例:P1D、PT3H)またはキーワード(today、yesterday、week、month)を指定します(文字列、任意)
-
update_dashboard - 既存の Insights ダッシュボードを更新します。(
read-only=falseが必要です)project_id:ダッシュボードが属するプロジェクトの ID(文字列、必須)dashboard_id:更新するダッシュボードの ID(文字列、必須)title:新しいタイトル(文字列、任意)widgets:ダッシュボードのウィジェットを置き換えるウィジェットオブジェクトの JSON 配列です。ID を維持するには、各ウィジェットのidを保持してください(文字列、任意)default_ts:ダッシュボードのデフォルトの時間範囲です。空文字列を指定すると設定が解除されます(文字列、任意)
指定したフィールドのみが変更されるため、名前を変更する場合は
titleのみ指定すれば十分です。 -
delete_dashboard - Insights ダッシュボードを削除します。(
read-only=falseが必要です)project_id:ダッシュボードが属するプロジェクトの ID(文字列、必須)dashboard_id:削除するダッシュボードの ID(文字列、必須)confirm:最初の呼び出しで返されたプレビューに含まれる確認トークン(文字列、任意)
アラーム
-
list_alarms - プロジェクトのすべての Insights アラームを一覧表示します
project_id: アラームを一覧表示するプロジェクトの ID(string、必須)
-
get_alarm - ID を指定して単一の Insights アラームを取得します
project_id: アラームが属するプロジェクトの ID(string、必須)alarm_id: 取得するアラームの ID(string、必須)
-
create_alarm - 新しい Insights アラームを作成します(
read-only=falseが必要です)。trigger_configのスキーマとクエリのガイドラインを確認するため、まずalarms、queries、badgerqlのリファレンストピックを(get_reference経由で)取得してください。project_id: アラームを作成するプロジェクトの ID(string、必須)name: アラームの名前(string、必須)query: アラームの BadgerQL クエリ。アラームシステムがクエリをラップし、結果を自動的にカウントします(string、必須)evaluation_period: アラームを評価する頻度(例:5m、1h、1d)。最小値は 1m です(string、必須)trigger_config: アラームをトリガーする条件を定義する JSON オブジェクト。例:{"type": "alert_result_count", "config": {"operator": "gt", "value": 10}}(string、必須)lookback_lag: データが到着するまで評価を遅らせる時間(例:1m、遅延なしの場合は 0s)(string、必須)description: アラームの説明(任意)(string、任意)stream_ids: クエリ対象のストリーム ID を1つ以上指定する JSON 配列。空の配列は拒否されます。省略すると、現在のすべてのストリームがクエリ対象になります(string、任意)
-
update_alarm - 既存の Insights アラームを更新します(
read-only=falseが必要です)。まずalarms、queries、badgerqlのリファレンストピックを(get_reference経由で)取得してください。project_id: アラームが属するプロジェクトの ID(string、必須)alarm_id: 更新するアラームの ID(string、必須)name: アラームの新しい名前(string、任意)description: 新しい説明。空文字列を指定すると説明が消去されます(string、任意)query: 新しい BadgerQL クエリ(string、任意)evaluation_period:5mや1hなどの簡潔な期間で指定する、新しい評価ウィンドウ(string、任意)lookback_lag:1mなどで指定する、新しいルックバック遅延(string、任意)stream_ids: 現在のセットを置き換えるストリーム ID の JSON 配列(1つ以上)。nullを指定すると、アラームの対象が現在のすべてのストリームにリセットされます(string、任意)trigger_config:create_alarmと同じ形式で、トリガー全体を置き換える JSON オブジェクト(string、任意)
1つ以上のフィールドを指定してください。
-
delete_alarm - Insights アラームを削除します(
read-only=falseが必要です)project_id: アラームが属するプロジェクトの ID(string、必須)alarm_id: 削除するアラームの ID(string、必須)confirm: 最初の呼び出しで返されるプレビューに含まれる確認トークン(string、任意)
-
get_alarm_history - Insights アラームのトリガー履歴を取得します
project_id: アラームが属するプロジェクトの ID(string、必須)alarm_id: 履歴を取得するアラームの ID(string、必須)page: 1から始まるページ番号(デフォルト:1)。各ページには25件のエントリが含まれます。links.nextが null でない場合、続きがあります(number、任意)
チェックイン
-
list_check_ins - プロジェクトのチェックイン(cron/スケジュールタスクの監視)を一覧表示します。ページネーションに従って、すべてのチェックインを返します。
project_id: チェックインを一覧表示するプロジェクトの ID(文字列、必須)
-
get_check_in - ID を指定して単一のチェックインを取得します
project_id: チェックインが属するプロジェクトの ID(文字列、必須)check_in_id: 取得するチェックインの ID(文字列、必須)
-
create_check_in - プロジェクトに新しいチェックインを作成します。(
read-only=falseが必要です)project_id: チェックインを作成するプロジェクトの ID(文字列、必須)name: チェックインの名前。名前のないチェックインには ID が表示されます(文字列、任意)schedule_type: スケジュールの種類:simple(固定間隔でレポート)またはcron(cron スケジュールに従ってレポート)(文字列、必須)slug: チェックインのレポートに使用する、任意の URL フレンドリーな識別子(例:nightly-backups)(文字列、任意)report_period: チェックインのレポートが期待される間隔(例:1 day、30 minutes)。simple スケジュールでは必須です(文字列、任意)grace_period: アラートを発する前に、レポートの遅延を許容する時間(例:5 minutes)(文字列、任意)cron_schedule: チェックインのレポートが期待される時刻を定義する cron 式(例:0 5 * * *)。cron スケジュールでは必須です(文字列、任意)cron_timezone: cron スケジュールのタイムゾーン(デフォルトは UTC)(文字列、任意)
-
update_check_in - 既存のチェックインを更新します。指定したフィールドのみが変更され、一度設定したフィールドをクリアすることはできません。作成後にスケジュールの種類を変更することはできません (
read-only=falseが必要です)project_id: チェックインが属するプロジェクトの ID(文字列、必須)check_in_id: 更新するチェックインの ID(文字列、必須)name: チェックインの名前(文字列、任意)slug: チェックインのレポートに使用する URL フレンドリーな識別子(文字列、任意)report_period: チェックインのレポートが期待される間隔。simple スケジュールで使用されます(文字列、任意)grace_period: アラートを発する前に、レポートの遅延を許容する時間(文字列、任意)cron_schedule: チェックインのレポートが期待される時刻を定義する cron 式。cron スケジュールで使用されます(文字列、任意)cron_timezone: cron スケジュールのタイムゾーン(文字列、任意)
-
delete_check_in - チェックインとそのレポート履歴を削除します (
read-only=falseが必要です)project_id: チェックインが属するプロジェクトの ID(文字列、必須)check_in_id: 削除するチェックインの ID(文字列、必須)confirm: 最初の呼び出しで返されるプレビューに含まれる確認トークン(文字列、任意)
-
list_check_in_events - チェックインの履歴を新しい順に一覧表示します。レポートの送信、未着、または一時停止の各タイミングが含まれます
project_id: チェックインが属するプロジェクトの ID(文字列、必須)check_in_id: チェックインの ID(文字列、必須)limit: 返すイベントの最大数(最大 100)(数値、任意)created_before: 前のページに戻るには、前回の応答のnext_created_beforeを変更せずに指定します(数値、任意)
稼働監視サイト
-
list_sites - プロジェクトの稼働監視サイトと現在の状態を一覧表示します
project_id:プロジェクトの ID(string、必須)
-
get_site - 稼働監視サイトの URL、チェック設定、状態を取得します
project_id:プロジェクトの ID(string、必須)site_id:サイトの ID(UUID、string、必須)
-
create_site - URL の稼働監視を開始します(
read-only=falseが必要です)project_id:プロジェクトの ID(string、必須)url:チェックする URL(http:// または https:// で始まる URL)(string、必須)name、frequency(1、2、5、15 分)、locations(Virginia、Oregon、London、Frankfurt、Singapore。すべてのロケーションを指定する場合は[]またはnull)、match_type(success、exact、include、exclude、jmespath)、match、request_method、request_body、request_headers、timeout、outage_threshold、validate_ssl、active:チェック設定(任意)
-
update_site - 稼働監視サイトの設定を変更します。
nullを指定すると設定がデフォルトに戻ります(read-only=falseが必要です)project_id、site_id(必須)、およびcreate_siteが受け取るurlや設定のいずれか(任意)
-
delete_site - 稼働監視サイトの監視を停止し、削除します(
read-only=falseが必要です)project_id、site_id(string、必須)confirm:最初の呼び出しで返されたプレビューの確認トークン(string、任意)
-
list_site_outages - サイトの障害を新しい順に一覧表示します。失敗したチェックのステータスと理由も含まれます
project_id、site_id(string、必須)limit、created_before:ページネーション。list_check_in_eventsと同様です(number、任意)
-
list_uptime_checks - サイトの個々のチェックを新しい順に一覧表示します。ロケーション、レスポンスのステータス、所要時間が含まれます
project_id、site_id(string、必須)limit、created_before:ページネーション。list_check_in_eventsと同様です(number、任意)
デプロイ
-
list_deploys - プロジェクトのデプロイを新しい順に一覧表示します
project_id:プロジェクトの ID(string、必須)environment:この環境へのデプロイのみ(string、任意)local_username:このユーザー名で記録されたデプロイのみ(string、任意)limit:返すデプロイの最大数(最大 100)(number、任意)before/after:前回のレスポンスのtime_series.oldest_cursor/newest_cursorのカーソル(string、任意)
-
get_deploy - ID でデプロイを取得します。例:
deployedイベントや障害のlast_notice_deployに示されているデプロイproject_id:プロジェクトの ID(string、必須)deploy_id:デプロイの ID(string、必須)
ツール検索
- search_tools - Honeybadger の利用可能なツールを名前または説明で検索します。ツールを呼び出す前に、これを使ってツールを見つけてください。読み取り専用モードでは、読み取り専用ツールのみが返されます。
query:ツール名と説明を対象とする検索クエリ(string、必須)
開発
ローカル開発環境のセットアップ
このプロジェクトでは、API とのやり取りに api-go ライブラリを使用します。ローカルで開発するには、両方のリポジトリを同時に扱えるよう Go ワークスペースをセットアップする必要があります。
honeybadger-mcp-server と api-go の両方を含む親ディレクトリから:
# Initialize the workspace (if not already done)
go work init
go work use ./honeybadger-mcp-server
go work use ./api-go
# The go.work file is gitignored and won't be committed
これで両方のリポジトリを操作でき、api-go への変更は MCP サーバーで作業する際にすぐ反映されます。
依存関係の操作
ワークスペースを使用すると、Go は GitHub から取得する代わりにローカルの api-go ディレクトリを使用します。ただし、公開済みの api-go モジュールのチェックサムを go.sum に記載しておく必要があります。これは以下に対応するためです。
- ワークスペースを使用しない CI/CD ビルド
- このリポジトリのみをクローンする開発者
- Docker ビルド
GOWORK=off を使用する場合:
# Update dependencies and go.sum with published module checksums
GOWORK=off go mod tidy
# Install a specific version of a dependency
GOWORK=off go get github.com/some/[email protected]
# Test the build as if no workspace exists (simulates CI/end-user builds)
GOWORK=off go build ./...
GOWORK=off go test ./...
GOWORK=off フラグを指定すると、ワークスペースが一時的に無効になり、公開済みモジュールの正しいチェックサムが go.sum に記載されます。
テストの実行
go test ./...
貢献
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add my amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。