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:
- 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.
- In your user settings, locate the API Access section.
- Click the Create API User Token button and follow the prompts to generate a new token.
- 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.
- Navigate to User Settings. Click on your user profile icon, then select My Profile and then User Settings.
Using with MCP Clients
Cursor Integration
You can configure this MCP server directly within Cursor's settings.json file, by following these steps:
-
Open Cursor settings (Cursor Settings > Tools > Add MCP, or
Cmd+,on Mac, orCtrl+,on Windows/Linux). -
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.
-
Open VS Code settings (File > Preferences > Settings, or
Cmd+,on Mac, orCtrl+,on Windows/Linux). -
Search for "mcp" and ensure "Mcp: Enabled" is checked under Features > Chat.
-
Click "Edit in settings.json" under "Mcp > Discovery: Servers".
-
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)
- Ensure MCP is enabled in VS Code settings (Features > Chat > "Mcp: Enabled").
- Configure the server as described above.
- Open the Chat view in VS Code (
View>Chat). - Make sure
Agentmode is selected. In the Chat view, you can enable or disable specific tools by clicking the 🛠️ icon. - Enter a command such as
Show me the latest incidentorList my event orchestrationsto interact with your PagerDuty account through the MCP server. - You can start, stop, and manage your MCP servers using the command palette (
Cmd+Shift+P/Ctrl+Shift+P) and searching forMCP: 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.
-
Locate your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
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" } } } } -
Replace the placeholder values:
- Replace
/path/to/your/mcp-server-directorywith the full path to the directory where you cloned the MCP server (e.g.,/Users/yourname/code/pagerduty-mcp) - Replace
your-pagerduty-api-key-herewith 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
- Replace
-
Restart Claude Desktop completely for the changes to take effect.
-
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:
docker build -t pagerduty-mcp:latest .
Run in read-only mode (default):
docker run -i --rm \
-e PAGERDUTY_USER_API_KEY="your-api-key-here" \
pagerduty-mcp:latest
Run with write tools enabled:
docker run -i --rm \
-e PAGERDUTY_USER_API_KEY="your-api-key-here" \
pagerduty-mcp:latest --enable-write-tools
For EU region:
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:
{
"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
-
Clone the repository
-
Install
asdfpluginsshellasdf plugin add python asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git asdf plugin add uv -
Install tool versions using
asdf:shellasdf install -
Create a virtual environment and install dependencies using
uv(now thatasdfhas set the correct Python anduvversions):shelluv sync -
Ensure
uvis available globally.The MCP server can be run from different places so you need
uvto 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.
-
Run it locally
To run your cloned PagerDuty MCP Server you need to update your configuration to use
uvinstead ofuvx.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-toolsflag. This helps prevent accidental changes to your PagerDuty data.
| Tool | Area | Description | Read-only |
|---|---|---|---|
| create_alert_grouping_setting | Alert Grouping | Creates a new alert grouping setting | ❌ |
| delete_alert_grouping_setting | Alert Grouping | Deletes an alert grouping setting | ❌ |
| get_alert_grouping_setting | Alert Grouping | Retrieves a specific alert grouping setting | ✅ |
| list_alert_grouping_settings | Alert Grouping | Lists alert grouping settings with filtering | ✅ |
| update_alert_grouping_setting | Alert Grouping | Updates an existing alert grouping setting | ❌ |
| get_change_event | Change Events | Retrieves a specific change event | ✅ |
| list_change_events | Change Events | Lists change events with optional filtering | ✅ |
| list_incident_change_events | Change Events | Lists change events related to a specific incident | ✅ |
| list_service_change_events | Change Events | Lists change events for a specific service | ✅ |
| get_event_orchestration | Event Orchestrations | Retrieves a specific event orchestration | ✅ |
| get_event_orchestration_global | Event Orchestrations | Gets the global orchestration configuration for an event orchestration | ✅ |
| get_event_orchestration_router | Event Orchestrations | Gets the router configuration for an event orchestration | ✅ |
| get_event_orchestration_service | Event Orchestrations | Gets the service orchestration configuration for a specific service | ✅ |
| list_event_orchestrations | Event Orchestrations | Lists event orchestrations with optional filtering | ✅ |
| update_event_orchestration_router | Event Orchestrations | Updates the router configuration for an event orchestration | ❌ |
| append_event_orchestration_router_rule | Event Orchestrations | Adds a new routing rule to an event orchestration router | ❌ |
| list_escalation_policies | Escalation Policy | Lists escalation policies | ✅ |
| get_escalation_policy | Escalation Policy | Retrieves a specific escalation policy | ✅ |
| add_note_to_incident | Incidents | Adds note to an incident | ❌ |
| add_responders | Incidents | Adds responders to an incident | ❌ |
| create_incident | Incidents | Creates a new incident | ❌ |
| get_alert_from_incident | Incidents | Retrieves a specific alert from an incident | ✅ |
| get_incident | Incidents | Retrieves a specific incident | ✅ |
| get_outlier_incident | Incidents | Retrieves outlier incident information for a specific incident | ✅ |
| get_past_incidents | Incidents | Retrieves past incidents related to a specific incident | ✅ |
| get_related_incidents | Incidents | Retrieves related incidents for a specific incident | ✅ |
| list_alerts_from_incident | Incidents | Lists all alerts for a specific incident with pagination | ✅ |
| list_incident_notes | Incidents | Lists all notes for a specific incident | ✅ |
| list_incidents | Incidents | Lists incidents | ✅ |
| manage_incidents | Incidents | Updates status, urgency, assignment, or escalation level | ❌ |
| get_incident_workflow | Incident Workflows | Retrieves a specific incident workflow | ✅ |
| list_incident_workflows | Incident Workflows | Lists incident workflows with optional filtering | ✅ |
| start_incident_workflow | Incident Workflows | Starts a workflow instance for an incident | ❌ |
| get_log_entry | Log Entries | Retrieves a specific log entry by ID | ✅ |
| list_log_entries | Log Entries | Lists all log entries across the account with time filtering | ✅ |
| add_team_member | Teams | Adds a user to a team with a specific role | ❌ |
| create_team | Teams | Creates a new team | ❌ |
| delete_team | Teams | Deletes a team | ❌ |
| get_team | Teams | Retrieves a specific team | ✅ |
| list_team_members | Teams | Lists members of a team | ✅ |
| list_teams | Teams | Lists teams | ✅ |
| remove_team_member | Teams | Removes a user from a team | ❌ |
| update_team | Teams | Updates an existing team | ❌ |
| get_user_data | Users | Gets the current user's data | ✅ |
| list_users | Users | Lists users in the PagerDuty account | ✅ |
| list_oncalls | On-call | Lists on-call schedules | ✅ |
| create_schedule_override | Schedules | Creates an override for a schedule | ❌ |
| get_schedule | Schedules | Retrieves a specific schedule | ✅ |
| list_schedule_users | Schedules | Lists users in a schedule | ✅ |
| list_schedules | Schedules | Lists schedules | ✅ |
| create_schedule | Schedules | Creates a new on-call schedule | ❌ |
| update_schedule | Schedules | Updates an existing schedule | ❌ |
| create_service | Services | Creates a new service | ❌ |
| get_service | Services | Retrieves a specific service | ✅ |
| list_services | Services | Lists services | ✅ |
| update_service | Services | Updates an existing service | ❌ |
| create_status_page_post | Status Pages | Creates a new post (incident or maintenance) on a status page | ❌ |
| create_status_page_post_update | Status Pages | Adds a new update to an existing status page post | ❌ |
| get_status_page_post | Status Pages | Retrieves details of a specific status page post | ✅ |
| list_status_page_impacts | Status Pages | Lists available impact levels for a status page | ✅ |
| list_status_page_post_updates | Status Pages | Lists all updates for a specific status page post | ✅ |
| list_status_page_severities | Status Pages | Lists available severity levels for a status page | ✅ |
| list_status_page_statuses | Status Pages | Lists available statuses for a status page | ✅ |
| list_status_pages | Status Pages | Lists 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
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP服务构建器
by alirezarezvani
从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。
✎ 帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。