Claude Media
ClaudeとBetter Stackを連携する方法 — 障害対応で会話から動かせる操作と線引き

ClaudeとBetter Stackを連携する方法 — 障害対応で会話から動かせる操作と線引き

Better StackのMCPサーバーをClaudeに追加し、インシデントの確認・対応、ログ検索、ステータスページ更新を会話で進める手順と、書き込み系ツールを絞る方法をまとめます。

Claude Better Stack連携でできること

Better StackのMCPサーバーをClaudeに追加すると、インシデントの確認から確認応答(acknowledge)、ログの検索、ステータスページの更新までを会話の中で進められます。接続先はhttps://mcp.betterstack.comのリモートHTTPサーバーで、ブラウザでBetter Stackにサインインして使います。

扱える範囲は、公式ドキュメントでは次の5分野に分かれています。

分野

Better Stack MCPが扱う5分野

  • Incidents

    インシデントの作成・一覧・タイムライン・コメント、確認応答、エスカレーション、解決、再オープン。オンコールの当番とエスカレーションポリシーの参照も含みます。

  • Monitoring と Status pages

    モニターとハートビートの一覧・可用性・応答時間・新規作成。ステータスページのセクション、リソース、報告の作成と更新。

  • Telemetry

    ログ・スパン・メトリクスへのClickHouse SQL実行、グラフ描画、ソース管理、ダッシュボードとチャートとアラートの管理。

  • Error tools

    エラー追跡アプリケーションとリリースの管理、エラーの状態変更、LinearやJiraのIssueとの紐付け、コメント。

  • Team management

    チームメンバーの一覧、招待、ロール変更、削除。

読み取りだけの分野ではありません。ダッシュボードの削除やメンバーの削除のような、戻せない操作も同じサーバーから呼べます。そのため、本記事は接続手順に加えて、どこまでを会話に任せ、どこから人が押すかの線引きまで扱います。

同じ障害対応でも、PagerDutyはインシデントとオンコールが中心です。比べたい場合はClaudeとPagerDutyの連携を、監視ツール全般の設計は監視ツール連携による障害対応ワークフローを参照してください。

接続前に確認すること

Better Stackは、Claudeのコネクタ一覧に最初から並ぶ種類ではなく、URLを指定して追加するカスタムコネクタとして接続します。確認する点は3つです。

  • プラン: リモートMCPのカスタムコネクタは、Claude・Cowork・Claude DesktopのFree・Pro・Max・Team・Enterpriseで使えます。Freeは1つまでです。
  • 追加できる人: TeamプランではOwnerとPrimary Ownerだけが追加できます。Enterpriseでは、それに加えてLibrariesの管理権限を含むカスタムロールの人が追加できます。
  • 接続元: Claudeからの接続はAnthropicのクラウドから発生します。Better Stackは公開インターネット上のサーバーなので、社内ネットワークの許可設定は要りません。

Team・Enterpriseでは、Ownerが追加したあと、各メンバーが自分でBetter Stackにサインインして接続します。各自の権限の範囲でしかデータが見えない点は、障害対応の権限設計にそのまま効きます。ただし、APIキーのような共有の認証情報で接続した場合は、使う全員がその認証情報の権限を持ちます。

Better Stack側には、OAuthとAPIトークンの2つの認証方式があります。OAuthでは、ブラウザでサインインするときの画面で、あとで触れるFull accessかどうかを選びます。APIトークンは、書き込み系ツールを使うならRead & write権限のトークンが必要です。

ClaudeアプリにBetter Stackを追加する

Claudeのweb・デスクトップ・モバイルアプリでは、Better Stackのドキュメントが次の手順を示しています。

手順

カスタムコネクタの追加手順

  1. 1

    コネクタの画面を開く

    ClaudeでCustomizeのConnectorsを開き、Add custom connectorを選びます。

  2. 2

    名前とURLを入れる

    名前にBetter Stack、URLにhttps://mcp.betterstack.comを入力してContinueを押します。

  3. 3

    認証を選ぶ

    AuthenticationでSign in nowを選び、Addを押します。

  4. 4

    Better Stackにサインインする

    表示される画面でBetter Stackにサインインします。

Team・Enterpriseでは、OwnerがOrganization settingsのConnectorsから、Add、Custom、Webの順に進んで同じ内容を登録します。メンバー側はCustomizeのConnectorsで、Ownerが追加したコネクタのConnectを押す流れです。

追加後は、チャット左下の「+」からConnectorsを開き、会話ごとにオンとオフを切り替えられます。障害対応用の会話だけオンにしておけば、普段の会話に書き込み系ツールが入りません。

一度追加したカスタムコネクタは編集できません。設定を変えるときは、削除してから入れ直します。

接続を確かめるには、読み取りだけで済む質問から始めます。公式ドキュメントのテスト例は「Show me the current status of all monitors」「What incidents occurred yesterday?」です。日本語でも「いま落ちているモニターを一覧にして」と頼めば同じ目的を果たせます。

Claude Codeに追加する

Claude Codeでは、claude mcp addでHTTPサーバーとして追加します。OAuthで使うなら、URLだけを渡してから/mcpで認証します。

claude mcp add --transport http betterstack https://mcp.betterstack.com

APIトークンで使うときは、--headerでBearerトークンを渡します。トークンは環境変数に入れておくと、コマンド履歴に値を残さずに済みます。

export BETTERSTACK_API_TOKEN=YOUR_TOKEN
claude mcp add --transport http betterstack https://mcp.betterstack.com \
  --header "Authorization: Bearer $BETTERSTACK_API_TOKEN"

Better Stackは専用のClaude Codeプラグインも案内しています。マーケットプレイスの追加とインストールは、セッション内で次の2行です。

/plugin marketplace add BetterStackHQ/claude-plugin
/plugin install betterstack@betterstack

プラグインを使うかclaude mcp addで直接足すかは好みの問題です。ツールを絞りたいときは、次の節のヘッダーを足せるclaude mcp addのほうが、設定の見通しがよくなります。サーバー定義の置き場所や.mcp.jsonの扱いはClaude CodeのMCPサーバー設定ガイドにあります。

障害対応で何を会話から実行できるか

障害対応の流れに沿って、ドキュメントに載っているツールを並べます。ツール名は公式の表記の説明をそのまま日本語にした呼び方で、実際のツール識別子は接続後の一覧で確かめてください。

場面会話から実行できること状態を変えるか
当番の確認会話から実行できること現在の当番、オンコールの予定、ローテーション、エスカレーションポリシー、重大度の参照状態を変えるか変えない
状況の把握会話から実行できることインシデントの一覧、詳細、タイムライン、コメントの取得状態を変えるか変えない
初動会話から実行できることインシデントの作成、確認応答、コメントの追加状態を変えるか変える
引き継ぎ会話から実行できることユーザー・チーム・スケジュール・ポリシー宛てのエスカレーション状態を変えるか変える
収束会話から実行できることインシデントの解決、24時間以内の再オープン状態を変えるか変える
原因調査会話から実行できることClickHouse SQLによるログ・スパン・メトリクスの検索とグラフ描画状態を変えるか変えない
利用者への連絡会話から実行できることステータスページの報告の作成と更新状態を変えるか変える

初動の「確認応答」は、公式の説明で「Takes ownership of incidents to stop escalations」とされています。つまり、押した時点でエスカレーションが止まります。Claudeが「確認しておきます」と先走って呼ぶと、本来鳴るはずだった次の当番への呼び出しが止まります。誰の名前で確認応答するかを含めて、人が決めてから頼む操作です。

公式の質問例には「Acknowledge incident #1234 and add a comment about the fix」のような、確認応答とコメント追加を1文で頼む形が載っています。コメントに修正内容を残しておけば、タイムラインの記録として後から読み返せます。

ドキュメントの一覧に載っていない操作

逆に、一覧にツールが見当たらない操作もあります。接続前の期待値合わせとして挙げます。

  • モニターとハートビートの編集・削除: 作成のツールは載っていますが、更新や削除に当たるツールは一覧にありません。
  • オンコール当番の変更: 当番の参照ツールだけが載っています。交代や上書きは画面で行います。
  • ステータスページ報告の削除: 報告と更新の作成、取得は載っていますが、削除は載っていません。

ツールは更新されるので、この一覧は接続した時点の実物で確認してください。

書き込み系を絞って安全に使う

Better Stack側に、ツールを絞る仕組みが用意されています。HTTPヘッダーで、使えるツールを許可リスト方式か除外リスト方式で指定します。

くらべる

ツールを絞る2つのヘッダー

許可リスト

X-MCP-Tools-Only

指定したツールだけを公開します。公式の例は"monitors,monitor,incidents"で、モニターの一覧・詳細とインシデントだけに絞った形です。読み取り専用に寄せたいときの出発点になります。

除外リスト

X-MCP-Tools-Except

指定したツール以外をすべて公開します。公式の例は"remove_dashboard,remove_chart"で、削除系だけを外した形です。

Claude Codeなら、--headerを追加するだけで同じ絞り込みになります。ヘッダーを足したコマンドは次のようになります。

claude mcp add --transport http betterstack https://mcp.betterstack.com \
  --header "Authorization: Bearer $BETTERSTACK_API_TOKEN" \
  --header "X-MCP-Tools-Except: remove_dashboard,remove_chart"

この絞り込みはサーバー側の制御です。Claude Code側にも、ツール単位で止める権限ルールがあります。サーバー名をbetterstackで登録した場合、ツールはmcp__betterstack__<ツール名>の形で指定できます。

{
  "permissions": {
    "deny": [
      "mcp__betterstack__remove_dashboard",
      "mcp__betterstack__remove_chart"
    ]
  }
}

上の2つは公式ヘッダー例に出てくる名前を使った例です。実際に止めたいツールの識別子は、接続後に/mcpで出る一覧から拾って書き換えてください。ルールの書式はMCPツールの許可・拒否の書き方で詳しく扱っています。

ClaudeのアプリでBearerトークンをヘッダーで渡す場合は、カスタムコネクタの設定にあるRequest headersに固定の認証情報を入れる方式になります。ただしBetter Stack側のアプリ向け手順はOAuthのサインインだけを示しているので、ここは社内の運用に合わせて選びます。

戻せない操作と影響が広い操作

次の操作は、取り消しがきかないか、影響が広い操作です。

  • ダッシュボードの削除は、紐付くチャートも含めて永久に削除されます。チャートの削除も永久です。
  • カタログの属性を削除すると、すべてのレコードからその属性の値が消えます。レコードの削除では、リレーション内の全レコードを消す指定もできます。
  • リリースの削除は永久ですが、まだエラーを受信しているリリースは次のイベントで再検出されます。
  • メンバーの削除と、ロールの変更ができます。権限まわりを会話で動かす必要がない運用なら、除外リストに入れておくと安心です。

カタログの作成・変更・削除には、OAuthならFull accessを選ぶか、Read & write権限のAPIトークンが必要と明記されています。読み取りだけで足りるなら、この権限を渡さない選択ができます。

落とし穴

確認応答は「見ただけ」では済まない

インシデントの確認応答はエスカレーションを止める操作です。Claudeに「状況を見て」と頼んだつもりで、確認応答まで一緒に頼まないようにします。ツール承認の画面で「Allow always」を選ぶと、以後は確認なしで呼ばれます。確認応答や解決のような操作は、毎回承認する設定のままにしておくほうが事故を防げます。

一次対応を会話で回す流れの例

公式の質問例をつなげると、障害の初動は次のように進められます。読み取りを先に済ませ、状態を変える操作は人が内容を見てから許可する順番です。

切り分け

障害を受けた最初の10分の見立て

  1. Q影響のあるモニターは特定できているか?
    答えがいいえのとき

    「Show me all monitors that are currently down」の形で、止まっているモニターを一覧にしてもらいます。ここは読み取りだけです。

    答えがはい
  2. Q同じ件で開いているインシデントはあるか?
    答えがいいえのとき

    「List all unacknowledged incidents from today」の形で、未確認のインシデントを引きます。重複して作らないための確認です。

    答えがはい
  3. Q原因の手がかりはログにあるか?
    答えがいいえのとき

    HTTP 500の件数をグラフで出してもらい、増え始めた時刻を特定します。長い期間を引くときは、クエリを時間窓に分けるPlan query windowsも使えます。

    答えがはい

状態を変える操作は人が許可する

インシデントの作成、確認応答、ステータスページへの報告は、Claudeが下書きした内容を見たうえで承認します。

ログ検索では、いきなりSQLを書かせず、ドキュメントにあるクエリ指示用のツール(Get query instructionsなど)で書き方を取得してから実行する順番が示されています。Claudeに構文を推測させず、手順どおりに書かせるための仕組みです。

エラー追跡とチケットの連携

エラー追跡の分野では、エラーの状態を「unhandled・unresolved・ignored・resolved・reoccurred」で扱います。状態の変更は、Linear・Jiraと紐づけていれば、そのIssueにコメントとして投稿される仕組みです。ドキュメントには、次のような頼み方が載っています。

  • 「Create a Linear issue for error pattern abc123 in application #1234」でエラーからIssueを作る。
  • 「Mark error pattern xyz789 as resolved」で解決済みにする。
  • 「Add a comment to this error with the root cause you found」で、見つけた根本原因をエラー側のコメントに残す。

コメントには「posted via MCP」の印が付くので、人が書いたものと区別できます。

接続後に詰まりやすい点

  • ツールが多くて文脈を圧迫する: 公式は、読み取り専用にしたいときと並んで、初期のコンテキストを小さくしたいときにもヘッダーでの絞り込みを挙げています。
  • カタログを更新できない: OAuthでFull accessを選んでいない、または読み取り専用のAPIトークンを使っている可能性があります。
  • 追加し直しが必要になる: カスタムコネクタは編集できないため、URLや認証を変えるときは削除して入れ直します。
  • 何でも1つの会話で頼まない: 状態を変える操作が多いほど、承認の画面を読み飛ばす確率が上がります。調査用の会話と対応用の会話を分けておくと、ツールのオンオフも切り分けやすくなります。

Better Stackの接続先は1つでも、Claudeに任せる範囲は運用が決めます。調査は広く任せ、状態を変える操作は絞る構成から始め、必要になった分だけ許可を足す進め方が堅実です。社内向けの独自MCPを足したい場合はCoworkカスタムコネクタの作り方が参考になります。障害後の振り返りまでつなげるならincident.ioの記事を、コネクタ全般の仕組みはClaude Connectorsとはを参照してください。

この記事を共有:XはてブLinkedIn