Get started with PagerDuty MCP server in Azure SRE Agent
Connect Azure SRE Agent to PagerDuty's incident management platform using the official PagerDuty MCP server for incidents, on-call schedules, services, escalation policies, and more.
Overview
The PagerDuty MCP server is a cloud-hosted bridge between your PagerDuty account and Azure SRE Agent. Once configured, it enables real-time interaction with incidents, on-call schedules, services, teams, escalation policies, event orchestration, incident workflows, status pages, and more through natural language. All actions respect the permissions of the user account associated with the API token.
The server uses Streamable HTTP transport with a single Authorization custom header for authentication. Azure SRE Agent connects directly to the PagerDuty-hosted endpoint—no npm packages, local proxies, or container deployments are required. Since there is no dedicated PagerDuty connector type in the portal, you use the generic MCP server (User provided connector) option and configure the authorization header manually.
Key capabilities
| Area | Capabilities |
|---|---|
| Incidents | Create, list, manage incidents; add notes, responders; view alerts; find related/outlier/past incidents |
| Services | Create, list, update, and get service details |
| On-Call & Schedules | List on-calls, manage schedules, create overrides, list schedule users |
| Escalation Policies | List and get escalation policy details |
| Teams & Users | Create, update, delete teams; manage team members; list and get user data |
| Alert Grouping | Create, update, delete, and list alert grouping settings |
| Change Events | List and get change events by service or incident |
| Event Orchestration | Manage event orchestration routers, global rules, and service rules |
| Incident Workflows | List, get, and start incident workflows |
| Log Entries | List and get log entry details |
| Status Pages | Create and manage status page posts, updates, impacts, and severities |
[!NOTE] This is the official PagerDuty-hosted MCP server. It exposes 60+ tools covering incidents, services, on-call, escalation, event orchestration, incident workflows, status pages, and more. The hosted service at
mcp.pagerduty.comexposes all tools (both read and write) by default. Tool availability depends on your PagerDuty plan and user account permissions.
Prerequisites
- Azure SRE Agent resource deployed in Azure
- PagerDuty account with an active plan
- PagerDuty user account with appropriate permissions
- User API Token: Created from User Profile > User Settings > API Access
Step 1: Create a PagerDuty API token
Generate the User API Token needed to authenticate with the PagerDuty MCP server. PagerDuty uses a single token for both authentication and authorization—the token inherits all permissions of the user account that creates it.
Navigate to API Access in PagerDuty
- Log in to your PagerDuty account
- For EU accounts, use
https://app.eu.pagerduty.com/ - Select your user avatar in the top-right corner of the navigation bar
- Select My Profile from the dropdown menu
- Select the User Settings tab at the top of your profile page
- Scroll down to the API Access section
Create a User API Token
- In the API Access section, select Create API User Token
- Enter a descriptive name for the token (e.g.,
sre-agent-mcp) - Select Create Token
- Copy the token value immediately—it is displayed only once and cannot be retrieved later
The token format will look like: u+xxxxxxxxxxxxxxxx
[!IMPORTANT] Store the API token securely. If you lose it, you must delete the old token and create a new one. Navigate back to My Profile > User Settings > API Access to manage your tokens.
Choose the right account for token creation
The API token inherits all permissions of the PagerDuty user account that creates it. Consider these options:
| Account type | When to use | Permissions |
|---|---|---|
| Personal account | Quick testing and development | Full permissions of your user role |
| Service account (recommended for production) | Production deployments | Create a dedicated PagerDuty user with a restricted role |
| Read-only account | Monitoring-only use cases | Create a user with the Observer or Restricted Access role |
[!TIP] For production use, create a dedicated PagerDuty user with a Responder or Observer role (depending on whether write access is needed), then generate the token from that account. This ensures the integration continues to work if team members leave the organization and limits the blast radius of a compromised token.
[!NOTE] PagerDuty also supports Account-level API keys (created under Integrations > Developer Tools > API Access Keys), but the MCP server requires a User API Token, not an account-level key.
Step 2: Add the MCP connector
Connect the PagerDuty MCP server to your SRE Agent using the portal. Since there is no dedicated PagerDuty connector type, you use the generic MCP server (User provided connector) option.
Determine your regional endpoint
Select the endpoint URL that matches your PagerDuty account's service region:
| Region | Endpoint URL |
|---|---|
| US (default) | https://mcp.pagerduty.com/mcp |
| EU | https://mcp.eu.pagerduty.com/mcp |
Using the Azure portal
- In Azure portal, navigate to your SRE Agent resource
- Select Builder > Connectors
- Select Add connector
- Select MCP server (User provided connector) and select Next

- Configure the connector:
| Field | Value |
|---|---|
| Name | pagerduty-mcp |
| Connection type | Streamable-HTTP |
| URL | https://mcp.pagerduty.com/mcp (use EU endpoint for EU service region) |
| Authentication | Custom headers |
| Authorization | Token <your-pagerduty-api-token> |
- Select Next to review

- Select Add connector
[!IMPORTANT] The token format in the
Authorizationheader must beToken <your-api-token>(notBearer). For example:Token u+abcdefg123456789. Using the wrong format will result in401 Unauthorizederrors.[!NOTE] Once the connector shows Connected status, the PagerDuty MCP tools are automatically available to your agent. You can verify by checking the tools list in the connector details.

Step 3: Create a PagerDuty subagent (optional)
Create a specialized subagent to give the AI focused PagerDuty incident management expertise and better prompt responses.
- Navigate to Builder > Subagents
- Select Add subagent
- Paste the following YAML configuration:
api_version: azuresre.ai/v1
kind: AgentConfiguration
metadata:
owner: your-team@contoso.com
version: "1.0.0"
spec:
name: PagerDutyIncidentExpert
display_name: PagerDuty Incident Expert
system_prompt: |
You are a PagerDuty incident management expert with access to incidents,
services, on-call schedules, escalation policies, teams, event orchestration,
incident workflows, status pages, and more via the PagerDuty MCP server.
## Capabilities
### Incidents
- List and search incidents with `list_incidents`
- Get incident details with `get_incident`
- Create new incidents with `create_incident`
- Manage incidents (update status, urgency, assignment, escalation) with `manage_incidents`
- Add notes with `add_note_to_incident` and list notes with `list_incident_notes`
- Add responders with `add_responders`
- View alerts from incidents with `list_alerts_from_incident` and `get_alert_from_incident`
- Find related incidents with `get_related_incidents`
- Find similar past incidents with `get_past_incidents`
- Identify outlier incidents with `get_outlier_incident`
### Services
- List all services with `list_services`
- Get service details with `get_service`
- Create new services with `create_service`
- Update service configuration with `update_service`
### On-Call & Schedules
- List current on-calls with `list_oncalls`
- Get schedule details with `get_schedule`
- List all schedules with `list_schedules`
- List users in a schedule with `list_schedule_users`
- Create and update schedules with `create_schedule` and `update_schedule`
- Create schedule overrides with `create_schedule_override`
### Escalation Policies
- List escalation policies with `list_escalation_policies`
- Get escalation policy details with `get_escalation_policy`
### Teams & Users
- List teams with `list_teams` and get team details with `get_team`
- Create, update, and delete teams
- Manage team members with `add_team_member` and `remove_team_member`
- List users with `list_users` and get user data with `get_user_data`
### Event Orchestration
- List and get event orchestrations
- Manage orchestration routers, global rules, and service rules
- Append rules to event orchestration routers
### Incident Workflows
- List and get incident workflows
- Start incident workflows with `start_incident_workflow`
### Status Pages
- Create and manage status page posts and updates
- List status page impacts, severities, and statuses
### Log Entries
- List and get log entry details for audit trails
### Alert Grouping
- Create, update, and manage alert grouping settings
### Change Events
- List and get change events, including by service or incident
## Best Practices
When investigating incidents:
- Start with `list_incidents` to find active or recent incidents
- Use `get_incident` for full details including status and assignments
- Check `list_alerts_from_incident` to see triggering alerts
- Use `get_related_incidents` to find correlated issues
- Use `get_past_incidents` to find similar historical incidents
- Check `list_oncalls` to identify who is currently on-call
- Review `list_incident_notes` for any existing investigation notes
When managing on-call:
- Use `list_oncalls` to see current on-call assignments
- Use `get_schedule` and `list_schedule_users` for schedule details
- Use `create_schedule_override` for temporary coverage changes
When handling errors:
- If 401 errors occur, explain the token may be invalid or expired
- If 403 errors occur, explain which permissions may be missing
- Suggest the user verify their API token is valid and has sufficient permissions
mcp_connectors:
- pagerduty-mcp
handoffs: []
- Select Save
[!NOTE] The
mcp_connectorsfield references the connector name you created in Step 2. This gives the subagent access to all tools provided by the PagerDuty MCP server.
Step 4: Add a PagerDuty skill (optional)
Skills provide contextual knowledge and best practices that help agents use tools more effectively. Create a PagerDuty skill to give your agent expertise in incident management, on-call scheduling, and escalation workflows.
- Navigate to Builder > Skills
- Select Add skill
- Paste the following skill configuration:
api_version: azuresre.ai/v1
kind: SkillConfiguration
metadata:
owner: your-team@contoso.com
version: "1.0.0"
spec:
name: pagerduty_incident_management
display_name: PagerDuty Incident Management
description: |
Expertise in PagerDuty's incident management platform including incidents,
on-call schedules, services, teams, escalation policies, event orchestration,
incident workflows, and status pages. Use for managing incidents, checking
on-call status, investigating alerts, escalating issues, and navigating
PagerDuty data via the PagerDuty MCP server.
instructions: |
## Overview
PagerDuty is an incident management and on-call scheduling platform for
operations teams. The PagerDuty MCP server enables natural language interaction
with your PagerDuty account data including incidents, services, schedules,
teams, escalation policies, and more.
**Authentication:** A single `Authorization` custom header with the format
`Token <api-token-value>`. All actions respect the permissions of the user
account associated with the token.
**Regional endpoints:** The hosted MCP server has two endpoints—US
(`mcp.pagerduty.com`) and EU (`mcp.eu.pagerduty.com`). Ensure the connector
URL matches your PagerDuty service region.
## Incident Management
Use `list_incidents` to search and filter incidents, `get_incident` for
details, and `manage_incidents` to update status, urgency, assignment,
or escalation level.
**Common incident workflows:**
```
# List all triggered incidents
Use list_incidents with status "triggered"
# List high-urgency incidents
Use list_incidents filtered by urgency "high"
# Get details for a specific incident
Use get_incident with the incident ID
# Acknowledge an incident
Use manage_incidents to set status to "acknowledged"
# Resolve an incident
Use manage_incidents to set status to "resolved"
# Escalate an incident
Use manage_incidents to escalate to the next level
```
## On-Call Management
Use `list_oncalls` to see current on-call assignments, `get_schedule` for
schedule details, and `create_schedule_override` for temporary coverage.
**Common on-call workflows:**
```
# Who is currently on-call?
Use list_oncalls to see all current on-call assignments
# Who is on-call for a specific escalation policy?
Use list_oncalls filtered by escalation_policy_id
# Get details for a schedule
Use get_schedule with the schedule ID
# Create a temporary override
Use create_schedule_override with start/end times and user
```
## Service Management
Use `list_services` to discover services, `get_service` for details, and
`create_service` or `update_service` for configuration changes.
**Service investigation patterns:**
```
# List all services
Use list_services
# Get service details including integrations
Use get_service with the service ID
# Find incidents for a specific service
Use list_incidents filtered by service_id
```
## Escalation Policy Management
Use `list_escalation_policies` to discover policies and `get_escalation_policy`
for details including escalation rules and targets.
## Team Management
Use `list_teams` to discover teams, `get_team` for details, and team member
management tools for roster changes.
## Incident Investigation Workflow
For structured incident investigation:
1. `list_incidents` — find active or recent incidents
2. `get_incident` — get full incident details and current status
3. `list_alerts_from_incident` — see triggering alerts and their details
4. `get_alert_from_incident` — get specific alert details
5. `get_related_incidents` — find correlated incidents
6. `get_past_incidents` — find similar historical incidents
7. `list_oncalls` — identify who is currently on-call
8. `list_incident_notes` — review existing investigation notes
9. `add_note_to_incident` — document findings
10. `manage_incidents` — update status, urgency, or escalate
## Event Orchestration
Use event orchestration tools to manage how events are routed and
processed:
- `list_event_orchestrations` — discover orchestration configurations
- `get_event_orchestration_router` — view routing rules
- `append_event_orchestration_router_rule` — add new routing rules
- `get_event_orchestration_global` — view global orchestration rules
- `get_event_orchestration_service` — view service-level rules
## Incident Workflows
Use `list_incident_workflows` to discover automated workflows and
`start_incident_workflow` to trigger them for an incident.
## Status Page Management
Use status page tools to communicate during incidents:
- `list_status_pages` — discover status pages
- `create_status_page_post` — create a new incident post
- `create_status_page_post_update` — add updates to existing posts
- `list_status_page_impacts` — view impact categories
- `list_status_page_severities` — view severity levels
## Troubleshooting
| Issue | Solution |
|-------|----------|
| 401 Unauthorized | Verify the API token is valid and not expired |
| 403 Forbidden | Check that the user account has sufficient permissions |
| Connection refused | Verify firewall allows HTTPS to mcp.pagerduty.com |
| EU region errors | Ensure you are using `mcp.eu.pagerduty.com` for EU accounts |
| Token format error | Use `Token <value>` format, not `Bearer <value>` |
| No data returned | Verify the token's user account has access to the requested resources |
mcp_connectors:
- pagerduty-mcp
- Select Save
Reference the skill in your subagent
Update your subagent configuration to include the skill:
spec:
name: PagerDutyIncidentExpert
skills:
- pagerduty_incident_management
mcp_connectors:
- pagerduty-mcp
Step 5: Test the integration
- Open a new chat session with your SRE Agent
- Try these example prompts:
Incident management
Show me all currently triggered incidents
Get details for incident P1234567 including the timeline and notes
Create a new high-urgency incident for the payment-service with title "Payment processing degraded"
Acknowledge all triggered incidents assigned to me
On-call and schedules
Who is currently on-call for the platform-engineering escalation policy?
Show me the on-call schedule for the next 7 days
Create a schedule override for John Smith covering Saturday 9am to Monday 9am
List all users in the primary on-call schedule
Service and team management
List all services and their current status
Get details for the checkout-service including escalation policy and integrations
Show me all teams and their members
What escalation policies are configured for the payment team?
Incident investigation
Find incidents related to the current database outage
Show me similar past incidents to P1234567
What alerts triggered incident P1234567?
List all notes and timeline entries for the most recent SEV-1 incident
Event orchestration and workflows
List all event orchestration configurations
Show me the routing rules for the production orchestration
What incident workflows are available?
Start the "SEV-1 Response" workflow for incident P1234567
Status page management
List all status pages
Create a new status page post for the ongoing API degradation
Add an update to the current status page post indicating the issue is being investigated
What severity levels are available for status page posts?
Available tools
Incidents
| Tool | Description |
|---|---|
get_incident |
Get details of a specific incident by ID |
list_incidents |
List and filter incidents by status, urgency, service, and more |
create_incident |
Create a new incident on a specified service |
manage_incidents |
Update incident status, urgency, assignment, or escalation level |
add_note_to_incident |
Add an investigation note to an incident |
list_incident_notes |
List all notes on an incident |
add_responders |
Add additional responders to an incident |
list_alerts_from_incident |
List all alerts associated with an incident |
get_alert_from_incident |
Get details of a specific alert from an incident |
get_outlier_incident |
Identify outlier incidents based on patterns |
get_past_incidents |
Find similar historical incidents |
get_related_incidents |
Find incidents related to a specific incident |
Services
| Tool | Description |
|---|---|
get_service |
Get details of a specific service |
list_services |
List all services in the account |
create_service |
Create a new service |
update_service |
Update service configuration |
On-Call & Schedules
| Tool | Description |
|---|---|
list_oncalls |
List current on-call assignments |
get_schedule |
Get details of a specific schedule |
list_schedules |
List all schedules |
list_schedule_users |
List users in a specific schedule |
create_schedule |
Create a new on-call schedule |
update_schedule |
Update an existing schedule |
create_schedule_override |
Create a temporary schedule override |
Escalation Policies
| Tool | Description |
|---|---|
list_escalation_policies |
List all escalation policies |
get_escalation_policy |
Get details of a specific escalation policy |
Teams & Users
| Tool | Description |
|---|---|
get_team |
Get details of a specific team |
list_teams |
List all teams |
list_team_members |
List members of a specific team |
create_team |
Create a new team |
update_team |
Update team details |
delete_team |
Delete a team |
add_team_member |
Add a user to a team |
remove_team_member |
Remove a user from a team |
get_user_data |
Get details of a specific user |
list_users |
List all users in the account |
Alert Grouping
| Tool | Description |
|---|---|
create_alert_grouping_setting |
Create an alert grouping configuration |
get_alert_grouping_setting |
Get details of an alert grouping setting |
list_alert_grouping_settings |
List all alert grouping settings |
update_alert_grouping_setting |
Update an alert grouping setting |
delete_alert_grouping_setting |
Delete an alert grouping setting |
Change Events
| Tool | Description |
|---|---|
get_change_event |
Get details of a specific change event |
list_change_events |
List all change events |
list_incident_change_events |
List change events related to an incident |
list_service_change_events |
List change events for a specific service |
Event Orchestration
| Tool | Description |
|---|---|
get_event_orchestration |
Get details of an event orchestration |
list_event_orchestrations |
List all event orchestrations |
get_event_orchestration_router |
Get routing rules for an orchestration |
update_event_orchestration_router |
Update routing rules |
append_event_orchestration_router_rule |
Add a new routing rule |
get_event_orchestration_global |
Get global orchestration rules |
get_event_orchestration_service |
Get service-level orchestration rules |
Incident Workflows
| Tool | Description |
|---|---|
get_incident_workflow |
Get details of an incident workflow |
list_incident_workflows |
List all incident workflows |
start_incident_workflow |
Start an incident workflow for a specific incident |
Log Entries
| Tool | Description |
|---|---|
get_log_entry |
Get details of a specific log entry |
list_log_entries |
List log entries for audit and investigation |
Status Pages
| Tool | Description |
|---|---|
create_status_page_post |
Create a new status page incident post |
create_status_page_post_update |
Add an update to a status page post |
get_status_page_post |
Get details of a status page post |
list_status_page_impacts |
List available impact categories |
list_status_page_post_updates |
List updates for a status page post |
list_status_page_severities |
List available severity levels |
list_status_page_statuses |
List available status values |
list_status_pages |
List all status pages |
Write operations
The PagerDuty MCP server supports both read and write operations. The hosted service at mcp.pagerduty.com exposes all tools (both read and write) by default.
Write tools
Write operations include creating and modifying PagerDuty resources:
| Category | Write tools |
|---|---|
| Incidents | create_incident, manage_incidents, add_note_to_incident, add_responders |
| Services | create_service, update_service |
| Schedules | create_schedule, update_schedule, create_schedule_override |
| Teams | create_team, update_team, delete_team, add_team_member, remove_team_member |
| Alert Grouping | create_alert_grouping_setting, update_alert_grouping_setting, delete_alert_grouping_setting |
| Event Orchestration | update_event_orchestration_router, append_event_orchestration_router_rule |
| Incident Workflows | start_incident_workflow |
| Status Pages | create_status_page_post, create_status_page_post_update |
[!NOTE] PagerDuty also provides a self-hosted MCP server that can be run locally. The self-hosted server exposes only read-only tools by default; write tools require the
--enable-write-toolsflag at startup. For Azure SRE Agent, the hosted service atmcp.pagerduty.comis recommended as it requires no infrastructure management and exposes all tools automatically.
Troubleshooting
Authentication issues
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized |
Invalid or expired API token | Verify the token is correct and active in User Settings > API Access |
403 Forbidden |
Insufficient user permissions | Ensure the user account associated with the token has the required PagerDuty role |
| Connection refused | Firewall blocking outbound HTTPS | Verify firewall allows HTTPS traffic to mcp.pagerduty.com (port 443) |
| Token format error | Using Bearer instead of Token |
The Authorization header must use Token <value> format, not Bearer <value> |
Data and permission issues
| Error | Cause | Solution |
|---|---|---|
| No data returned | Token user lacks access to the resource | Verify the user account has access to the requested services, teams, or incidents |
| EU region errors | Using US endpoint for EU account | Switch the connector URL to https://mcp.eu.pagerduty.com/mcp |
| Write operation failed | User lacks write permissions | Verify the token's user account has a role that allows write operations (e.g., Manager, Admin) |
| Rate limit exceeded | Too many API requests | PagerDuty rate limits vary by plan; reduce request frequency or contact PagerDuty support |
| Incident not found | Wrong incident ID or no access | Verify the incident ID and that the token's user has access to the incident's service |
Verify the connection
Test the server endpoint directly:
curl -I "https://mcp.pagerduty.com/mcp" \
-H "Authorization: Token <your-api-token>"
Expected response: 200 OK confirms authentication is working.
Re-authorize the integration
If you encounter persistent issues:
- Navigate to My Profile > User Settings > API Access in PagerDuty
- Delete the existing API User Token
- Create a new API User Token
- Update the connector in the SRE Agent portal with the new token value in the
Authorizationheader (format:Token <new-token>)
Limitations
| Limitation | Details |
|---|---|
| User-scoped permissions | API token permissions are tied to the creating user's account; the token cannot exceed the user's access level |
| Self-hosted write restriction | The self-hosted MCP server only exposes read-only tools by default; write tools require the --enable-write-tools flag |
| Rate limits | API rate limits apply per your PagerDuty plan; high-frequency usage may be throttled |
| No dedicated connector type | The portal does not have a dedicated PagerDuty connector; you must use the generic MCP server connector and configure headers manually |
| Two regional endpoints only | Only US and EU service regions are supported; the endpoint must match your account's service region |
| Token rotation | API tokens do not automatically expire; manual rotation is recommended as a security best practice |
Security considerations
How permissions work
- User-scoped: All actions respect the permissions of the PagerDuty user account that created the API token
- Token-based: A single User API Token in the
Authorizationheader provides both authentication and authorization - Role-based: The token inherits the PagerDuty role (Observer, Responder, Manager, Admin, etc.) of the creating user
Data security
- All traffic encrypted via HTTPS (TLS 1.2+)
- User API tokens authenticate both the account and the user's permission scope
- API usage can be monitored via PagerDuty audit logs
Admin controls
PagerDuty administrators can: - Create and revoke User API tokens from user profile settings - Assign roles to user accounts to control permission scope - Use service accounts with restricted roles to limit the blast radius of compromised tokens - Monitor API token usage through PagerDuty's audit logs - Enforce token rotation policies as part of security governance
[!IMPORTANT] PagerDuty User API tokens can read and modify sensitive operational data including incidents, on-call schedules, and service configurations. Use service account tokens with restricted roles, grant only the permissions your agent needs, and rotate tokens regularly. Monitor the PagerDuty audit logs for unusual activity.