← Back to directory
P

PagerDuty MCP Server

Official
Archived
PagerDuty's official MCP server for managing incidents and on-call from your IDE or chat client
Category
Dev Tools #60 of 438
Stars
★ 79 Popular
Transport
stdio (local process) · Streamable HTTP · SSE
Runtime
Python · Docker
Credentials
API key / credential required
License
Apache-2.0
Last commit
Tools
82
64FMRS · C

An officially maintained PagerDuty MCP server covering incidents, services, schedules, escalation policies, orchestrations, teams, status pages, and webhooks, read-only by default with write access opt-in. Comprehensive functionality, but write mode and the user-scoped API key carry real permission risk, and HTTP transports lack built-in authentication, so deployment needs care.

Strongest · Documentation 17/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
14/20
Maintenance
11/20
Documentation
17/20
Setup experience
14/20
Why each score
Reliability 8/20
The manifest declares a stdio transport via uvx and a comprehensive tool list with clear read/write annotations that is consistent with the README's tool table — no visible contradictions between declared and described behavior. However, no CI workflow files or test code are present in the reviewed material, so the MCP init/tool-list handshake and error-handling paths cannot be verified as reproducible. Per the static calibration rule, this caps the score at or below 12. The lack of any executable evidence for error handling or dependency failure behavior further limits the score.
Security and permissions 14/20
The project is fairly transparent about its main risks: only read-only tools are exposed by default, write operations require an explicit --enable-write-tools flag, and the README explicitly warns that HTTP transports (streamable-http/sse) have no built-in authentication, defaults to 127.0.0.1, and should only be exposed on 0.0.0.0 behind an authenticating proxy. It also flags the plaintext-credential risk in Claude Desktop's config file. No hardcoded secrets, real tokens, or red-line issues were found. Deductions: the server uses a full-privilege PagerDuty User API Token with no scoping/least-privilege mechanism; destructive or high-impact actions (delete_team, delete_webhook_subscription, manage_incidents) rely only on the global write-tools flag with no per-action confirmation; and the embedded React UI apps add attack surface that isn't documented in terms of data flow or sandboxing.
Maintenance 11/20
The repository is Apache-2.0 licensed, not archived, and at manifest version 0.2.1, indicating an early-to-mid stage project. No commit history, release cadence, or dependency-update evidence is provided in the given material. 35 open issues against 75 stars is a notable ratio but responsiveness cannot be assessed from this data. Being an official vendor (PagerDuty) project gives clear ownership, which is a positive, but the absence of concrete release/security-response channel evidence keeps the score in the mid-range.
Documentation 17/20
The README is layered and thorough: prerequisites, multiple client integrations (Cursor, VS Code, Claude Desktop), Docker deployment, a transport-mode comparison table, an environment variable configuration table, and a full categorized tool list marking read-only vs. write tools, plus a dedicated security section on HTTP transport exposure. These are all reviewable and consistent. Gaps: no concrete tool call parameter/response examples, no disclosure of PagerDuty API rate limits, quotas, or cost implications, and troubleshooting guidance is limited to basics like restarting the client.
Setup experience 14/20
The setup path is clear: install via uvx/pip, set one required environment variable (PAGERDUTY_USER_API_KEY), with concrete config examples given for Cursor, VS Code, Claude Desktop, and Docker — few steps, broad platform coverage. Per the static calibration rule, since no CI or test files verify these configurations actually work end-to-end, the score is capped below 15. Some manual care is also needed since the write-tools flag is documented via an inline JSON comment that isn't valid JSON, which could trip up users copying the config directly.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • SREs / on-call engineers already using PagerDuty
  • DevOps teams wanting AI-assisted incident triage without leaving their IDE
  • Teams that want to query incident metrics or manage schedules conversationally

Not for

  • Teams that don't use PagerDuty
  • Organizations requiring strict least-privilege, role-scoped tokens (this server uses a user-level API token with that user's full account privileges)
  • Deployments that expose the HTTP endpoint directly on untrusted networks without an authenticating reverse proxy

Required permissions

  • Requires a PagerDuty User API Token (`PAGERDUTY_USER_API_KEY`) with that user's full privileges on the PagerDuty account
  • Only read-only tools are exposed by default; `--enable-write-tools` must be explicitly set to create, update, or delete incidents, services, teams, schedules, escalation policies, webhooks, and status page content
  • Optional `PAGERDUTY_API_HOST` to target the standard or EU regional API endpoint

Risks and side effects

  • The streamable-http and sse transports have no built-in authentication — any client able to reach the host/port can invoke tools, including write tools, using the single API key the server was started with; the README explicitly warns to keep the default loopback bind and only expose 0.0.0.0 behind an authenticating reverse proxy/gateway
  • Write tools are powerful: they can delete teams, modify escalation policies and schedules, and create status page incident posts, so mistakes can disrupt real on-call routing or customer-visible status pages
  • Creating a webhook subscription returns a signing secret that must be stored securely
  • Claude Desktop's config file requires the API key to be stored in plaintext, so file permissions matter

Setup

Before you start

Runtime:Python · Docker

PAGERDUTY_USER_API_KEY requiredsecret Required PagerDuty User API Token, generated under User Settings > API Access in your PagerDuty account.
Other optional settings (3)
PAGERDUTY_API_HOST optional Optional API base URL; defaults to https://api.pagerduty.com, use https://api.eu.pagerduty.com for EU accounts.
MCP_HOST optional Optional listen address for HTTP transports, defaults to 127.0.0.1.
MCP_PORT optional Optional listen port for HTTP transports, defaults to 8000; must be a valid integer.
  1. Generate a PagerDuty User API Token under User Settings > API Access.
  2. Make sure uv/uvx is installed globally (or use a local checkout with uv run, or the Docker image).
  3. Add a pagerduty-mcp server entry to your Cursor, VS Code, or Claude Desktop MCP config using uvx pagerduty-mcp, appending --enable-write-tools if you need write access.
  4. Set PAGERDUTY_USER_API_KEY (required) and optionally PAGERDUTY_API_HOST (use https://api.eu.pagerduty.com for EU accounts) via environment variables.
  5. Restart the client and confirm the connection by asking something like "Show me my latest incidents."
claude_desktop_config.json
{"mcpServers":{"pagerduty-mcp":{"command":"uvx","args":["pagerduty-mcp","--enable-write-tools"],"env":{"PAGERDUTY_USER_API_KEY":"your-pagerduty-api-key-here","PAGERDUTY_API_HOST":"https://api.pagerduty.com"}}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

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

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add pagerduty-mcp -e PAGERDUTY_USER_API_KEY=your-pagerduty-api-key-here -e PAGERDUTY_API_HOST=https://api.pagerduty.com -- uvx pagerduty-mcp --enable-write-tools

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The client's tool list should include tools like list_incidents; sending a prompt such as 'Show me the latest incident' and getting back PagerDuty data confirms the connection works.

Troubleshooting

  1. Verify `uv`/`uvx` is installed globally and reachable by the client (restart the terminal or IDE if needed)
  2. Confirm `PAGERDUTY_USER_API_KEY` is set correctly; for EU accounts set `PAGERDUTY_API_HOST` to `https://api.eu.pagerduty.com`
  3. If write operations (e.g., creating incidents, schedule overrides) fail silently, check that `--enable-write-tools` was passed at startup
  4. In VS Code, use the command palette's `MCP: List Servers` to check server status and restart it if needed
  5. When using an HTTP transport, verify `MCP_HOST`/`MCP_PORT` or `--host`/`--port` are set correctly and that 0.0.0.0 is not exposed directly to untrusted networks

Things to try

Once connected, you can ask your AI assistant things like:

  • Show me my latest PagerDuty incidents
  • List my event orchestrations
  • Show me the on-call manager
  • Add a note to an incident

Tools 82

create_alert_grouping_setting writes
Creates a new alert grouping setting
delete_alert_grouping_setting destructive
Deletes an alert grouping setting
get_alert_grouping_setting read-only
Retrieves a specific alert grouping setting
list_alert_grouping_settings read-only
Lists alert grouping settings with filtering
update_alert_grouping_setting writes
Updates an existing alert grouping setting
get_incident_metrics_all read-only
Retrieves aggregated incident metrics across all services
get_incident_metrics_by_service read-only
Retrieves incident metrics grouped by service
get_incident_metrics_by_team read-only
Retrieves incident metrics grouped by team
Show 74 more tools
get_responder_load_metrics read-only
Retrieves responder load metrics
get_responder_metrics read-only
Retrieves responder performance metrics
get_business_service_dependencies read-only
Retrieves dependencies for a specific business service
get_technical_service_dependencies read-only
Retrieves technical service dependencies for a business service
list_business_services read-only
Lists business services
get_change_event read-only
Retrieves a specific change event
list_change_events read-only
Lists change events with optional filtering
list_incident_change_events read-only
Lists change events related to a specific incident
list_service_change_events read-only
Lists change events for a specific service
get_event_orchestration read-only
Retrieves a specific event orchestration
get_event_orchestration_global read-only
Gets the global orchestration configuration for an event orchestration
get_event_orchestration_router read-only
Gets the router configuration for an event orchestration
get_event_orchestration_service read-only
Gets the service orchestration configuration for a specific service
list_event_orchestrations read-only
Lists event orchestrations with optional filtering
update_event_orchestration_router writes
Updates the router configuration for an event orchestration
append_event_orchestration_router_rule writes
Adds a new routing rule to an event orchestration router
create_escalation_policy writes
Creates a new escalation policy
get_escalation_policy read-only
Retrieves a specific escalation policy
list_escalation_policies read-only
Lists escalation policies
update_escalation_policy writes
Updates an existing escalation policy
add_note_to_incident writes
Adds a note to an incident
add_responders writes
Adds responders to an incident
create_incident writes
Creates a new incident
get_alert_from_incident read-only
Retrieves a specific alert from an incident
get_incident read-only
Retrieves a specific incident
get_outlier_incident read-only
Retrieves outlier incident information for a specific incident
get_past_incidents read-only
Retrieves past incidents related to a specific incident
get_related_incidents read-only
Retrieves related incidents for a specific incident
list_alerts_from_incident read-only
Lists all alerts for a specific incident with pagination
list_incident_notes read-only
Lists all notes for a specific incident
list_incidents read-only
Lists incidents
manage_incidents writes
Updates status, urgency, assignment, or escalation level
get_incident_workflow read-only
Retrieves a specific incident workflow
list_incident_workflows read-only
Lists incident workflows with optional filtering
start_incident_workflow writes
Starts a workflow instance for an incident
get_log_entry read-only
Retrieves a specific log entry by ID
list_log_entries read-only
Lists all log entries across the account with time filtering
add_team_member writes
Adds a user to a team with a specific role
create_team writes
Creates a new team
delete_team destructive
Deletes a team
get_team read-only
Retrieves a specific team
list_team_members read-only
Lists members of a team
list_teams read-only
Lists teams
remove_team_member writes
Removes a user from a team
update_team writes
Updates an existing team
get_user_data read-only
Gets the current user's data
list_users read-only
Lists users in the PagerDuty account
list_oncalls read-only
Lists on-call schedules
list_priorities read-only
Lists priorities defined in the account
create_schedule_override writes
Creates an override for a schedule
get_schedule read-only
Retrieves a specific schedule
list_schedule_users read-only
Lists users in a schedule
list_schedules read-only
Lists schedules
create_schedule writes
Creates a new on-call schedule
update_schedule writes
Updates an existing schedule
create_service writes
Creates a new service
get_service read-only
Retrieves a specific service
list_services read-only
Lists services
update_service writes
Updates an existing service
create_status_page_post writes
Creates a new post (incident or maintenance) on a status page
create_status_page_post_update writes
Adds a new update to an existing status page post
get_status_page_post read-only
Retrieves details of a specific status page post
list_status_page_impacts read-only
Lists available impact levels for a status page
list_status_page_post_updates read-only
Lists all updates for a specific status page post
list_status_page_severities read-only
Lists available severity levels for a status page
list_status_page_statuses read-only
Lists available statuses for a status page
list_status_pages read-only
Lists all status pages with optional filtering
create_webhook_subscription writes
Creates a new webhook subscription (returns signing secret)
delete_webhook_subscription destructive
Deletes a webhook subscription
get_webhook_subscription read-only
Retrieves a specific webhook subscription
list_webhook_subscriptions read-only
Lists webhook subscriptions with optional type filtering
update_webhook_subscription writes
Updates an existing webhook subscription
get_extension_schema read-only
Retrieves a specific extension schema
list_extension_schemas read-only
Lists available extension schemas (vendors)

Use cases

View, acknowledge, and resolve PagerDuty incidents from an IDE or chat client
Query and manage on-call schedules and create overrides
Create or update escalation policies, services, and teams
Generate incident metrics, responder load, and performance reports
Manage status page posts and updates
Use the built-in Incident Command Center, On-Call Manager, and other interactive apps inside VS Code

Supported clients

Claude Desktop
Cursor
VS Code

Listed from the project's documentation, not tested by this site.

Overview

PagerDuty's officially maintained local MCP (Model Context Protocol) server that exposes tools for MCP-enabled clients to interact directly with a PagerDuty account — viewing and managing incidents, services, on-call schedules, escalation policies, event orchestrations, status pages, and webhooks. By default the server only exposes read-only tools; write tools that can modify account data require explicitly passing --enable-write-tools. It also bundles interactive React-based apps (Incident Command Center, On-Call Manager, On-Call Compensation Report, Service Dependency Graph, Onboarding Wizard) that render directly inside VS Code. It supports stdio, streamable-http, and sse transports, and can be run via uvx, from a local checkout, or in Docker.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 62.9k · Tools 2 Compare with this →

Source revision dcfbdb82e1a6 Data synced 2026-10-11 Read the FMRS scoring method