PagerDuty ACTION
Create Incident
Trigger a new incident on a PagerDuty service. Use List Services to find a service ID and List Escalation Policies to find a policy ID. Use List Priorities to find priority IDs. Set
incidentKey to a stable value derived from the alert source (e.g. a hash of title + service ID) to prevent duplicate incidents on retry — PagerDuty deduplicates open incidents with the same key on the same service. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's PagerDuty account once, then configure and run Create Incident from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "pagerduty-create-incident",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
pagerduty: { authProvisionId: "apn_xxxxxxx" },
title: "Incident Title",
serviceId: "Service ID",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "pagerduty-create-incident",
"configured_props": {
"pagerduty": { "authProvisionId": "apn_xxxxxxx" },
"title": "Incident Title",
"serviceId": "Service ID"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "pagerduty",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "pagerduty-create-incident",
arguments: {
title: "Incident Title",
serviceId: "Service ID",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
title Incident Title | string | A succinct description of the nature, symptoms, cause, or effect of the incident. Required |
serviceId Service ID | string | The ID of the service. See the docs here Required Dynamic |
urgency Incident Urgency | string | The urgency of the incident. Allowed values: high and low Optional |
incidentKey Incident Key | string | A string which identifies the incident. Sending subsequent requests referencing the same service and with the same Incident Key will result in those requests being rejected if an open incident matches that Incident Key. Optional |
bodyDetails Incident Details | string | Additional incident details. Optional |
escalationPolicyId Escalation Policy ID | string | The ID of the escalation policy Optional Dynamic |
priorityId Priority ID | string | The ID of the priority level. Use List Priorities to discover valid IDs. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- pagerduty-create-incident
- Version
- 0.0.2
- App
- PagerDuty
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗