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 MCP Server

PagerDuty's official 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.

Configuration

  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.

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

    Note: The --directory flag ensures uv runs in your project root, regardless of the current working directory. Make sure your VS Code integrated terminal is set up to use asdf shims so that uv and python resolve to the correct versions.
    From the project root path run asdf reshim.
    This may require sourcing asdf.sh in your shell profile (e.g., .bashrc, .zshrc).

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": "uv",
          "args": [
            "run",
            "--directory",
            "/path/to/your/mcp-server-directory",
            "python",
            "-m",
            "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.

    Note: The --directory flag ensures uv runs in your project root, regardless of Claude Desktop's working directory. Make sure uv is available globally (installed via Homebrew as described in the setup steps) and that your system can resolve the correct Python version through asdf shims.

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.0.tar.gz (44.3 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.0-py3-none-any.whl (57.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pagerduty_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d99fb8935f575dbd6cf62143100216c78e2095a4ee7d5db5703b124b1f94c0b8
MD5 4611d962f7a9d8e7384f7d2dc8f1de71
BLAKE2b-256 92f045017c2dda2573e8429e4c1e342cd895d9b13677d504a78d6eb4ddadd042

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pagerduty_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 26df28c8656e3d721bcfc64b5bd88e3ef727881b44062fff2d0c85745e7f0c7e
MD5 ec3e027826a218af71ac215c1fb7c635
BLAKE2b-256 203683e365efe3b602504270474b7e20cbdd65a90f1e85ce86c661f759cce76f

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