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.1.tar.gz (44.5 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.1-py3-none-any.whl (58.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pagerduty_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9d1dbbc4d04207cb94dea980902cfed7da6cd2bd321318e5a6aaa2d5de17e8ac
MD5 fccdf7e4b9ac179af2ec7fb56c9e4ed1
BLAKE2b-256 d75972c07f95e3c62c4a136fd0993eead830fc64b942fcf55064b38403af6678

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pagerduty_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cbd33798fda99f95c895d2c881766cc58879c669247f2ae8790086e69ad70f57
MD5 8c35e5630fdcc39d2f3fcf476254dbec
BLAKE2b-256 1ab737f3c2b545c0a146cec76a427672ac1798a3e663833127477e6096661b2b

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