Token导航 LogoToken导航TokenDH.com
PagerDuty MCP logo
开发工具stdio官方级别未说明来源级核验

PagerDuty MCP

MCP Server

PagerDuty MCP Server for LLM Agent Integration

工具数

12

提示词数

0

GitHub Stars

7

资源数

0
API集成事件管理Python团队协作自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

wpfleger96

提供方

wpfleger96

最后核验

2026/5/18 04:05

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run pagerduty-mcp-server

详细介绍

PagerDuty MCP服务器

向LLM公开PagerDuty API功能的服务器。此服务器旨在以编程方式使用,具有结构化的输入和输出。

](https://pypi.org/project/pagerduty-mcp-server/) ](https://pypi.org/project/pagerduty-mcp-server/) ](https://github.com/wpfleger96/pagerduty-mcp-server/graphs/contributors) ](https://pypi.org/project/pagerduty-mcp-server/) ![License](https://github.com/wpfleger96/pagerduty-mcp-server/blob/main/LICENSE)

概述

PagerDuty MCP服务器提供了一组用于与PagerDuy API交互的工具。这些工具旨在供LLM使用,以对事件、服务、团队和用户等PagerDuty资源执行各种操作。

入门指南

  1. 初始化本地Python环境:
cd pagerduty-mcp-server
brew install uv
uv sync
  1. 配置身份验证(请参阅 认证 在......下面

认证

优先: X-PagerDuty-Token HTTP标头> PAGERDUTY_API_TOKEN 环境变量>OAuth 2.0 PKCE

选项1:X-PagerDuty令牌头(平台集成)

当作为按请求注入凭据的平台的一部分运行时,服务器会读取 X-PagerDuty-Token HTTP标头。这具有最高优先级,不需要任何本地配置。

选项2:API代币(建议大多数用户使用)

设置 PAGERDUTY_API_TOKEN 环境变量,或将其添加到 .env 项目根目录中的文件。服务器将自动从以下位置加载环境变量 .env 文件(如果存在)。

环境变量:

export PAGERDUTY_API_TOKEN=your_api_token_here

.env 文件(推荐):

echo "PAGERDUTY_API_TOKEN=your_api_token_here" > .env

选项3:OAuth 2.0 PKCE(本地交互使用)

OAuth可用于本地独立使用。它打开浏览器进行身份验证,并将令牌安全地存储在操作系统密钥环中。OAuth是选择加入的——它只在以下情况下激活 PAGERDUTY_CLIENT_ID 已设置,并且不存在API令牌。

设置:

  1. 在以下网址注册PagerDuty OAuth应用程序 集成→ 开发者工具→ 我的应用程序.
  2. 将所需范围设置为 read write.
  3. 将重定向URI设置为 http://localhost:5173/oauth/pagerduty (默认端口)。
  4. 设置 PAGERDUTY_CLIENT_ID 环境变量到应用程序的客户端ID。

可选配置:

  • PAGERDUTY_CLIENT_SECRET 启用令牌刷新(机密客户端)。
  • PAGERDUTY_OAUTH_CALLBACK_PORT 覆盖默认回调端口(5173).

用法

克劳德/光标

{
  "mcpServers": {
    "pagerduty-mcp-server": {
      "command": "uvx",
      "args": ["pagerduty-mcp-server"],
      "env": {
          "PAGERDUTY_API_TOKEN": "
"
      }
    }
  }
}

作为独立服务器

uv run pagerduty-mcp-server

可用工具

阅读工具

  • get_escalation_policies --列出或获取升级策略的详细信息
  • get_incidents --列出或获取事件的详细信息(支持按状态、紧急程度、服务、团队和时间范围进行筛选)
  • get_oncalls --列出某个时间范围内的呼叫条目
  • get_schedules --列出或获取时间表的详细信息
  • get_services --列出或获取服务的详细信息
  • get_teams --列出或获取团队的详细信息
  • get_users --列出或获取用户的详细信息
  • list_users_oncall --列出特定日程的待命用户
  • build_user_context --为当前经过身份验证的用户构建上下文对象

写入工具

  • acknowledge_incident --确认事件(表示正在进行调查)
  • resolve_incident --解决事件(阻止进一步升级)
  • add_incident_note --在事件中添加注释(用于记录调查进度或背景)

include 参数

大多数阅读工具都接受可选 include 参数——要返回的字段名列表。指定后,每个响应对象中只包含这些字段,这减少了LLM上下文中的令牌使用。

# Return only id, title, and status for each incident
get_incidents(include=["id", "title", "status"])

# Return only id and name for each service
get_services(include=["id", "name"])

工具文档 查看每个工具可用字段的完整列表。

响应格式

所有API回复都遵循一致的格式:

{
  "metadata": {
    "count": "",
    "description": ""
  },
  "": [
    {
      "...": "..."
    }
  ],
  "error": {
    "message": "",
    "code": ""
  }
}

error 字段仅在发生错误时存在。响应中的资源名称始终是复数形式的,以保持一致性,即使返回了单个项目。

错误处理

当发生错误时,响应将包含一个具有以下结构的错误对象:

{
  "metadata": {
    "count": 0,
    "description": "Error occurred while processing request"
  },
  "error": {
    "message": "Invalid user ID provided",
    "code": "INVALID_USER_ID"
  }
}

常见的错误场景包括:

  • 无效的资源id(例如,user_id、team_id、service_id)
  • 缺少必要参数
  • 参数值无效
  • API请求失败
  • 响应处理错误

参数验证

  • 所有ID参数必须是有效的PagerDuty资源ID
  • 日期参数必须是有效的ISO8601时间戳
  • 列出参数(例如。, statuses, team_ids)必须包含有效值
  • 列表参数中的无效值将被忽略
  • 所需参数不能为 None 或空字符串
  • 对于 statusesget_incidents,仅 triggered, acknowledged,以及 resolved 是有效值
  • 对于 urgency 在事故中,仅 highlow 是有效值
  • limit 参数可用于限制列表操作返回的结果数量

速率限制和分页

  • 服务器遵守PagerDuty的速率限制
  • 服务器会自动为您处理分页
  • limit 参数可用于控制列表操作返回的结果数量
  • 如果没有指定限制,服务器将返回最多 pagerduty_mcp_server.utils.RESPONSE_LIMIT 默认结果

用户上下文

许多功能接受 current_user_context 参数(默认为 True)其基于该上下文自动过滤结果。当 current_user_contextTrue,您不能使用某些筛选参数,因为它们会与自动筛选冲突:

  • 对于所有资源类型:

- user_ids 不能与一起使用 current_user_context=True

  • 对于事件:

- team_idsservice_ids 不能与一起使用 current_user_context=True

  • 关于服务:

- team_ids 不能与一起使用 current_user_context=True

  • 对于升级策略:

- team_ids 不能与一起使用 current_user_context=True

  • 随叫随到:

- user_ids 不能与一起使用 current_user_context=True - schedule_ids 仍可用于按特定计划进行筛选 - 查询将显示与当前用户团队相关的所有升级策略的呼叫 - 这对于回答诸如“我的团队目前有谁在待命?”之类的问题很有用 - 当前用户的ID未用作筛选器,因此您将看到所有随叫随到的团队成员

发展

运行测试

测试套件包括单元测试和集成测试。集成测试需要真正连接到PagerDuty API,而单元测试可以在没有API访问的情况下运行。

pytest-cov args是可选的,使用它们在输出中包含测试覆盖率报告。

运行所有测试(如果出现以下情况,集成测试将自动跳过 PAGERDUTY_API_TOKEN 未设置):

uv run pytest [--cov=src --cov-report=term-missing]

仅运行单元测试(不需要API令牌):

uv run pytest -m unit [--cov=src --cov-report=term-missing]

只运行集成测试(需要 PAGERDUTY_API_TOKEN 在环境中设置):

uv run pytest -m integration [--cov=src --cov-report=term-missing]

仅运行与特定子模块相关的测试:

uv run pytest -m  [--cov=src --cov-report=term-missing]

使用MCP检查器调试服务器

npx @modelcontextprotocol/inspector uv run pagerduty-mcp-server

文档

工具文档 -有关可用工具的详细信息,包括参数、返回类型和示例查询

惯例

  • 所有API响应都遵循标准格式,包含元数据、资源列表和可选错误
  • 为了保持一致性,响应中的资源名称始终是复数形式的
  • 所有返回单个项目的函数仍然返回一个包含一个元素的列表
  • 错误响应包括消息和代码
  • 所有时间戳均采用ISO8601格式
  • 测试标有pytest标记,以指示其类型(单元/集成)和测试的资源(事件、团队等)

查询示例

  • 在传呼机值班期间,是否有分配给我的任何事件?
  • 未来两周我有什么随叫随到的时间表吗?
  • 还有谁是个性化团队的成员?

目录标签

目录标签

API集成事件管理Python团队协作自动化developer-toolsAPI服务器本地部署自动化工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP