Claude Media
PagerDutyのオンコールスケジュールをClaudeで管理する — On-Call Managerの使い方

PagerDutyのオンコールスケジュールをClaudeで管理する — On-Call Managerの使い方

PagerDutyの実験的アプリOn-Call Managerを使い、スケジュールと上書きをダッシュボード形式でClaudeから操作する手順をまとめます。

PagerDutyのOn-Call Managerとは何か

On-Call Managerは、PagerDutyのオンコールスケジュールと上書き(override)をIDEやClaude Desktopから離れずに管理できる、対話型のダッシュボードアプリです。「誰が今オンコールか」の一覧に加えて、スケジュール・上書き・エスカレーションポリシーをタブ切り替えで確認・編集できます。

土台になっているのはMCP Apps extensionという仕組みです。通常のMCPツールは会話への文字での応答しか返しませんが、この拡張を使うと、チャット画面の中にタブ付きの操作画面そのものを描画できます。On-Call Managerが表やクリック可能なモーダルを持つのは、この拡張を前提に作られているためです。MCPプロトコル自体がまだ拡張を追加している段階なので、対応クライアントが限られるのも自然な状況です。

導入前に確認すること

On-Call Managerは、PagerDutyの自己ホスト型MCPサーバー(GitHubリポジトリpagerduty-mcp-server)の一機能です。このリポジトリ自体は現在非推奨(deprecated)でアーカイブ済みになっており、通常の連携にはPagerDutyがホストするリモートMCPサーバーへの移行が案内されています。On-Call Managerはそのリモート版にはまだ移植されておらず、アーカイブされたリポジトリの実験用ブランチを自分の手元で動かす形でしか使えません。

動作にはPagerDutyのユーザーAPIトークンと、Pythonパッケージランチャーのuvが必要です。書き込み操作(上書きの作成・編集・削除)を行うには、起動時に--enable-write-toolsフラグを付ける必要があります。

トークンは次の手順で発行します。

  1. PagerDutyにログインし、右上のアバターから「My Profile」を開く
  2. 「User Settings」タブを選ぶ
  3. 「API Access」までスクロールし「Create New API User Token」を選ぶ
  4. トークンに名前(oncall-managerなど)を付けて作成する
  5. 表示されたトークンをその場でコピーする(再表示はできない)

Freemiumプランのアカウントでは、ユーザーAPIトークンを発行できるかどうかがロールによって制限されています。管理者以外のロールで手順4のボタンが出てこない場合は、この制限に該当している可能性があります。

対応クライアントは次の3つです。

クライアント対応状況
VS Code(GitHub Copilot)対応状況対応
Claude Desktop対応状況対応
Goose対応状況対応

Gooseはオープンソースで公開されているAIエージェントクライアントです。claude.aiのブラウザ版やClaude Codeは、公式の対応クライアント一覧に含まれていません。Claude Desktopの基本的な使い方はClaude Desktopとはにまとめてあります。

セットアップ手順

uvのインストール後、Claude Desktopの設定ファイル(claude_desktop_config.json)にMCPサーバーとして登録します。commanduvxargsに実験用ブランチのパッケージ指定を書き、APIトークンはenvに渡します。

{
  "mcpServers": {
    "pagerduty": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/PagerDuty/pagerduty-mcp-server@experimental",
        "pagerduty-mcp",
        "--enable-write-tools"
      ],
      "env": {
        "PAGERDUTY_USER_API_KEY": "your-token"
      }
    }
  }
}

stdioサーバーはクライアント側が起動する仕組みなので、通常はこの設定を保存してClaude Desktopを再起動すれば動きます。設定が正しいかをターミナルで単体確認したい場合は、次のコマンドを直接実行して起動ログを見る方法もあります。

PAGERDUTY_USER_API_KEY="your-token" \
  uvx --from git+https://github.com/PagerDuty/pagerduty-mcp-server@experimental \
  pagerduty-mcp --enable-write-tools

書き込みの動作を確かめる前に、まず--enable-write-toolsを外した状態で起動して画面だけを見る進め方もできます。一次ソースでは、書き込み系の操作(上書きの作成・編集・削除)には--enable-write-toolsが必要だとしか説明されていません。フラグを外した状態で「Save」を押した場合の挙動は明記されていませんが、書き込みツール自体が無効なので保存は失敗する想定です。

PagerDutyアカウントがEUリージョンの場合は、PAGERDUTY_API_HOST環境変数にhttps://api.eu.pagerduty.comを追加で指定します。指定を忘れると、トークンが有効でも接続先が異なるためデータが取得できません。

設定を登録してClaude Desktopを起動したら、会話の中で次のように呼びかけます。

Show me the on-call manager

画面で何が見えるか

起動直後は「My On-Calls」タブが開き、自分が現在オンコールになっているスケジュールと、そのシフトの開始・終了時刻が一覧表示されます。

「Schedules」タブでは組織のスケジュール一覧と、各スケジュールの現在の担当者が並びます。個別のスケジュールをクリックすると詳細モーダルが開きます。「Overrides」タブには有効中・予定中の上書きが並び、行をクリックすれば編集・削除、右上の「New Override」ボタンから新規作成ができます。「Escalation Policies」タブでは、ポリシーごとの通知ルールとサービスの割り当てを確認できます。

スケジュールの上書きを作成する

週末や急な休みでオンコール担当を代えたいときは、次の手順で進めます。

  1. 「Overrides」タブを開く
  2. 「New Override」をクリックする
  3. 対象のスケジュール、代わりに入る担当者、開始・終了時刻を選ぶ
  4. 「Save」を押すと、PagerDuty側に即座に上書きが反映される

既存の上書きを直す場合は、一覧の行をクリックすれば編集モーダルが開き、時刻の変更や削除がその場でできます。エスカレーションポリシーの確認も同じ画面から進められますが、ポリシーそのものの編集はOn-Call Managerの対象外です。担当者を間違えて設定したときも、この編集モーダルから直せば、上書きを一度削除してから作り直す手間はかかりません。

裏側で呼ばれるスケジュール関連ツール

On-Call Managerの操作は、内部でスケジュール関連の公開ツールを呼び出しています。

ツール役割
list_schedules役割スケジュール一覧を取得する
get_schedule役割指定したスケジュールの詳細を取得する
list_schedule_users役割スケジュールに登録されたユーザーを一覧する
create_schedule役割新しいスケジュールを作成する
create_schedule_override役割上書きを作成する
update_schedule役割既存のスケジュールを更新する

一覧系の3つは読み取り専用で、書き込み系の3つは--enable-write-toolsが無いと呼び出されません。一次ソースは「スケジュールと上書きのツール群(schedule and override tools)」とまとめているだけで、個々のツールを列挙していません。画面上の上書きの編集・削除がどのツールで動いているかは、一次ソースからは確認できません。会話だけでスケジュールを一時的に変更する使い方はClaudeとPagerDutyを連携してインシデント対応を自動化するで扱っています。

「Escalation Policies」タブは別の2ツール(list_escalation_policiesget_escalation_policy)で動いています。どちらも読み取り専用で、ポリシーを更新するツール自体がMCPサーバーに存在しません。タブから通知ルールを直せそうに見えても、実際に変更する手段はPagerDuty本体の管理画面しかありません。

上書きを作成する際、スケジュールIDやユーザーIDを直接知っている場面は多くありません。「Schedules」タブで対象のスケジュールを開き、担当者一覧からIDを確認してから「Overrides」タブに移る、という順番で進めると迷いにくくなります。会話ベースで進める場合も同様で、先に「スケジュール一覧を教えて」と尋ねてIDを確認してから上書きを依頼する流れが安全です。

実験的機能であることが意味すること

On-Call Managerを検討するときに一番効いてくるのは、機能そのものより配布形態です。GitHub上でリポジトリはアーカイブ済み(read-only)になっており、アーカイブされたリポジトリには新しいIssueもコミットも入りません。docsにはexperimentalタグを付けてIssueを報告する運用が案内されていますが、リポジトリ自体が読み取り専用なので、実際にはこの導線を使って報告することはできません。バグを見つけても、修正が入るかどうかを確認する手段は事実上無いと考えたほうが安全です。

もう1つ見落としやすいのが、--enable-write-toolsの効き方です。このフラグはOn-Call Manager用のスケジュール書き込みだけを許可するものではなく、インシデントの作成やチームの削除など、サーバーが持つ他ドメインの書き込みツールもまとめて有効にします。On-Call Managerを動かすためだけに付けたフラグのつもりが、同じ会話でインシデントやチームまで書き換えられる状態になっている、という事態が起こり得ます。書き込み対象をスケジュール関連だけに絞りたい場合は、mcp-proxyのようなツールフィルタリングの仕組みを別途はさむ必要があります。

チームの本番オンコール運用をこのアプリだけに委ねるのは前提が合いません。壊れたときの代替手段として、PagerDuty自体の管理画面か、会話ベースでの上書き作成を残しておく構成が現実的です。SLAの監視やエスカレーションを定期実行で自動化したい場合は、PagerDuty×CoworkでSLA監視とエスカレーションを自動化するの構成が向いています。

画面での操作にこだわらず、まず現状把握だけできれば十分という場合は、mcp-proxylist_oncallslist_schedulesget_schedulelist_schedule_usersの4つだけを許可した読み取り専用構成のほうが、実験的なアプリより壊れにくい選択肢になります。

検証中に見つけた挙動の変化は、日付とコミット状況をメモしておくと、後で自分のチームの設定が原因か切り分けやすくなります。リポジトリが読み取り専用である以上、不具合の報告先や修正の見込みは事前に確認できないという前提で使うことになります。

まとめ

On-Call Managerは、スケジュールと上書きを画面で操作したい人向けの実験的なダッシュボードです。experimentalブランチの自己ホスト版でしか動かず、対応クライアントもVS Code・Claude Desktop・Gooseの3つに限られます。裏側で呼ばれるスケジュール関連ツールと--enable-write-toolsの効き方さえ把握しておけば、画面操作と会話操作のどちらを選ぶかは好みの問題になります。日常のちょっとした担当交代なら、会話だけで完結する使い方のほうが導入の手間は小さくなります。

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