pagerduty-automation について
Rube MCP と Composio のツールキットを使って PagerDuty 運用を自動化するスキルです。インシデント、サービス、オンコール、エスカレーションを扱います。
主な機能
- 01インシデントの作成と更新
- 02アラートと分析の確認
- 03サービス設定の管理
- 04オンコール予定の確認と調整
- 05エスカレーションポリシーとチームの管理
活用シーン
- 01発生したインシデントの確認と解決
- 02アラートと対応指標の確認
- 03現在のオンコール担当者の確認
- 04サービスのエスカレーション手順の調整
MCP 対応
Rube MCP 経由で Composio の PagerDuty ツールキットを利用します。Rube MCP への接続と PagerDuty の認証が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill pagerduty-automationインストール後、Claude Code で/pagerduty-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による PagerDuty の自動化
Rube MCP を介して、Composio の PagerDuty ツールキットを使用し、PagerDuty のインシデント管理と運用を自動化します。
ツールキットのドキュメント:composio.dev/toolkits/pagerduty
前提条件
- Rube MCP が接続されていること(
RUBE_SEARCH_TOOLSが利用可能) pagerdutyツールキットを指定したRUBE_MANAGE_CONNECTIONSによる有効な PagerDuty 接続- 現在のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出してください
セットアップ
Rube MCP を取得する:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを検証します- ツールキットに
pagerdutyを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクに従って PagerDuty の認証を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. インシデントの管理
使用する場面:ユーザーがインシデントの作成、更新、確認応答、または解決を希望する場合
ツールの呼び出し順序:
PAGERDUTY_FETCH_INCIDENT_LIST- フィルターを指定してインシデントを一覧表示します[必須]PAGERDUTY_RETRIEVE_INCIDENT_BY_INCIDENT_ID- 特定のインシデントの詳細を取得します[任意]PAGERDUTY_CREATE_INCIDENT_RECORD- 新しいインシデントを作成します[任意]PAGERDUTY_UPDATE_INCIDENT_BY_ID- インシデントのステータスまたは割り当てを更新します[任意]PAGERDUTY_POST_INCIDENT_NOTE_USING_ID- インシデントにメモを追加します[任意]PAGERDUTY_SNOOZE_INCIDENT_BY_DURATION- 指定した時間、インシデントをスヌーズします[任意]
主なパラメーター:
statuses[]:ステータスで絞り込みます('triggered'、'acknowledged'、'resolved')service_ids[]:サービス ID で絞り込みますurgencies[]:緊急度で絞り込みます('high'、'low')title:インシデントのタイトル(作成時)service:idとtypeを含むサービスオブジェクト(作成時)status:更新操作で設定する新しいステータス
注意点:
- インシデントの作成には、
idとtype: 'service_reference'の両方を含むserviceオブジェクトが必要です - ステータスは次の順に遷移します:triggered -> acknowledged -> resolved
- resolved から triggered に直接遷移することはできません
PAGERDUTY_UPDATE_INCIDENT_BY_IDでは、パスパラメーターとしてインシデント ID が必要です- スヌーズ時間の単位は秒です。スヌーズ時間が経過すると、インシデントが再トリガーされます
2. インシデントのアラートと分析を確認する
使用する場面:ユーザーがインシデント内のアラートを確認したい場合、またはインシデントの指標を分析したい場合
ツールの呼び出し順序:
PAGERDUTY_GET_ALERTS_BY_INCIDENT_ID- インシデントのアラートを一覧表示します[必須]PAGERDUTY_GET_INCIDENT_ALERT_DETAILS- 特定のアラートの詳細を取得します[任意]PAGERDUTY_FETCH_INCIDENT_ANALYTICS_BY_ID- インシデントの分析データ/指標を取得します[任意]
主なパラメーター:
incident_id:インシデント IDalert_id:インシデント内の特定のアラート IDstatuses[]:ステータスでアラートを絞り込みます
注意点:
- 1 つのインシデントに複数のアラートが含まれることがあり、各アラートはそれぞれ独自のステータスを持ちます
- アラート ID はインシデントごとにスコープが設定されています
- 分析データには、応答時間、エンゲージメント指標、解決時間が含まれます
3. サービスを管理する
使用するタイミング:ユーザーがサービスの作成、更新、一覧表示を希望している場合
ツールの順序:
PAGERDUTY_RETRIEVE_LIST_OF_SERVICES- すべてのサービスを一覧表示します[必須]PAGERDUTY_RETRIEVE_SERVICE_BY_ID- サービスの詳細を取得します[任意]PAGERDUTY_CREATE_NEW_SERVICE- 新しいテクニカルサービスを作成します[任意]PAGERDUTY_UPDATE_SERVICE_BY_ID- サービスの設定を更新します[任意]PAGERDUTY_CREATE_INTEGRATION_FOR_SERVICE- サービスにインテグレーションを追加します[任意]PAGERDUTY_CREATE_BUSINESS_SERVICE- ビジネスサービスを作成します[任意]PAGERDUTY_UPDATE_BUSINESS_SERVICE_BY_ID- ビジネスサービスを更新します[任意]
主なパラメーター:
name:サービス名escalation_policy:idとtypeを含むエスカレーションポリシーオブジェクトalert_creation:アラート作成モード('create_alerts_and_incidents' または 'create_incidents')status:サービスのステータス('active'、'warning'、'critical'、'maintenance'、'disabled')
注意点:
- サービスの作成には、既存のエスカレーションポリシーが必要です
- ビジネスサービスはテクニカルサービスとは異なり、ビジネスレベルのグループを表します
- サービスインテグレーションは、アラートの作成方法(メール、API、イベント)を定義します
- サービスを無効にすると、そのサービスのインシデント作成がすべて停止します
4. スケジュールとオンコールを管理する
使用するタイミング:ユーザーがオンコールのスケジュールやローテーションの表示または管理を希望している場合
ツールの順序:
PAGERDUTY_GET_SCHEDULES- すべてのスケジュールを一覧表示します[必須]PAGERDUTY_RETRIEVE_SCHEDULE_BY_ID- 特定のスケジュールの詳細を取得します[任意]PAGERDUTY_CREATE_NEW_SCHEDULE_LAYER- 新しいスケジュールを作成します[任意]PAGERDUTY_UPDATE_SCHEDULE_BY_ID- 既存のスケジュールを更新します[任意]PAGERDUTY_RETRIEVE_ONCALL_LIST- 現在オンコール中の担当者を表示します[任意]PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATION- 一時的なオーバーライドを作成します[任意]PAGERDUTY_DELETE_SCHEDULE_OVERRIDE_BY_ID- オーバーライドを削除します[任意]PAGERDUTY_RETRIEVE_USERS_BY_SCHEDULE_ID- スケジュールに含まれるユーザーを一覧表示します[任意]PAGERDUTY_PREVIEW_SCHEDULE_OBJECT- 保存前にスケジュールの変更をプレビューします[任意]
主なパラメーター:
schedule_id:スケジュール識別子time_zone:スケジュールのタイムゾーン(例:'America/New_York')schedule_layers:ローテーションレイヤー設定の配列since/until:オンコールのクエリ対象期間(ISO 8601)override:ユーザー、開始時刻、終了時刻を含むオーバーライドオブジェクト
注意点:
- スケジュールレイヤーはローテーションの順序を定義します。複数のレイヤーが重なることもあります
- オーバーライドは一時的なもので、通常のスケジュールより優先されます
- オンコールのクエリでは、対象期間を指定するために
sinceとuntilが必要です - タイムゾーンには、有効なIANAタイムゾーン文字列を指定する必要があります
- 複雑なスケジュール変更は、正しく設定されていることを確認するため、保存前にプレビューしてください
5. エスカレーションポリシーを管理する
使用するタイミング:ユーザーがエスカレーションポリシーの作成または変更を希望している場合
ツールの順序:
PAGERDUTY_FETCH_ESCALATION_POLICES_LIST- すべてのエスカレーションポリシーを一覧表示します[必須]PAGERDUTY_GET_ESCALATION_POLICY_BY_ID- ポリシーの詳細を取得します[任意]PAGERDUTY_CREATE_ESCALATION_POLICY- 新しいポリシーを作成します[任意]PAGERDUTY_UPDATE_ESCALATION_POLICY_BY_ID- 既存のポリシーを更新します[任意]PAGERDUTY_AUDIT_ESCALATION_POLICY_RECORDS- ポリシーの監査履歴を表示します[任意]
主なパラメーター:
name:ポリシー名escalation_rules:エスカレーションルールオブジェクトの配列num_loops:停止するまでにルールを繰り返す回数(0 = ループなし)escalation_delay_in_minutes:エスカレーションレベル間の遅延時間
注意点:
- 各エスカレーションルールには、少なくとも1つのターゲット(ユーザー、スケジュール、またはチーム)が必要です
escalation_delay_in_minutesは、次のレベルにエスカレーションするまでの時間を定義しますnum_loopsを0に設定すると、ポリシーは1回実行されて停止します- サービスが引き続き参照しているポリシーは削除できません
6. チームを管理する
使用する場面:ユーザーがPagerDutyのチームを作成または管理したい場合
ツールの順序:
PAGERDUTY_CREATE_NEW_TEAM_WITH_DETAILS- 新しいチームを作成します[必須]
主なパラメーター:
name:チーム名description:チームの説明
注意点:
- チーム名はアカウント内で一意である必要があります
- チームはサービス、エスカレーションポリシー、スケジュールの範囲指定に使用されます
よくあるパターン
IDの解決
サービス名 -> サービスID:
1. Call PAGERDUTY_RETRIEVE_LIST_OF_SERVICES
2. Find service by name in response
3. Extract id field
スケジュール名 -> スケジュールID:
1. Call PAGERDUTY_GET_SCHEDULES
2. Find schedule by name in response
3. Extract id field
インシデントのライフサイクル
1. Incident triggered (via API, integration, or manual creation)
2. On-call user notified per escalation policy
3. User acknowledges -> status: 'acknowledged'
4. User resolves -> status: 'resolved'
ページネーション
- PagerDutyではオフセットベースのページネーションが使用されます
- レスポンスの
moreブール値フィールドを確認します offsetとlimitパラメーターを使用しますmoreがfalseになるまで続けます
既知の注意点
IDの形式:
- PagerDutyのすべてのIDは英数字の文字列です(例:'P1234AB')
- サービス参照には
type: 'service_reference'が必要です - ユーザー参照には
type: 'user_reference'が必要です
ステータスの遷移:
- インシデント:triggered -> acknowledged -> resolved(前方向のみ)
- サービス:active、warning、critical、maintenance、disabled
レート制限:
- PagerDuty APIはアカウントごとにレート制限を適用します
- 429レスポンスに対して指数バックオフを実装します
- 一括操作は間隔を空けて実行してください
レスポンスの解析:
- レスポンスデータは
dataまたはdata.dataの下にネストされている場合があります - フォールバックパターンを使って安全に解析します
- ページネーションでは
offset/limit/moreパターンが使用されます
クイックリファレンス
| タスク | ツールスラッグ | 主なパラメーター |
|---|---|---|
| インシデント一覧を取得 | PAGERDUTY_FETCH_INCIDENT_LIST | statuses[], service_ids[] |
| インシデントを取得 | PAGERDUTY_RETRIEVE_INCIDENT_BY_INCIDENT_ID | incident_id |
| インシデントを作成 | PAGERDUTY_CREATE_INCIDENT_RECORD | title, service |
| インシデントを更新 | PAGERDUTY_UPDATE_INCIDENT_BY_ID | incident_id, status |
| インシデントにメモを追加 | PAGERDUTY_POST_INCIDENT_NOTE_USING_ID | incident_id, content |
| インシデントをスヌーズ | PAGERDUTY_SNOOZE_INCIDENT_BY_DURATION | incident_id, duration |
| インシデントのアラートを取得 | PAGERDUTY_GET_ALERTS_BY_INCIDENT_ID | incident_id |
| インシデントの分析情報 | PAGERDUTY_FETCH_INCIDENT_ANALYTICS_BY_ID | incident_id |
| サービス一覧を取得 | PAGERDUTY_RETRIEVE_LIST_OF_SERVICES | (none) |
| サービスを取得 | PAGERDUTY_RETRIEVE_SERVICE_BY_ID | service_id |
| サービスを作成 | PAGERDUTY_CREATE_NEW_SERVICE | name, escalation_policy |
| サービスを更新 | PAGERDUTY_UPDATE_SERVICE_BY_ID | service_id |
| スケジュール一覧を取得 | PAGERDUTY_GET_SCHEDULES | (none) |
| スケジュールを取得 | PAGERDUTY_RETRIEVE_SCHEDULE_BY_ID | schedule_id |
| オンコール担当者を取得 | PAGERDUTY_RETRIEVE_ONCALL_LIST | since, until |
| スケジュールの上書きを作成 | PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATION | schedule_id |
| エスカレーションポリシー一覧を取得 | PAGERDUTY_FETCH_ESCALATION_POLICES_LIST | (none) |
| エスカレーションポリシーを作成 | PAGERDUTY_CREATE_ESCALATION_POLICY | name, escalation_rules |
| チームを作成 | PAGERDUTY_CREATE_NEW_TEAM_WITH_DETAILS | name, description |
Composioによって提供