PagerDuty MCP Server

by wpfleger96

7 stars
271 downloads
Not rated
GitHub

About

MCP server exposing PagerDuty incidents, services, schedules, and on-calls to AI agents — read, acknowledge, resolve, with OAuth and API key auth

Details

Author
wpfleger96
GitHub stars
7
Downloads
271
Categories
AI

- Exposes PagerDuty API tools for LLMs
- Read and write operations on incidents, services, teams, users
- Optional include parameter to reduce token usage
- Consistent response format with metadata and optional error
- Automatic pagination and rate limit handling
- Supports API token, OAuth, and per-request token authentication

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name PagerDuty MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via uvx pagerduty-mcp-server and configure authentication using a PagerDuty API token, OAuth 2.0 PKCE, or the X-PagerDuty-Token HTTP header. Use with Claude/Cursor by adding the MCP configuration, or run as a standalone server with uv run pagerduty-mcp-server.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "pagerduty mcp server": {
            "pagerduty-mcp-server": {
                "command": "uv",
                "args": [
                    "sync"
                ]
            }
        }
    }
}

McpServers

{
    "pagerduty-mcp-server": {
        "command": "uv",
        "args": [
            "sync"
        ]
    }
}

PagerDuty MCP Server

A server that exposes PagerDuty API functionality to LLMs. This server is designed to be used programmatically, with structured inputs and outputs.

<a href="https://glama.ai/mcp/servers/@wpfleger96/pagerduty-mcp-server">
PagerDuty Server MCP server
</a>

PyPI Downloads
Python Versions
GitHub Contributors
Lines of Code
PyPI version
License

Overview

The PagerDuty MCP Server provides a set of tools for interacting with the PagerDuty API. These tools are designed to be used by LLMs to perform various operations on PagerDuty resources such as incidents, services, teams, and users.

Getting Started

1. Initialize your local Python environment:

cd pagerduty-mcp-server
brew install uv
uv sync

2. Configure authentication (see Authentication below).

Authentication

Priority: X-PagerDuty-Token HTTP header > PAGERDUTY_API_TOKEN environment variable > OAuth 2.0 PKCE

Option 1: X-PagerDuty-Token Header (Platform Integration)

When running as part of a platform that injects per-request credentials, the server reads the X-PagerDuty-Token HTTP header. This takes highest priority and does not require any local configuration.

Option 2: API Token (Recommended for Most Users)

Set the PAGERDUTY_API_TOKEN environment variable, or add it to a .env file in the project root. The server will automatically load environment variables from the .env file if present.

Environment variable:

export PAGERDUTY_API_TOKEN=your_api_token_here

.env file (recommended):

echo "PAGERDUTY_API_TOKEN=your_api_token_here" > .env

Option 3: OAuth 2.0 PKCE (Local Interactive Use)

OAuth is available for local standalone usage. It opens a browser for authentication and stores tokens securely in the OS keyring. OAuth is opt-in — it only activates when PAGERDUTY_CLIENT_ID is set and no API token is present.

Setup:
1. Register a PagerDuty OAuth application at Integrations → Developer Tools → My Apps.
2. Set the required scope to read write.
3. Set the redirect URI to http://localhost:5173/oauth/pagerduty (default port).
4. Set the PAGERDUTY_CLIENT_ID environment variable to your application's client ID.

Optional configuration:
- Set PAGERDUTY_CLIENT_SECRET to enable token refresh (confidential client).
- Set PAGERDUTY_OAUTH_CALLBACK_PORT to override the default callback port (5173).

Usage

Claude/Cursor

{
  "mcpServers": {
    "pagerduty-mcp-server": {
      "command": "uvx",
      "args": ["pagerduty-mcp-server"],
      "env": {
          "PAGERDUTY_API_TOKEN": "<PAGERDUTY_API_TOKEN>"
      }
    }
  }
}

As Standalone Server

uv run pagerduty-mcp-server

Available Tools

Read Tools

- get_escalation_policies — List or get details for escalation policies - get_incidents — List or get details for incidents (supports filtering by status, urgency, service, team, and time range) - get_oncalls — List on-call entries for a time range - get_schedules — List or get details for schedules - get_services — List or get details for services - get_teams — List or get details for teams - get_users — List or get details for users - list_users_oncall — List users on call for a specific schedule - build_user_context — Build a context object for the current authenticated user

Write Tools

- acknowledge_incident — Acknowledge an incident (signals active investigation) - resolve_incident — Resolve an incident (stops further escalations) - add_incident_note — Add a note to an incident (for recording investigation progress or context)

The include Parameter

Most read tools accept an optional include parameter — a list of field names to return. When specified, only those fields are included in each response object, which reduces token usage in LLM contexts.

```python

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.