PagerDuty MCP Server

Connect AI tools to PagerDuty with MCP to securely manage incidents, services and on-call schedules

The PagerDuty Model Context Protocol (MCP) Server is an open standard that enables AI assistants (like Claude Desktop, Cursor, or VS Code) to interact securely with your PagerDuty account. This integration allows AI tools to retrieve incident data, manage services, and update on-call schedules on your behalf.

Integration Options

You can connect your Agents to PagerDuty using the PagerDuty-hosted MCP server. A managed service with the latest features at https://mcp.pagerduty.com/mcp. No setup, nothing to install.

⚠️

Local MCP Server deprecation notice

The self-hosted MCP server is now deprecated and its GitHub repo is archived and read-only.

Use PagerDuty-hosted MCP server to get the latest features.

Requirements

Before setting up either MCP option, ensure you have:

  • PagerDuty Account Access: A valid PagerDuty account with Advanced Permissions.
  • API Key: A PagerDuty User API key, or an OAuth client if you are using the PagerDuty-hosted server.
  • MCP Client: An MCP-compatible AI assistant or application (e.g., Claude Desktop, VS Code, Cursor). For the PagerDuty-hosted server, the client must support remote (HTTP-based) MCP servers.

PagerDuty-hosted MCP Server

The PagerDuty-hosted MCP server lets you connect your AI assistant to PagerDuty without installing anything locally. It supports both OAuth and API keys for authentication which makes it straightforward to roll out across teams and enterprise environments.

Unlike self-hosted servers, which run as a subprocess on your machine, the PagerDuty-hosted server:

  • Is hosted and maintained by PagerDuty
  • Exposes tools via a remote HTTP endpoint
  • Requires no local Python installation or uvx

Step 1: Choose an Authorization Method

Both user-level and account-level credentials are supported. Note that some tools and filters require user-level authentication — for example, scoping list_incidents by teams or assigned.

To authorize with an API Key, provide a custom header:

Authorization: Token token=<your-api-key-here>

To authorize with OAuth, you have two options:

  • Provide static client credentials for OAuth metadata discovery.
  • Provide a token directly via a custom header: Authorization: Bearer <your-bearer-token-here>. For example, to use an App OAuth Token obtained via the client-credentials grant.

For more on creating OAuth clients for your PagerDuty account, see OAuth Functionality on the PagerDuty Developer Portal.

🚧

Dynamic Client Registration

PagerDuty does not currently support Dynamic Client Registration (DCR).

Step 2: Configure Your MCP Client

📘

EU Service Region Accounts

PagerDuty-hosted configurations on EU accounts should use: <https://mcp.eu.pagerduty.com/mcp>

Cursor

Add the following to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (current project only):

{
  "mcpServers": {
    "pagerduty": {
      "url": "https://mcp.pagerduty.com/mcp"
    }
  }
}

Visual Studio Code

Add the following to your settings.json.

With OAuth — Visual Studio Code prompts you for the OAuth client credentials when the server starts, and provides the redirect URIs you need:

{
  "mcp": {
    "servers": {
      "pagerduty": {
        "type": "http",
        "url": "https://mcp.pagerduty.com/mcp"
      }
    }
  }
}

With an API key — Visual Studio Code prompts you for the key on first use and stores it securely:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "pagerduty-api-key",
        "description": "PagerDuty API Key",
        "password": true
      }
    ],
    "servers": {
      "pagerduty": {
        "type": "http",
        "url": "https://mcp.pagerduty.com/mcp",
        "headers": {
          "Authorization": "Token token=${input:pagerduty-api-key}"
        }
      }
    }
  }
}

Claude Code

With OAuth, you need to use a static port in the redirect URL — for example http://localhost:8080/callback — and then provide that port during configuration:

MCP_CLIENT_SECRET=YOUR_CLIENT_SECRET claude mcp add-json pagerduty '{"type":"http","url":"https://mcp.pagerduty.com/mcp","oauth":{"clientId":"YOUR_CLIENT_ID","callbackPort":8080}}' --client-secret

With an API key:

PAGERDUTY_API_KEY=YOUR_API_KEY claude mcp add-json pagerduty '{"type":"http","url":"https://mcp.pagerduty.com/mcp","headers":{"Authorization":"Token token=${PAGERDUTY_API_KEY}"}}'

Tools available

ToolActions
browse_incidentslist, get, list_alerts, get_alert, list_notes, context (related|past|outlier), list_change_events, list_workflows, get_workflow
manage_incidentscreate, update, add_note, add_responders, start_workflow
browse_serviceslist, get
manage_servicescreate, update
browse_scheduleslist, get, list_users, list_oncalls
manage_schedulescreate, update, create_override
browse_teamslist, get, list_members
manage_teamscreate, update, delete, add_member, remove_member
browse_event_orchestrationslist, get, get_router, get_service, get_global
manage_event_orchestrationsupdate_router, append_router_rule
browse_alert_groupinglist, get
manage_alert_groupingcreate, update, delete
browse_status_pageslist, list_severities, list_impacts, list_statuses, get_post, list_post_updates
manage_status_pagescreate_post, create_post_update
browse_escalation_policieslist, get
browse_userslist, get
browse_change_eventslist, get, list_service
browse_activitylist_log_entries, get_log_entry

Limitations

  • Tool filtering is not directly available for the PagerDuty-hosted server at this point in time. You can, however, limit which tools succeed by using a Scoped OAuth client.

Troubleshooting

If you cannot connect to the PagerDuty-hosted server:

  1. Verify that your authorization is still valid, and re-generate it if not. See Authentication for more details.
  2. Check that your MCP client supports remote (HTTP-based) MCP connections.
  3. Consult the PagerDuty Developer Portal for the latest endpoint URLs and requirements.

API Reference

Explore the PagerDuty MCP API specification on the PagerDuty Developer Portal.



Did this page help you?