Pagerduty Mcp Server

Pagerduty Mcp Server

🚀 分页Duty 服务器端

PagerDuty Server 是一个用于与PagerDuty API交互的Python客户端库,它能简化从PagerDuty获取数据的流程,并提供多种工具辅助处理和分析这些数据。

🚀 快速开始

PagerDuty Server 可帮助您轻松与PagerDuty API交互。以下是一些基本操作示例:

分页示例

获取所有事件的分页:

from pagerduty_mcp_server import incidents
incidents = incidents.get_all_incidents()
for incident in incidents:
print(incident.id)

事件功能

列出事件

列出当前用户的团队中的所有事件:

incidents_list = incidents.list_incidents()

# 列出特定服务的事件
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])

# 根据状态筛选事件
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])

时间范围筛选

根据时间范围过滤事件:

date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)

事件上下文

current_user_context=True 时,自动过滤与当前用户相关的团队和服务:

my_incidents = incidents.list_incidents(current_user_context=True)

团队功能

列出团队

获取所有团队:

teams = teams.list_teams()
for team in teams:
print(team.id)

服务功能

列出服务

列出特定团队的服务:

services = services.list_services(team_id='TEAM-1')
for service in services:
print(service.id)

命令行工具

PagerDuty Server 提供了一个命令行界面(CLI)来执行常见任务。

安装 CLI

使用 pip 安装:

pip install pagerduty-mcp-server-cli

使用 CLI

列出所有事件:

pagerduty-server incidents list

获取特定事件的详细信息:

pagerduty-server incidents get --id INCIDENT-123

✨ 主要特性

  • 分页:自动处理PagerDuty API的分页,使您可以轻松获取大量数据。
  • 用户上下文:根据当前用户上下文过滤结果,提供更相关的数据。
  • 多种资源支持:支持多种资源类型,包括事件、团队、服务和策略等。

📦 安装指南

使用 pip 安装:

pip install pagerduty-mcp-server

💻 使用示例

基础用法

以下是获取所有事件分页的基础代码示例:

from pagerduty_mcp_server import incidents
incidents = incidents.get_all_incidents()
for incident in incidents:
print(incident.id)

高级用法

事件功能高级用法

# 列出特定服务的事件
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])

# 根据状态筛选事件
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])

# 根据时间范围过滤事件
date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)

团队和服务功能高级用法

# 列出所有团队
teams = teams.list_teams()
for team in teams:
print(team.id)

# 列出特定团队的服务
services = services.list_services(team_id='TEAM-1')
for service in services:
print(service.id)

命令行工具高级用法

# 列出所有事件
pagerduty-server incidents list

# 获取特定事件的详细信息
pagerduty-server incidents get --id INCIDENT-123

🔧 技术细节

用户上下文限制

  • current_user_context=True 时,不能使用以下参数:
    • user_ids
    • team_ids
    • service_ids

📚 详细文档

开发

安装依赖

使用 pip 安装开发依赖:

pip install -r requirements.txt

测试

运行单元测试:

pytest tests/

提交代码

遵循 Git Flow 工作流进行提交。

贡献指南

提交规范

遵循标准的提交规范,确保您的提交清晰且易于理解。

发布流程

使用 poetry 进行版本管理:

poetry lock --no-update && poetry install

文档编写

文档位于 docs/ 目录下,使用 Markdown 格式编写。

问题报告

遇到问题?在 GitHub Issues 中报告。


PagerDuty Server 是一个强大的工具,帮助您更高效地与PagerDuty API交互。希望这个文档能为您提供清晰的指导!

  • 0 关注
  • 0 收藏,25 浏览
  • system 提出于 2025-10-06 12:36

相似服务问题

相关AI产品