mcpField
P
pagerduty-automation

pagerduty-automation

github.com/davepoon云与 DevOps3.7k120 次安装1 天前更新
代码仓库

关于 pagerduty-automation

面向 PagerDuty 运维的自动化技能,通过 Rube MCP 和 Composio 工具包处理事件、服务、值班计划及升级策略。适用于维护事件响应流程的团队。

主要功能

  1. 01创建和更新事件
  2. 02查看告警与事件分析
  3. 03管理服务配置
  4. 04查看和调整值班计划
  5. 05管理升级策略与团队

适用场景

  1. 01确认并处理触发的事件
  2. 02查看事件告警和响应指标
  3. 03查询当前值班人员
  4. 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)
  • 通过 RUBE_MANAGE_CONNECTIONS 激活 PagerDuty 连接,工具包为 pagerduty
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取最新的工具架构

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用
  2. 调用 RUBE_MANAGE_CONNECTIONS,并指定工具包 pagerduty
  3. 如果连接状态不是 ACTIVE,请根据返回的授权链接完成 PagerDuty 身份验证
  4. 运行任何工作流前,确认连接状态为 ACTIVE

核心工作流

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:更新操作的新状态

注意事项:

  • 创建事件时,service 对象必须同时包含 id 和 type: 'service_reference'
  • 状态转换顺序为: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[]:按状态筛选告警

注意事项:

  • 一个事件可能包含多个告警;每个告警都有自己的状态
  • 告警 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:升级级别之间的延迟时间

注意事项:

  • 每条升级规则至少需要一个目标(用户、排班或团队)
  • escalation_delay_in_minutes 定义升级到下一级别前的等待时间
  • 将 num_loops 设为 0 表示策略运行一次后停止
  • 如果仍有服务引用某策略,则无法删除该策略
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(none)
获取服务PAGERDUTY_RETRIEVE_SERVICE_BY_IDservice_id
创建服务PAGERDUTY_CREATE_NEW_SERVICEname, escalation_policy
更新服务PAGERDUTY_UPDATE_SERVICE_BY_IDservice_id
列出排班表PAGERDUTY_GET_SCHEDULES(none)
获取排班表PAGERDUTY_RETRIEVE_SCHEDULE_BY_IDschedule_id
获取值班人员PAGERDUTY_RETRIEVE_ONCALL_LISTsince, until
创建排班表覆盖配置PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATIONschedule_id
列出升级策略PAGERDUTY_FETCH_ESCALATION_POLICES_LIST(none)
创建升级策略PAGERDUTY_CREATE_ESCALATION_POLICYname, escalation_rules
创建团队PAGERDUTY_CREATE_NEW_TEAM_WITH_DETAILSname, description

由 Composio 提供支持

评论

支持 Markdown