Connect your AI Agents to PagerDuty in minutes

Merge lets you securely connect your agents to PagerDuty and thousands of tools instantly

Available tools

get_incident_analytics

Get aggregated incident metrics across the account. Filter by date range, urgency, service, or team. Returns MTTA, MTTR, incident counts.

get_service_analytics

Get aggregated metrics broken down by service. Filter by date range, urgency, service, or team. Returns per-service MTTA, MTTR, incident counts.

list_escalation_policies

List escalation policies with optional filters. Escalation policies define who to notify and in what order. Supports pagination.

get_escalation_policy

Get an escalation policy by ID. Returns full policy details including escalation rules and targets.

create_escalation_policy

Create an escalation policy. Requires name and escalation_rules with targets (users/schedules) and delays. Use list_users or list_schedules to find target IDs.

update_escalation_policy

Update an escalation policy. Change name, description, rules, or loop count.

delete_escalation_policy

Delete an escalation policy by ID. This is permanent. Ensure no services reference this policy first.

list_incidents

List incidents with optional filters for status, urgency, service, date range. Supports pagination via offset/limit.

get_incident

Get a specific incident by ID. Returns full incident details including status, assignments, and priority.

create_incident

Create a new incident. Requires title and service_id. Use list_services to find valid service IDs. Optionally set urgency, priority, and assignments.

update_incident

Update an incident. Change status (acknowledge/resolve), urgency, priority, or reassign. Use list_priorities for valid priority IDs.

list_incident_notes

List notes on an incident. Notes are timestamped comments added by responders during incident lifecycle.

create_incident_note

Add a note to an incident. Notes help document incident response activities and findings.

list_incident_alerts

List alerts for an incident. Alerts are the underlying triggers that created or were grouped into the incident.

list_incident_log_entries

List log entries for an incident. Shows the timeline of actions taken during incident response.

list_priorities

List priority levels configured in PagerDuty. Priorities are used when creating or updating incidents.

list_tags

List tags with optional name filter. Tags can be attached to users, teams, and escalation policies for organization.

create_tag

Create a new tag. Tags help organize users, teams, and escalation policies.

list_log_entries

List log entries across the account. Log entries record all actions in PagerDuty (triggers, acknowledgements, escalations, etc.).

list_maintenance_windows

List maintenance windows. Maintenance windows temporarily disable incident creation for specified services.

get_maintenance_window

Get a maintenance window by ID. Returns full details including services and time range.

create_maintenance_window

Create a maintenance window. Temporarily disables incident creation for specified services during the time range.

update_maintenance_window

Update a maintenance window. Change time range, description, or services.

delete_maintenance_window

Delete a maintenance window by ID. This is permanent and cannot be undone.

list_audit_records

List audit records across the account. Tracks changes to all PagerDuty resources for compliance and security review.

list_oncalls

List who is currently on-call. Filter by schedule, escalation policy, user, or time range. Use to find current responders.

list_schedules

List on-call schedules with optional name filter. Schedules define who is on-call at any given time. Supports pagination.

get_schedule

Get a schedule by ID with rendered on-call entries. Optionally specify since/until for the rendered time range.

create_schedule

Create an on-call schedule. Requires name, time_zone, and schedule_layers. Each layer defines a rotation with users, start time, and turn length.

update_schedule

Update a schedule. Change name, description, time zone, or schedule layers.

delete_schedule

Delete a schedule by ID. This is permanent. Ensure no escalation policies reference this schedule first.

list_services

List services with optional filters. Services represent applications or components that generate incidents. Supports pagination via offset/limit.

get_service

Get a specific service by ID. Returns full service details including escalation policy and alert settings.

create_service

Create a new service. Requires name and escalation_policy_id. Use list_escalation_policies to find valid IDs.

update_service

Update a service. Change name, description, escalation policy, or alert settings.

delete_service

Delete a service by ID. This is permanent and cannot be undone. All associated incidents will remain.

list_teams

List teams with optional name filter. Teams group users for incident assignment and escalation. Supports pagination.

get_team

Get a specific team by ID. Returns team details including parent team relationship.

create_team

Create a new team. Requires a name. Optionally set description and parent team for nesting.

update_team

Update a team. Change name, description, or parent team.

delete_team

Delete a team by ID. This is permanent. Reassign users and escalation policies before deleting.

list_users

List users with optional filters by name, email, or team. Supports pagination via offset/limit.

get_user

Get a specific user by ID. Returns full user details including role, teams, and contact methods.

create_user

Create a new user. Requires name and email. Optionally set role, time zone, and job title.

update_user

Update a user. Change name, email, role, time zone, or other profile fields.

delete_user

Delete a user by ID. This is permanent. The user must not be on-call or have pending incidents.

validate_credential

Validate PagerDuty credentials by testing API access. Used during credential setup to verify authentication is working correctly.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's PagerDuty  MCP server

FAQs on using Merge's PagerDuty  MCP server

What is a PagerDuty MCP?

It's an MCP server that connects your agents to PagerDuty via tools. Your agents can invoke these tools to create and manage incidents, check on-call schedules, update escalation policies, track response metrics, and more.

PagerDuty offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.

How can I use the PagerDuty MCP server?

The use cases naturally depend on the agent you've built, but here are a few common ones:

  • Automated incident creation from alerts: When a Datadog monitor fires, an agent calls <code class="blog_inline-code">create_incident</code> to open a new PagerDuty incident pre-populated with the alert details, assigns it according to the relevant escalation policy, and posts the incident link to the team's Slack channel
  • On-call handoff briefing: At the start of each shift, an agent calls <code class="blog_inline-code">list_oncalls</code> to identify the incoming responder, calls <code class="blog_inline-code">list_incidents</code> filtered to open status, and posts a structured summary of active incidents and their current severity to the on-call Slack channel
  • Incident escalation on timeout: When an incident has been open without acknowledgment for more than 30 minutes, an agent calls <code class="blog_inline-code">update_incident</code> to raise its urgency and calls <code class="blog_inline-code">create_incident_note</code> to log the escalation, ensuring the right team is looped in before the issue compounds
  • Postmortem data pull: After an incident is resolved, an agent calls <code class="blog_inline-code">list_incident_log_entries</code> to retrieve the full response timeline and calls <code class="blog_inline-code">get_incident_analytics</code> for MTTA and MTTR metrics, giving the on-call team structured data to kick off a postmortem without manually pulling records

What are popular tools for PagerDuty's MCP server?

Here are some of the most commonly used tools:

  • <code class="blog_inline-code">list_incidents</code> retrieves incidents filterable by status, urgency, service, or team. Good for agents that need a current view of active incidents before taking an action or generating a shift briefing
  • <code class="blog_inline-code">create_incident</code> opens a new incident in PagerDuty with a specified title, service, urgency, and escalation policy. Use this when an agent needs to programmatically trigger incident response from an alert or anomaly detected in another system
  • <code class="blog_inline-code">update_incident</code> modifies an existing incident's status, urgency, or assigned responder. Call this when an agent needs to escalate, acknowledge, or resolve an incident in response to a condition met outside PagerDuty
  • <code class="blog_inline-code">create_incident_note</code> appends a note to an incident's activity timeline. Helpful when an agent needs to log what it observed, what action it took, or what context it gathered from another tool during an active response
  • <code class="blog_inline-code">list_oncalls</code> returns who is currently on call across one or more schedules. Use this when an agent needs to identify the right responder before routing an alert, creating an incident, or sending a notification
  • <code class="blog_inline-code">get_incident_analytics</code> retrieves aggregated response metrics like MTTA and MTTR for a service or team over a time range. Useful for agents generating weekly reliability reports or tracking whether on-call response times are trending in the right direction

What makes Merge Agent Handler's PagerDuty MCP server better than alternative PagerDuty MCP servers?

Here is what distinguishes Merge Agent Handler's PagerDuty MCP server from building your own or relying on a standalone option:

  • Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For PagerDuty, this means you can prevent on-call contact details, incident descriptions containing customer data, and service configurations from being exposed even when the agent has broad read access
  • Managed authentication and credentials: Merge stores and refreshes PagerDuty credentials on your behalf. You never expose API keys to an agent directly or rewire authentication when credentials rotate across team members
  • Real-time observability and audit trail: Every tool call made against PagerDuty is logged with timestamp, tool name, input parameters, and response metadata. You can audit exactly which incidents an agent created, updated, or escalated without adding any custom instrumentation to your pipeline
  • Tool Packs and controlled access: Tool Packs let you bundle specific PagerDuty tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An incident response agent can combine PagerDuty tools with Datadog log search and Guru runbook retrieval in one Tool Pack, getting exactly the tools it needs, nothing more

How can I start using Merge Agent Handler's PagerDuty MCP server?

You can take the following steps:

1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).

2. Create a new Tool Pack, then find and enable the PagerDuty connector. Choose which tools to include: enable read tools like <code class="blog_inline-code">list_incidents</code> and <code class="blog_inline-code">list_oncalls</code> for monitoring use cases, or add write tools like <code class="blog_inline-code">create_incident</code> and <code class="blog_inline-code">update_incident</code> if your agent needs to open or escalate incidents.

3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.

4. From the Registered User detail page, authenticate PagerDuty by completing the OAuth flow. Merge stores and manages the credentials going forward.

5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.

6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your PagerDuty tools are now accessible through that endpoint.

Explore other MCP servers built and managed by Merge

jira_service_management
Jira Service Management
kintone
Kintone
klaviyo
Klaviyo
linear
Linear
linkedin
LinkedIn
looker
Looker
lucidchart
Lucidchart
make
Make
microsoft_teams
Microsoft Teams
microsoft_teams_gcc
Microsoft Teams GCC High
miro
Miro
monday
Monday.com
n8n
n8n
netsuite
NetSuite
notion
Notion
npi_registry
NPI Registry
onedrive
OneDrive
onenote
OneNote
oracle_hcm
Oracle HCM
oracle_sales_cloud
Oracle Sales Cloud
oracle_scm
Oracle SCM
oura
Oura
outlook
Outlook
paypal
PayPal

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now