Skip to main content

PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.

Project description

PagerDuty's official MCP Server

Install MCP Server

PagerDuty's local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account, allowing you to manage incidents, services, schedules, 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.
    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

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:

    {
        "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 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:

    {
      "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" 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

  1. Clone the repository

  2. Install asdf plugins

    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:

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

    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.

    "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.

Tool Area Description Read-only
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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pagerduty_mcp-0.1.3.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pagerduty_mcp-0.1.3-py3-none-any.whl (58.3 kB view details)

Uploaded Python 3

File details

Details for the file pagerduty_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: pagerduty_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.9

File hashes

Hashes for pagerduty_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 005939dee577ed1c5138882b3466fa16d5723d55800ad26156b1d33803ec0727
MD5 4a6382be05878da0bbe6744939dc0bfa
BLAKE2b-256 22fa7a1765151df2b7991006a8252b1aec5ba51411b0e83e8bd15832a06f0695

See more details on using hashes here.

File details

Details for the file pagerduty_mcp-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pagerduty_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22520badaeb958dc36b2e8cfe8876913ab9727d29914f3100a7b0e463bacaba3
MD5 345a6ae8b449036513ec4b4eec0e2f4c
BLAKE2b-256 d459c94ed7a921a5d2ee9fae23f088812ffbcd31c30d7093ae69bd9a39401ed7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page