Back to MCP Servers

PagerDuty MCP Server

PagerDuty's official local MCP server for managing incidents, services, schedules, event orchestrations, teams, users, and status pages from MCP-enabled clients.

Observability by PagerDuty API Key active
Overview

PagerDuty MCP Server is the official Model Context Protocol server from PagerDuty that exposes the PagerDuty REST API to MCP-enabled clients like Claude Desktop, Cursor, and VS Code. It lets AI agents inspect and act on incidents, services, on-call schedules, escalation policies, teams, users, event orchestrations, incident workflows, and status pages.

The server runs locally and authenticates with a PagerDuty User API Token via the PAGERDUTY_USER_API_KEY environment variable. It supports both the US (api.pagerduty.com) and EU (api.eu.pagerduty.com) API hosts. By default the server exposes only read-only tools; write operations like creating incidents, assigning responders, updating schedules, or publishing status page posts require launching with the --enable-write-tools flag.

The codebase is maintained in the official PagerDuty/pagerduty-mcp-server GitHub repo and is distributed as a Python package runnable via uvx pagerduty-mcp. It supports stdio transport and ships with a Dockerfile for containerized deployments. Support is community-based through GitHub issues and the PagerDuty community forum.

Tools

Tool Description
list_incidents List incidents in your PagerDuty account with optional filters.
get_incident Retrieve details about a specific incident.
create_incident Create a new incident (write mode).
add_incident_note Add a note to an incident (write mode).
add_incident_responders Request additional responders on an incident (write mode).
update_incident Update incident status, urgency, or assignment (write mode).
list_services List PagerDuty services.
get_service Retrieve a service by ID.
create_service Create a new service (write mode).
update_service Update an existing service (write mode).
list_schedules List on-call schedules.
get_schedule Retrieve a schedule and its layers.
create_schedule Create a new on-call schedule (write mode).
update_schedule Update a schedule (write mode).
create_schedule_override Create an override on a schedule (write mode).
list_schedule_users List users on a schedule.
list_escalation_policies List escalation policies.
get_escalation_policy Retrieve an escalation policy.
list_teams List teams in the account.
create_team Create a team (write mode).
update_team Update team details (write mode).
delete_team Delete a team (write mode).
add_team_member Add a user to a team (write mode).
remove_team_member Remove a user from a team (write mode).
list_users List users in the PagerDuty account.
get_current_user Get the user owning the API token.
list_change_events List change events.
get_change_event Retrieve a change event by ID.
list_event_orchestrations List event orchestrations.
get_event_orchestration Retrieve an event orchestration.
update_event_orchestration_router Update router rules on an orchestration (write mode).
append_event_orchestration_router_rule Append a new router rule (write mode).
list_incident_workflows List incident workflows.
get_incident_workflow Retrieve a workflow definition.
start_incident_workflow Trigger an incident workflow (write mode).
list_log_entries List log entries.
get_log_entry Retrieve a specific log entry.
list_alert_grouping_settings List alert grouping settings.
create_alert_grouping_setting Create alert grouping settings (write mode).
update_alert_grouping_setting Update alert grouping settings (write mode).
delete_alert_grouping_setting Delete alert grouping settings (write mode).
create_status_page_post Publish a post to a status page (write mode).
create_status_page_post_update Add an update to an existing status page post (write mode).
list_status_page_impacts List available status page impact levels.
list_status_page_severities List available status page severities.
list_status_page_statuses List available status page statuses.
get_status_page_post Retrieve a status page post.
Setup Guide

Prerequisites

  • A PagerDuty account
  • A PagerDuty User API Token (User Settings > API Access > Create API User Token)
  • uv / uvx installed locally, or Docker

Quick start with uvx

The fastest way to run the server is via uvx:

uvx pagerduty-mcp --enable-write-tools

Omit the --enable-write-tools flag to run in read-only mode (default).

Claude Desktop config

Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows:

{
  "mcpServers": {
    "pagerduty-mcp": {
      "command": "uvx",
      "args": ["pagerduty-mcp", "--enable-write-tools"],
      "env": {
        "PAGERDUTY_USER_API_KEY": "your-key-here",
        "PAGERDUTY_API_HOST": "https://api.pagerduty.com"
      }
    }
  }
}

EU customers should set PAGERDUTY_API_HOST to https://api.eu.pagerduty.com.

Environment variables

  • PAGERDUTY_USER_API_KEY (required): PagerDuty User API Token
  • PAGERDUTY_API_HOST (optional): defaults to https://api.pagerduty.com

Docker

docker build -t pagerduty-mcp:latest .

Run the container with PAGERDUTY_USER_API_KEY passed via -e. The Docker image uses stdio transport.

Local development

Clone the repo, install asdf plugins for Python, Node.js, and uv, then run asdf install followed by uv sync to create the virtual environment.

Use Cases
  • Triage active incidents during an on-call shift: list open incidents, pull log entries, and ask the agent to summarize root cause hypotheses.
  • Automate incident response: create incidents from chat, assign responders, add notes, and trigger incident workflows without leaving the agent.
  • Manage on-call coverage: create one-off schedule overrides when someone goes out, or rebalance schedule layers programmatically.
  • Maintain services and escalation policies: audit which services map to which teams and update configurations in bulk.
  • Publish status page posts and updates from a runbook agent during ongoing customer-impacting incidents.
Example Prompts
  • "List all triggered and acknowledged incidents on the Payments service from the last 24 hours and summarize the top issues."
  • "Add a note to incident PXXXXX saying we have engaged the database team, then page the on-call DBA."
  • "Create a one-week schedule override on the SRE Primary schedule so Alice covers Bob from Friday to next Friday."
  • "Publish a status page post titled 'Investigating elevated API latency' with major impact on the API service."
  • "Show me the current on-call user for every escalation policy on the Checkout team."
Pros
  • Official server maintained by PagerDuty in their GitHub org.
  • Broad coverage of the PagerDuty REST API: incidents, schedules, services, teams, users, event orchestrations, incident workflows, alert grouping, and status pages.
  • Safe by default: read-only mode unless --enable-write-tools is passed.
  • Supports both US and EU API hosts via PAGERDUTY_API_HOST.
Limitations
  • Local-only server, no provider-hosted remote URL, so each user must run it themselves.
  • Authenticates with a User API Token tied to one user's permissions rather than per-agent OAuth credentials.
  • Community-based support only, no formal SLA on the MCP server itself.
Alternatives
  • Opsgenie MCP server for teams on Atlassian's incident platform (community implementations exist).
  • Incident.io MCP server for incident management on incident.io.
  • Direct use of the PagerDuty REST API via a generic HTTP MCP server such as a custom OpenAPI-based MCP wrapper.