mcpField
P
pagerduty-automation

pagerduty-automation

github.com/sickn33云与 DevOps48.7k72 次安装1 天前更新
代码仓库

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

注意事项:

  • 创建事件时,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(无)
获取服务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

使用时机

本技能适用于执行概述中描述的工作流或操作。

限制

  • 仅当任务明确符合上述范围时才使用本技能。
  • 不要将输出视为特定环境验证、测试或专家审查的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown