mcpField
H
Honeybadger

Honeybadger

リモート
github.com/honeybadger-ioクラウド・インフラ241 週間前に更新
リポジトリ

Honeybadger について

Honeybadger MCP Serverは、エラー、ログ、監視データを調べるエージェントやMCPクライアントに、Honeybadger APIへの構造化アクセスを提供します。既定では読み取り専用で、ホスト型リモートサーバーへの接続とDockerまたはソースからのローカル実行に対応します。

主な機能

  1. 01プロジェクト一覧と詳細の取得
  2. 02エラー、イベント、Insightsのクエリ
  3. 03アラーム、ダッシュボード、監視データへのアクセス
  4. 04既定で読み取り専用
  5. 05ホスト型リモートまたはローカルで利用

活用シーン

  1. 01プロジェクトのエラーやイベントの調査
  2. 02BadgerQLによる本番データのクエリ
  3. 03エージェントからHoneybadgerの監視情報を確認

MCP 対応

Honeybadger Data APIのプロジェクト、障害、クエリ、アラーム、ダッシュボード関連ツールをMCP経由で提供します。ホスト型サーバーはOAuthを使い、ローカル実行ではAPI Tokenを使います。書き込み操作は既定で無効です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://{host}.honeybadger.io/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、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.ioHoneybadger の API のベース URL を上書きします
HONEYBADGER_INSTRUCTIONS_URLいいえhttps://docs.honeybadger.io/resources/llms/instructionsLLM リファレンストピックの取得元となるベース URL を上書きします
MCP_CONFIRM_SECRETHTTP モードのみ—削除確認トークンに署名します。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 desc
    notices_by_userfilter event_type::str == "notice" | stats count() as notices by user::str as user | sort notices desc
    notices_per_dayfilter event_type::str == "notice" | stats count() as notices by bin(1d) as day | sort day
    notices_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 ./...

貢献

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add my amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。