← Back to directory
P

PagerDuty MCP Server

Official
PagerDuty's official MCP server for managing incidents and on-call from your IDE or chat client
GitHub source repository ↗
★ 77 Stars Category · Dev Tools Popular Source revision 7fa22e679075
64FMRS · C
Reliability
8/20
Security and permissions
14/20
Maintenance
11/20
Documentation
17/20
Setup experience
14/20

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.

Read the FMRS scoring method →

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.

Tools

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

Setup

  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"}}}}

Fit and risk

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

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

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 DesktopFull support
CursorFull support
VS CodeFull support