mcpField
P
pagerduty-automation

pagerduty-automation

github.com/sickn33クラウド・DevOps48.8k72 回インストール今日更新
リポジトリ

pagerduty-automation について

pagerduty-automationは、Rube MCP経由でComposioのPagerDutyツールキットを使い、PagerDutyのインシデント運用を行うスキルです。インシデント、アラート、サービス、オンコール、エスカレーションポリシー、チームを扱い、通知や対応者に影響する操作への注意も示します。

主な機能

  1. 01インシデントのライフサイクル操作
  2. 02アラート詳細とインシデント分析
  3. 03サービスとインテグレーションの管理
  4. 04オンコールスケジュールとオーバーライド管理
  5. 05エスカレーションポリシーとチームの操作

活用シーン

  1. 01インシデント、アラート、対応指標の確認
  2. 02インシデントの担当変更やノート追加
  3. 03オンコール状況の確認とスケジュール変更のプレビュー
  4. 04サービスとエスカレーションポリシーの管理

MCP 対応

Rube MCPとComposioのPagerDutyツールキットを介してPagerDutyに接続します。操作の前に現在のツールスキーマを取得し、認証済みで有効なPagerDuty接続を確認する必要があります。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill pagerduty-automation

インストール後、Claude Code で/pagerduty-automationを入力して読み込まれたか確認します。

詳細

Rube MCP による PagerDuty の自動化

Rube MCP を通じて、Composio の PagerDuty ツールキットを使用し、PagerDuty のインシデント管理と運用を自動化します。

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • ツールキット pagerduty を指定した RUBE_MANAGE_CONNECTIONS を通じて、PagerDuty に接続済みであること
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP の取得:クライアント設定で、https://rube.app/mcp を MCP サーバーとして追加してください。このエンドポイントを使用するには、認証済みの MCP セッションと、適切なスコープを持つ認可済みの PagerDuty 接続が引き続き必要です。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確認します
  2. ツールキット pagerduty を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って PagerDuty 認証を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

インシデントと通知に関する注意事項

書き込み操作の前に、正確なアカウント/サービス/インシデント ID と現在の状態を確認してください。インシデントの作成、メモの追加、再割り当て、スケジュールやエスカレーションの変更により、実際の担当者に通知またはページが送られることがあります。確認応答、スヌーズ、解決、サービスの無効化により、対応が抑制される可能性があります。こうした影響について明示的な承認を得て、意図した IANA タイムゾーンでスケジュールをプレビューし、変更結果を読み戻してください。通信タイムアウトが発生した場合、処理結果は不明です。作成を再試行する前に、状態を照合してください。インシデントへの確認応答によって再トリガーされることがあります。また、ステータスフィールドは読み取り専用、またはエンドポイント/スキーマによる制約がある場合があります。以下の簡略化された一方向のステータス遷移やステータス一覧を前提にしないでください。検出した最新の列挙値と実行ユーザーの要件を使用してください。インシデントの詳細やインテグレーションキーを共有ログに含めないでください。

主なワークフロー

1. インシデントの管理

使用する場面:ユーザーがインシデントの作成、更新、確認応答、または解決を希望する場合

ツールの順序:

  1. PAGERDUTY_FETCH_INCIDENT_LIST - フィルターを指定してインシデントを一覧表示します[必須]
  2. PAGERDUTY_RETRIEVE_INCIDENT_BY_INCIDENT_ID - 特定のインシデントの詳細を取得します[任意]
  3. PAGERDUTY_CREATE_INCIDENT_RECORD - 新しいインシデントを作成します[任意]
  4. PAGERDUTY_UPDATE_INCIDENT_BY_ID - インシデントのステータスまたは割り当てを更新します[任意]
  5. PAGERDUTY_POST_INCIDENT_NOTE_USING_ID - インシデントにメモを追加します[任意]
  6. 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. インシデントのアラートと分析を確認する

使用する場面:ユーザーがインシデント内のアラートを確認したい場合、またはインシデントの指標を分析したい場合

ツールの順序:

  1. PAGERDUTY_GET_ALERTS_BY_INCIDENT_ID - インシデントのアラートを一覧表示します[必須]
  2. PAGERDUTY_GET_INCIDENT_ALERT_DETAILS - 特定のアラートの詳細を取得します[任意]
  3. PAGERDUTY_FETCH_INCIDENT_ANALYTICS_BY_ID - インシデントの分析データ/指標を取得します[任意]

主なパラメーター:

  • incident_id:インシデント ID
  • alert_id:インシデント内の特定のアラート ID
  • statuses[]:ステータスでアラートを絞り込みます

注意事項:

  • 1 つのインシデントに複数のアラートが含まれることがあります。各アラートにはそれぞれ独自のステータスがあります
  • アラート ID のスコープはインシデント単位です
  • 分析データには、応答時間、エンゲージメント指標、解決時間が含まれます
3. サービスを管理する

使用するタイミング:ユーザーがサービスの作成、更新、一覧表示を希望している場合

ツールの順序:

  1. PAGERDUTY_RETRIEVE_LIST_OF_SERVICES - すべてのサービスを一覧表示します[必須]
  2. PAGERDUTY_RETRIEVE_SERVICE_BY_ID - サービスの詳細を取得します[任意]
  3. PAGERDUTY_CREATE_NEW_SERVICE - 新しいテクニカルサービスを作成します[任意]
  4. PAGERDUTY_UPDATE_SERVICE_BY_ID - サービスの設定を更新します[任意]
  5. PAGERDUTY_CREATE_INTEGRATION_FOR_SERVICE - サービスにインテグレーションを追加します[任意]
  6. PAGERDUTY_CREATE_BUSINESS_SERVICE - ビジネスサービスを作成します[任意]
  7. 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. スケジュールとオンコールを管理する

使用するタイミング:ユーザーがオンコールのスケジュールやローテーションの表示または管理を希望している場合

ツールの順序:

  1. PAGERDUTY_GET_SCHEDULES - すべてのスケジュールを一覧表示します[必須]
  2. PAGERDUTY_RETRIEVE_SCHEDULE_BY_ID - 特定のスケジュールの詳細を取得します[任意]
  3. PAGERDUTY_CREATE_NEW_SCHEDULE_LAYER - 新しいスケジュールを作成します[任意]
  4. PAGERDUTY_UPDATE_SCHEDULE_BY_ID - 既存のスケジュールを更新します[任意]
  5. PAGERDUTY_RETRIEVE_ONCALL_LIST - 現在オンコール中の担当者を表示します[任意]
  6. PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATION - 一時的なオーバーライドを作成します[任意]
  7. PAGERDUTY_DELETE_SCHEDULE_OVERRIDE_BY_ID - オーバーライドを削除します[任意]
  8. PAGERDUTY_RETRIEVE_USERS_BY_SCHEDULE_ID - スケジュールに含まれるユーザーを一覧表示します[任意]
  9. PAGERDUTY_PREVIEW_SCHEDULE_OBJECT - 保存前にスケジュールの変更をプレビューします[任意]

主なパラメーター:

  • schedule_id:スケジュール識別子
  • time_zone:スケジュールのタイムゾーン(例:'America/New_York')
  • schedule_layers:ローテーションレイヤー設定の配列
  • since/until:オンコールのクエリ対象期間(ISO 8601)
  • override:ユーザー、開始時刻、終了時刻を含むオーバーライドオブジェクト

注意点:

  • スケジュールレイヤーはローテーションの順序を定義します。複数のレイヤーが重なることもあります
  • オーバーライドは一時的なもので、通常のスケジュールより優先されます
  • オンコールのクエリでは、対象期間を指定するために since と until が必要です
  • タイムゾーンには、有効なIANAタイムゾーン文字列を指定する必要があります
  • 複雑なスケジュール変更は、正しく設定されていることを確認するため、保存前にプレビューしてください
5. エスカレーションポリシーを管理する

使用するタイミング:ユーザーがエスカレーションポリシーの作成または変更を希望している場合

ツールの順序:

  1. PAGERDUTY_FETCH_ESCALATION_POLICES_LIST - すべてのエスカレーションポリシーを一覧表示します[必須]
  2. PAGERDUTY_GET_ESCALATION_POLICY_BY_ID - ポリシーの詳細を取得します[任意]
  3. PAGERDUTY_CREATE_ESCALATION_POLICY - 新しいポリシーを作成します[任意]
  4. PAGERDUTY_UPDATE_ESCALATION_POLICY_BY_ID - 既存のポリシーを更新します[任意]
  5. 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 チームを作成または管理したい場合

ツールの実行順序:

  1. 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_LISTstatuses[], service_ids[]
インシデントの取得PAGERDUTY_RETRIEVE_INCIDENT_BY_INCIDENT_IDincident_id
インシデントの作成PAGERDUTY_CREATE_INCIDENT_RECORDtitle, service
インシデントの更新PAGERDUTY_UPDATE_INCIDENT_BY_IDincident_id, status
インシデントノートの追加PAGERDUTY_POST_INCIDENT_NOTE_USING_IDincident_id, content
インシデントのスヌーズPAGERDUTY_SNOOZE_INCIDENT_BY_DURATIONincident_id, duration
インシデントアラートの取得PAGERDUTY_GET_ALERTS_BY_INCIDENT_IDincident_id
インシデント分析PAGERDUTY_FETCH_INCIDENT_ANALYTICS_BY_IDincident_id
サービスの一覧表示PAGERDUTY_RETRIEVE_LIST_OF_SERVICES(なし)
サービスの取得PAGERDUTY_RETRIEVE_SERVICE_BY_IDservice_id
サービスの作成PAGERDUTY_CREATE_NEW_SERVICEname, escalation_policy
サービスの更新PAGERDUTY_UPDATE_SERVICE_BY_IDservice_id
スケジュールの一覧表示PAGERDUTY_GET_SCHEDULES(なし)
スケジュールの取得PAGERDUTY_RETRIEVE_SCHEDULE_BY_IDschedule_id
オンコールの取得PAGERDUTY_RETRIEVE_ONCALL_LISTsince, until
スケジュールオーバーライドの作成PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATIONschedule_id
エスカレーションポリシーの一覧表示PAGERDUTY_FETCH_ESCALATION_POLICES_LIST(なし)
エスカレーションポリシーの作成PAGERDUTY_CREATE_ESCALATION_POLICYname, escalation_rules
チームの作成PAGERDUTY_CREATE_NEW_TEAM_WITH_DETAILSname, description

使用する場面

このスキルは、概要に記載されたワークフローまたはアクションを実行する場合に適用できます。

制限事項

  • このスキルは、タスクが上記の範囲に明確に一致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が欠けている場合は、停止して確認を求めてください。

コメント