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
コネクタの画面を開く
ClaudeでCustomizeのConnectorsを開き、Add custom connectorを選びます。
- 2
名前とURLを入れる
名前に
Better Stack、URLにhttps://mcp.betterstack.comを入力してContinueを押します。 - 3
認証を選ぶ
AuthenticationでSign in nowを選び、Addを押します。
- 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.comAPIトークンで使うときは、--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分の見立て
- Q影響のあるモニターは特定できているか?答えがいいえのとき答えがはい
「Show me all monitors that are currently down」の形で、止まっているモニターを一覧にしてもらいます。ここは読み取りだけです。
- Q同じ件で開いているインシデントはあるか?答えがいいえのとき答えがはい
「List all unacknowledged incidents from today」の形で、未確認のインシデントを引きます。重複して作らないための確認です。
- 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とはを参照してください。