pagerduty-mcp-community
A community-maintained MCP server for interacting with PagerDuty accounts, enabling management of incidents, services, schedules, and event orchestrations through MCP-enabled clients.
README
PagerDuty MCP Server - Community Edition
<!-- mcp-name: io.github.PagerDuty/pagerduty-mcp -->
About This Fork
This is a community-maintained fork of PagerDuty's official MCP Server with additional capabilities and features. The enhancements in this fork have been submitted as a pull request to the upstream repository but have not yet been merged.
Key differences from the official package:
- Additional tools and functionality (see capabilities below)
- Community-driven development and faster iteration
- Published on PyPI as
pagerduty-mcp-communityfor easy installation
For the official PagerDuty package, see pagerduty-mcp on PyPI.
Overview
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.
- 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.
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:
{ "mcpServers": { "pagerduty-mcp": { "type": "stdio", "command": "uvx", "args": [ "pagerduty-mcp-community", "--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:
{ "mcp": { "inputs": [ { "type": "promptString", "id": "pagerduty-api-key", "description": "PagerDuty API Key", "password": true } ], "servers": { "pagerduty-mcp": { "type": "stdio", "command": "uvx", "args": [ "pagerduty-mcp-community", "--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:
{ "mcpServers": { "pagerduty-mcp": { "command": "uvx", "args": [ "pagerduty-mcp-community", "--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.
Set up locally
-
Clone the repository
-
Install
asdfpluginsasdf plugin add python asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git asdf plugin add uv -
Install tool versions using
asdf:asdf install -
Create a virtual environment and install dependencies using
uv(now thatasdfhas set the correct Python anduvversions):uv 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."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_event_orchestration | Event Orchestrations | Retrieves a specific event orchestration | ✅ |
| get_event_orchestration_router | Event Orchestrations | Gets the router configuration for an event orchestration | ✅ |
| 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_incident | Incidents | Retrieves a specific incident | ✅ |
| list_incidents | Incidents | Lists incidents | ✅ |
| manage_incidents | Incidents | Updates status, urgency, assignment, or escalation level | ❌ |
| 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_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 | ❌ |
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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。