MCP Directory

PagerDuty MCP

Official

PagerDuty's official MCP server — agents triage incidents, manage on-call schedules, and query services from your IDE.

Unverified
stdio (local)
API key
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
uvx pagerduty-mcp

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "pagerduty-mcp": {
      "command": "uvx",
      "args": [
        "pagerduty-mcp"
      ],
      "env": {
        "PAGERDUTY_USER_API_KEY": "<your-pagerduty-user-api-token>"
      }
    }
  }
}

Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • uv installed globally — the standard config launches the server with uvx
  • A PagerDuty User API Token: profile icon → My Profile → User Settings → API Access → Create API User Token
  • EU-hosted accounts: PAGERDUTY_API_HOST=https://api.eu.pagerduty.com in env

About PagerDuty MCP

PagerDuty MCP is a thin but complete layer over the PagerDuty REST API, published to PyPI as pagerduty-mcp and typically launched with uvx so nothing is installed permanently. Every tool maps to a documented API call and carries a read-only flag; the server refuses to register write tools unless you pass --enable-write-tools, so the default posture is safe for exploration. Configuration is two environment variables: the User API Token and an optional PAGERDUTY_API_HOST for EU data residency.

The tool surface is organized by domain: incidents (list, get, manage status/urgency/assignment, notes, responders, related and outlier incidents), schedules and on-call (including overrides), services, teams, users, escalation policies, event orchestrations (down to router rules), webhooks, status pages, change events, log entries, and alert grouping settings. That breadth is the point — during an incident an agent can pull the alert payload, past similar incidents, recent change events, and the on-call chain without you tabbing into the web UI.

A distinctive extra is the embedded MCP Apps layer: React UIs served as MCP resources, so VS Code can render an Incident Command Center, On-Call Manager with override CRUD, an EU-Working-Time-Directive-aware compensation report, and a service dependency graph — all in-process, no separate HTTP server. Prompts like "Show me the incident command center" open them.

Trade-offs: auth is a personal User API Token rather than a scoped OAuth app, so the agent inherits everything that user can do (freemium accounts also limit token permissions by role). There is no hosted/remote endpoint — it runs on your machine (uvx or Docker with stdio) — and support is community-based via GitHub issues even though the org is official.

Tools & capabilities (71)

list_incidents

Lists incidents with filtering

get_incident

Retrieves a specific incident

manage_incidents

Updates incident status, urgency, assignment, or escalation level (write)

create_incident

Creates a new incident (write)

add_note_to_incident

Adds a note to an incident (write)

add_responders

Adds responders to an incident (write)

list_incident_notes

Lists all notes for a specific incident

list_alerts_from_incident

Lists all alerts for an incident with pagination

get_alert_from_incident

Retrieves a specific alert from an incident

get_outlier_incident

Outlier incident information for a specific incident

get_past_incidents

Past incidents related to a specific incident

get_related_incidents

Related incidents for a specific incident

get_incident_workflow

Retrieves a specific incident workflow

list_incident_workflows

Lists incident workflows with filtering

start_incident_workflow

Starts a workflow instance for an incident (write)

list_oncalls

Lists on-call entries across schedules

list_schedules

Lists schedules

get_schedule

Retrieves a specific schedule

list_schedule_users

Lists users in a schedule

create_schedule

Creates a new on-call schedule (write)

update_schedule

Updates an existing schedule (write)

create_schedule_override

Creates an override for a schedule (write)

list_escalation_policies

Lists escalation policies

get_escalation_policy

Retrieves a specific escalation policy

list_services

Lists services

get_service

Retrieves a specific service

create_service

Creates a new service (write)

update_service

Updates an existing service (write)

list_teams

Lists teams

get_team

Retrieves a specific team

create_team

Creates a new team (write)

update_team

Updates an existing team (write)

delete_team

Deletes a team (write)

list_team_members

Lists members of a team

add_team_member

Adds a user to a team with a role (write)

remove_team_member

Removes a user from a team (write)

list_users

Lists users in the account

get_user_data

Gets the current user's data

list_event_orchestrations

Lists event orchestrations with filtering

get_event_orchestration

Retrieves a specific event orchestration

get_event_orchestration_global

Global orchestration configuration for an orchestration

get_event_orchestration_router

Router configuration for an event orchestration

get_event_orchestration_service

Service orchestration configuration for a service

update_event_orchestration_router

Updates an orchestration's router configuration (write)

append_event_orchestration_router_rule

Adds a routing rule to an orchestration router (write)

list_change_events

Lists change events with filtering

get_change_event

Retrieves a specific change event

list_incident_change_events

Change events related to a specific incident

list_service_change_events

Change events for a specific service

list_log_entries

Lists account-wide log entries with time filtering

get_log_entry

Retrieves a specific log entry by ID

list_alert_grouping_settings

Lists alert grouping settings with filtering

get_alert_grouping_setting

Retrieves a specific alert grouping setting

create_alert_grouping_setting

Creates an alert grouping setting (write)

update_alert_grouping_setting

Updates an alert grouping setting (write)

delete_alert_grouping_setting

Deletes an alert grouping setting (write)

list_status_pages

Lists status pages with filtering

get_status_page_post

Details of a specific status page post

create_status_page_post

Creates an incident/maintenance post on a status page (write)

create_status_page_post_update

Adds an update to a status page post (write)

list_status_page_post_updates

Lists updates for a status page post

list_status_page_impacts

Lists available impact levels for a status page

list_status_page_severities

Lists available severity levels for a status page

list_status_page_statuses

Lists available statuses for a status page

list_webhook_subscriptions

Lists webhook subscriptions with type filtering

get_webhook_subscription

Retrieves a specific webhook subscription

create_webhook_subscription

Creates a webhook subscription, returns signing secret (write)

update_webhook_subscription

Updates a webhook subscription (write)

delete_webhook_subscription

Deletes a webhook subscription (write)

list_extension_schemas

Lists available extension schemas (vendors)

get_extension_schema

Retrieves a specific extension schema

What this server can do

PagerDuty MCP provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Triage a page without leaving the IDE: pull the incident, its alerts, notes, change events, and similar past incidents, then acknowledge or reassign
  • Ask who is on call right now across schedules and create an override for a shift swap
  • Edit event orchestration routing rules through review-able tool calls instead of clicking through the UI
  • Post and update status page comms during an outage while the agent gathers timeline data

Quick setup

  1. 1Create a User API Token in PagerDuty: profile icon → My Profile → User Settings → API Access → Create API User Token
  2. 2Install uv globally so uvx is on PATH (brew install uv, or the installer at docs.astral.sh/uv)
  3. 3Add the server to your MCP client: command uvx, args ["pagerduty-mcp"], env PAGERDUTY_USER_API_KEY
  4. 4Append --enable-write-tools to args only if the agent should create/modify incidents, schedules, teams, or status pages
  5. 5Restart the client and test with "Show me my latest PagerDuty incidents"

Security notes

The server acts with the full permissions of whichever user's API token you configure; it starts read-only and only exposes write tools when launched with --enable-write-tools, and Claude Desktop stores the token in plaintext config, so restrict file permissions. EU accounts must set PAGERDUTY_API_HOST=https://api.eu.pagerduty.com or requests go to the US API.

PagerDuty MCP FAQ

Is the PagerDuty MCP server official and free?

Yes — it lives in PagerDuty's GitHub org under an Apache-2.0 license and costs nothing beyond your PagerDuty subscription, since it just calls the normal REST API with your User API Token. Support is community-based (GitHub issues and the PagerDuty forum), not part of paid support.

Can it modify or delete things in my PagerDuty account?

Not unless you opt in. The server starts in read-only mode; write tools like create_incident, manage_incidents, delete_team, and status page posts only register when you launch it with the --enable-write-tools flag.

Does it work with EU-hosted PagerDuty accounts?

Yes — set PAGERDUTY_API_HOST=https://api.eu.pagerduty.com in the env block. Without it the server defaults to https://api.pagerduty.com and EU tokens will fail to authenticate.

Alternatives to PagerDuty MCP

Compare all alternatives →

Official Elastic server: list indices, read mappings, and search with Query DSL.

Verified
stdio (local)
API key
TypeScript
5 tools
Updated 4 months agoRepo

Official PostHog server: product analytics, feature flags, experiments, error tracking and SQL.

Verified
stdio (local)
API key
TypeScript
12 tools
Updated 5 months agoRepo

Run PromQL queries and analyze Prometheus metrics from any MCP client.

Verified
stdio (local)
No auth
Python
6 tools
Updated 2 months agoRepo