io.github.PagerDuty/pagerduty-mcp

平台与服务

by pagerduty

PagerDuty 官方 MCP server,提供与您的 PagerDuty 账户交互所需的多种工具。

什么是 io.github.PagerDuty/pagerduty-mcp

PagerDuty 官方 MCP server,提供与您的 PagerDuty 账户交互所需的多种工具。

README

PagerDuty's official MCP Server

<!-- mcp-name: io.github.PagerDuty/pagerduty-mcp -->

PagerDuty's local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account, allowing you to manage incidents, services, schedules, event orchestrations, and more directly from your MCP-enabled client.

Prerequisites

  • asdf-vm installed.

  • uv installed globally.

  • A PagerDuty User API Token. To obtain a PagerDuty User API Token, follow these steps:

    1. Navigate to User Settings. Click on your user profile icon, then select My Profile and then User Settings.

      For Freemium accounts, the permissions for generating User API tokens are limited to the user role as defined here.

    2. In your user settings, locate the API Access section.
    3. Click the Create API User Token button and follow the prompts to generate a new token.
    4. Copy the generated token and store it securely. You will need this token to configure the MCP server.

    Use of the PagerDuty User API Token is subject to the PagerDuty Developer Agreement.

Using with MCP Clients

Cursor Integration

You can configure this MCP server directly within Cursor's settings.json file, by following these steps:

  1. Open Cursor settings (Cursor Settings > Tools > Add MCP, or Cmd+, on Mac, or Ctrl+, on Windows/Linux).

  2. Add the following configuration:

    json
    {
      "mcpServers": {
        "pagerduty-mcp": {
          "type": "stdio",
          "command": "uvx",
          "args": [
            "pagerduty-mcp",
            "--enable-write-tools"
            // This flag enables write operations on the MCP Server enabling you to creating incidents, schedule overrides and much more
          ],
          "env": {
            "PAGERDUTY_USER_API_KEY": "${input:pagerduty-api-key}"
          }
        }
      }
    }
    

VS Code Integration

You can configure this MCP server directly within Visual Studio Code's settings.json file, allowing VS Code to manage the server lifecycle.

  1. Open VS Code settings (File > Preferences > Settings, or Cmd+, on Mac, or Ctrl+, on Windows/Linux).

  2. Search for "mcp" and ensure "Mcp: Enabled" is checked under Features > Chat.

  3. Click "Edit in settings.json" under "Mcp > Discovery: Servers".

  4. Add the following configuration:

    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"
                        // This flag enables write operations on the MCP Server enabling you to creating incidents, schedule overrides and much more
                    ],
                    "env": {
                        "PAGERDUTY_USER_API_KEY": "${input:pagerduty-api-key}",
                        "PAGERDUTY_API_HOST": "https://api.pagerduty.com"
                        // If your PagerDuty account is located in EU update your API host to https://api.eu.pagerduty.com
                    }
                }
            }
        }
    }
    

Trying it in VS Code Chat (Agent)

  1. Ensure MCP is enabled in VS Code settings (Features > Chat > "Mcp: Enabled").
  2. Configure the server as described above.
  3. Open the Chat view in VS Code (View > Chat).
  4. Make sure Agent mode is selected. In the Chat view, you can enable or disable specific tools by clicking the 🛠️ icon.
  5. Enter a command such as Show me the latest incident or List my event orchestrations to interact with your PagerDuty account through the MCP server.
  6. You can start, stop, and manage your MCP servers using the command palette (Cmd+Shift+P/Ctrl+Shift+P) and searching for MCP: List Servers. Ensure the server is running before sending commands. You can also try to restart the server if you encounter any issues.

Claude Desktop Integration

You can configure this MCP server to work with Claude Desktop by adding it to Claude's configuration file.

  1. Locate your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Create or edit the configuration file and add the following configuration:

    json
    {
      "mcpServers": {
        "pagerduty-mcp": {
          "command": "uvx",
          "args": [
            "pagerduty-mcp",
            "--enable-write-tools"
          ],
          "env": {
            "PAGERDUTY_USER_API_KEY": "your-pagerduty-api-key-here",
            "PAGERDUTY_API_HOST": "https://api.pagerduty.com"
          }
        }
      }
    }
    
  3. Replace the placeholder values:

    • Replace /path/to/your/mcp-server-directory with the full path to the directory where you cloned the MCP server (e.g., /Users/yourname/code/pagerduty-mcp)
    • Replace your-pagerduty-api-key-here with your actual PagerDuty User API Token
    • If your PagerDuty account is located in the EU, update the API host to https://api.eu.pagerduty.com
  4. Restart Claude Desktop completely for the changes to take effect.

  5. Test the integration by starting a conversation with Claude and asking something like "Show me my latest PagerDuty incidents" or "List my event orchestrations" to verify the MCP server is working.

    Security Note: Unlike VS Code's secure input prompts, Claude Desktop requires you to store your API key directly in the configuration file. Ensure this file has appropriate permissions (readable only by your user account) and consider the security implications of storing credentials in plain text.

Running with Docker

The PagerDuty MCP server can be run in a Docker container, providing an isolated and portable deployment option. The Docker image uses stdio transport for MCP communication.

Prerequisites

  • Docker installed
  • A PagerDuty User API Token (see Prerequisites)

Quick Start

Build the Docker image:

bash
docker build -t pagerduty-mcp:latest .

Run in read-only mode (default):

bash
docker run -i --rm \
  -e PAGERDUTY_USER_API_KEY="your-api-key-here" \
  pagerduty-mcp:latest

Run with write tools enabled:

bash
docker run -i --rm \
  -e PAGERDUTY_USER_API_KEY="your-api-key-here" \
  pagerduty-mcp:latest --enable-write-tools

For EU region:

bash
docker run -i --rm \
  -e PAGERDUTY_USER_API_KEY="your-api-key-here" \
  -e PAGERDUTY_API_HOST="https://api.eu.pagerduty.com" \
  pagerduty-mcp:latest

Using with MCP Clients via Docker

To integrate the Docker container with MCP clients, you can use Docker as the command:

Claude Desktop example:

json
{
  "mcpServers": {
    "pagerduty-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PAGERDUTY_USER_API_KEY=your-api-key-here",
        "pagerduty-mcp:latest"
      ]
    }
  }
}

Note: The Docker container uses stdio transport, making it compatible with MCP clients that expect standard input/output communication. Ensure you build the image first using docker build -t pagerduty-mcp:latest .

Set up locally

  1. Clone the repository

  2. Install asdf plugins

    shell
    asdf plugin add python
    asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
    asdf plugin add uv
    
  3. Install tool versions using asdf:

    shell
    asdf install
    
  4. Create a virtual environment and install dependencies using uv (now that asdf has set the correct Python and uv versions):

    shell
    uv sync
    
  5. Ensure uv is available globally.

    The MCP server can be run from different places so you need uv to be available globally. To do so, follow the official documentation.

    Tip: You may need to restart your terminal and/or VS Code for the changes to take effect.

  6. Run it locally

    To run your cloned PagerDuty MCP Server you need to update your configuration to use uv instead of uvx.

    json
    "pagerduty-mcp": { 
        "type": "stdio",
        "command": "uv",
        "args": [
            "run",
            "--directory",
            "/path/to/your/mcp-server-directory",
            // Replace with the full path to the directory where you cloned the MCP server, e.g. "/Users/yourname/code/mcp-server",     
            "python",
            "-m",
            "pagerduty_mcp",
            "--enable-write-tools"
            // This flag enables write operations on the MCP Server enabling you to creating incidents, schedule overrides and much more
        ],
        "env": {
            "PAGERDUTY_USER_API_KEY": "${input:pagerduty-api-key}",
            "PAGERDUTY_API_HOST": "https://api.pagerduty.com"
            // If your PagerDuty account is located in EU update your API host to https://api.eu.pagerduty.com
        }
    }
    

Available Tools and Resources

This section describes the tools provided by the PagerDuty MCP server. They are categorized based on whether they only read data or can modify data in your PagerDuty account.

Important: By default, the MCP server only exposes read-only tools. To enable tools that can modify your PagerDuty account (write-mode tools), you must explicitly start the server with the --enable-write-tools flag. This helps prevent accidental changes to your PagerDuty data.

ToolAreaDescriptionRead-only
create_alert_grouping_settingAlert GroupingCreates a new alert grouping setting
delete_alert_grouping_settingAlert GroupingDeletes an alert grouping setting
get_alert_grouping_settingAlert GroupingRetrieves a specific alert grouping setting
list_alert_grouping_settingsAlert GroupingLists alert grouping settings with filtering
update_alert_grouping_settingAlert GroupingUpdates an existing alert grouping setting
get_change_eventChange EventsRetrieves a specific change event
list_change_eventsChange EventsLists change events with optional filtering
list_incident_change_eventsChange EventsLists change events related to a specific incident
list_service_change_eventsChange EventsLists change events for a specific service
get_event_orchestrationEvent OrchestrationsRetrieves a specific event orchestration
get_event_orchestration_globalEvent OrchestrationsGets the global orchestration configuration for an event orchestration
get_event_orchestration_routerEvent OrchestrationsGets the router configuration for an event orchestration
get_event_orchestration_serviceEvent OrchestrationsGets the service orchestration configuration for a specific service
list_event_orchestrationsEvent OrchestrationsLists event orchestrations with optional filtering
update_event_orchestration_routerEvent OrchestrationsUpdates the router configuration for an event orchestration
append_event_orchestration_router_ruleEvent OrchestrationsAdds a new routing rule to an event orchestration router
list_escalation_policiesEscalation PolicyLists escalation policies
get_escalation_policyEscalation PolicyRetrieves a specific escalation policy
add_note_to_incidentIncidentsAdds note to an incident
add_respondersIncidentsAdds responders to an incident
create_incidentIncidentsCreates a new incident
get_alert_from_incidentIncidentsRetrieves a specific alert from an incident
get_incidentIncidentsRetrieves a specific incident
get_outlier_incidentIncidentsRetrieves outlier incident information for a specific incident
get_past_incidentsIncidentsRetrieves past incidents related to a specific incident
get_related_incidentsIncidentsRetrieves related incidents for a specific incident
list_alerts_from_incidentIncidentsLists all alerts for a specific incident with pagination
list_incident_notesIncidentsLists all notes for a specific incident
list_incidentsIncidentsLists incidents
manage_incidentsIncidentsUpdates status, urgency, assignment, or escalation level
get_incident_workflowIncident WorkflowsRetrieves a specific incident workflow
list_incident_workflowsIncident WorkflowsLists incident workflows with optional filtering
start_incident_workflowIncident WorkflowsStarts a workflow instance for an incident
get_log_entryLog EntriesRetrieves a specific log entry by ID
list_log_entriesLog EntriesLists all log entries across the account with time filtering
add_team_memberTeamsAdds a user to a team with a specific role
create_teamTeamsCreates a new team
delete_teamTeamsDeletes a team
get_teamTeamsRetrieves a specific team
list_team_membersTeamsLists members of a team
list_teamsTeamsLists teams
remove_team_memberTeamsRemoves a user from a team
update_teamTeamsUpdates an existing team
get_user_dataUsersGets the current user's data
list_usersUsersLists users in the PagerDuty account
list_oncallsOn-callLists on-call schedules
create_schedule_overrideSchedulesCreates an override for a schedule
get_scheduleSchedulesRetrieves a specific schedule
list_schedule_usersSchedulesLists users in a schedule
list_schedulesSchedulesLists schedules
create_scheduleSchedulesCreates a new on-call schedule
update_scheduleSchedulesUpdates an existing schedule
create_serviceServicesCreates a new service
get_serviceServicesRetrieves a specific service
list_servicesServicesLists services
update_serviceServicesUpdates an existing service
create_status_page_postStatus PagesCreates a new post (incident or maintenance) on a status page
create_status_page_post_updateStatus PagesAdds a new update to an existing status page post
get_status_page_postStatus PagesRetrieves details of a specific status page post
list_status_page_impactsStatus PagesLists available impact levels for a status page
list_status_page_post_updatesStatus PagesLists all updates for a specific status page post
list_status_page_severitiesStatus PagesLists available severity levels for a status page
list_status_page_statusesStatus PagesLists available statuses for a status page
list_status_pagesStatus PagesLists all status pages with optional filtering

Support

PagerDuty's MCP server is an open-source project, and as such, we offer only community-based support. If assistance is required, please open an issue in GitHub or PagerDuty's community forum.

Contributing

If you are interested in contributing to this project, please refer to our Contributing Guidelines.

Alternative License

If you do not want to license this under the current open source license, contact PagerDuty Sales to acquire this software under a paid, proprietary license.

常见问题

io.github.PagerDuty/pagerduty-mcp 是什么?

PagerDuty 官方 MCP server,提供与您的 PagerDuty 账户交互所需的多种工具。

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描111.8k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描111.8k

MCP服务构建器

by alirezarezvani

Universal
热门

从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。

帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。

平台与服务
未扫描9.8k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
83.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.3k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
34.9k

评论