项目简介

PagerDuty MCP 服务器是 PagerDuty 官方推出的本地 MCP 服务器,旨在通过标准化的 Model Context Protocol (MCP) 协议,将 PagerDuty 账户的强大功能(如管理事件、服务、排班等)暴露给支持 MCP 的大型语言模型(LLM)客户端。它允许 LLM 直接调用 PagerDuty API,从而实现更智能、更高效的运维自动化和交互。

主要功能点

  • 上下文提供: 向 LLM 客户端提供 PagerDuty 账户相关的实时上下文信息。
  • 工具调用: 注册并提供一系列可供 LLM 调用的工具,实现 PagerDuty 资源的读取和修改。
  • 资源管理: 支持管理 PagerDuty 中的事件、服务、团队、用户、排班和升级策略等核心资源。
  • 安全控制: 默认仅启用只读工具。若需执行创建、更新、删除等操作,需明确配置启用写入工具,以防止意外操作。
  • 多客户端集成: 兼容多种 MCP 客户端,如 Visual Studio Code Chat 和 Claude Desktop。

安装步骤

  1. 克隆仓库: 将 'pagerduty-mcp-server' 仓库克隆到您的本地机器。
  2. 安装 'asdf' 插件: 确保您已安装 'asdf-vm' 版本管理器。然后,添加项目所需的 'python'、'nodejs' 和 'uv' 插件。
    asdf plugin add python
    asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
    asdf plugin add uv
  3. 安装工具版本: 进入克隆的项目目录,并使用 'asdf' 安装项目中指定的所有工具版本。
    cd pagerduty-mcp-server
    asdf install
  4. 创建虚拟环境并安装依赖: 此时,'asdf' 已设置好正确的 Python 和 'uv' 版本。使用 'uv' 创建虚拟环境并安装所有项目依赖。
    uv sync
  5. 全局安装 'uv': MCP 服务器可以从不同位置运行,因此您需要确保 'uv' 命令在全局范围内可用。请参考 'uv' 的官方文档进行全局安装。
  6. 获取 PagerDuty 用户 API 令牌: 这是连接 PagerDuty 账户的必需凭证。请按照以下步骤操作:
    • 登录您的 PagerDuty 账户。
    • 点击您的用户资料图标,选择 My Profile,然后选择 User Settings
    • 在用户设置中找到 API Access 部分。
    • 点击 Create API User Token 按钮,按照提示生成一个新的令牌。
    • 复制并安全存储生成的令牌。 您将在配置 MCP 客户端时使用此令牌。

服务器配置(MCP 客户端使用)

PagerDuty MCP 服务器是为 MCP 客户端(如 VS Code Chat、Claude Desktop)提供服务的。您无需手动运行服务器代码,而是需要配置您的 MCP 客户端,让它知道如何启动和连接到 PagerDuty MCP 服务器。

以下是适用于 Visual Studio Code 'settings.json' 文件的配置示例:

{
    "mcp": {
        "inputs": [
            {
                "type": "promptString",
                "id": "pagerduty-api-key",
                "description": "PagerDuty API Key",
                "password": true
            }
        ],
        "servers": {
            "pagerduty-mcp": { 
                "type": "stdio",
                "command": "uvx",
                "args": [
                    "pagerduty-mcp",
                    "--enable-write-tools"
                    // 此标志用于启用写入操作工具,例如创建事件、更新服务或创建排班覆盖。默认情况下,服务器仅提供只读功能。
                ],
                "env": {
                    "PAGERDUTY_USER_API_KEY": "${input:pagerduty-api-key}",
                    "PAGERDUTY_API_HOST": "https://api.pagerduty.com"
                    // 如果您的 PagerDuty 账户位于欧盟区,请将此值更新为 "https://api.eu.pagerduty.com"
                }
            }
        }
    }
}

配置说明:

  • '"mcp.inputs"':定义了一个输入提示,用于安全地获取您的 PagerDuty API 密钥。VS Code 会在启动服务器时弹出窗口让您输入此密钥。
  • '"pagerduty-mcp"':这是您为 MCP 服务器定义的名称。
  • '"type": "stdio"':指定服务器使用标准输入/输出 (Stdio) 协议与客户端通信。
  • '"command": "uvx"':指定用于启动服务器的命令。'uvx' 是 'uv' 工具的执行器,用于运行 Python 包。
  • '"args"':传递给 'uvx pagerduty-mcp' 命令的参数。'--enable-write-tools' 是一个重要参数,它控制是否启用可修改 PagerDuty 数据的工具(例如创建事件、删除团队)。
  • '"env"':为 MCP 服务器设置环境变量。
    • 'PAGERDUTY_USER_API_KEY':您的 PagerDuty API 密钥,通过 '${input:pagerduty-api-key}' 从安全输入中获取。
    • 'PAGERDUTY_API_HOST':PagerDuty API 的主机地址,通常为 'https://api.pagerduty.com'。

基本使用方法

  1. 在 MCP 客户端中配置: 根据上述“服务器配置”示例,将 PagerDuty MCP 服务器的配置添加到您使用的 MCP 客户端(例如 Visual Studio Code 的 'settings.json' 或 Claude Desktop 的配置文件)中。
  2. 启动并管理服务器: 启动您的 MCP 客户端。客户端会根据配置自动启动和管理 PagerDuty MCP 服务器的生命周期。在 VS Code 中,您可以通过命令面板('Cmd+Shift+P' 或 'Ctrl+Shift+P')搜索 'MCP: List Servers' 来查看和管理服务器状态。
  3. 与 LLM 交互: 打开客户端的聊天界面(例如 VS Code Chat),确保 LLM 代理模式已选择,并且 PagerDuty MCP 服务器已启用。然后,您可以直接向 LLM 提问或发出指令,例如:
    • “显示我所有处于触发状态的 PagerDuty 事件。”
    • “列出所有名为‘Dev Team’的团队成员。”
    • “创建一个标题为‘生产数据库故障’的新事件,关联服务 ID 为 'PSERVICE123',并设置为高紧急度。” (需要服务器以 '--enable-write-tools' 标志启动)
    • “将事件 'PINCIDENT456' 标记为已确认。” (需要服务器以 '--enable-write-tools' 标志启动)
  4. LLM 将会理解您的请求,并调用 PagerDuty MCP 服务器提供的相应工具来执行操作或获取信息,然后以自然语言的形式将结果反馈给您。

信息

分类

AI与计算