Skip to main content
Glama
PagerDuty MCP Server

PagerDuty MCP Server

by wpfleger96

get_incidents

Retrieve PagerDuty incidents using filters such as status, team, urgency, or service, or fetch details for a specific incident ID.

Instructions

Get PagerDuty incidents by filters or get details for a specific incident ID or number.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_incidents"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax results (optional). Not used if `incident_id` is provided.
sinceNoStart of query range in ISO8601 format (default range: 1 month, max range: 6 months). Not used if `incident_id` is provided.
untilNoEnd of query range in ISO8601 format (default range: 1 month, max range: 6 months). Not used if `incident_id` is provided.
includeNoList of fields to include in the response. If specified, only these fields will be returned for each incident
statusesNoFilter by status (optional). Not used if `incident_id` is provided. Must be input as a list of strings, valid values are `["triggered", "acknowledged", "resolved"]`. Defaults to all statuses.
team_idsNoFilter by teams (optional, excludes current_user_context). Not used if `incident_id` is provided.
urgenciesNoFilter by urgency (optional). Not used if `incident_id` is provided. Must be input as a list of strings, valid values are `["high", "low"]`. Defaults to all urgencies. Account must have the urgencies ability to do this.
incident_idNoThe incident ID or number to retrieve (optional, cannot be used with any other filters).
service_idsNoFilter by services (optional, excludes current_user_context). Not used if `incident_id` is provided.
include_notesNoIf True, includes notes for each incident in the response. Defaults to False.
current_user_contextNoFilter by current user's context (default: True); errors if the current user belongs to no teams. Not used if `incident_id` is provided.
include_past_incidentsNoIf True and `incident_id` is provided, includes similar past incidents in the response. Defaults to False. Cannot be used without `incident_id`.
include_related_incidentsNoIf True and `incident_id` is provided, includes related incidents impacting other services/responders in the response. Defaults to False. Cannot be used without `incident_id`.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv4.0.7
    • changedInput schema / properties / current_user_context / description
      Previous value: -"Filter by current user's context (default: True). Not used if `incident_id` is provided."New value: +"Filter by current user's context (default: True); errors if the current user belongs to no teams. Not used if `incident_id` is provided."
  2. Changed5 schema fields changedv4.0.1
    • addedInput schema / properties / include
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "List of fields to include in the response. If specified, only these fields will be returned for each incident"
      +}
    • changedInput schema / properties / include_past_incidents / description
      Previous value: -"If True and `incident_id` is provided, includes similar past incidents\nin the response. Defaults to False. Cannot be used without `incident_id`."New value: +"If True and `incident_id` is provided, includes similar past incidents in the response. Defaults to False. Cannot be used without `incident_id`."
    • changedInput schema / properties / include_related_incidents / description
      Previous value: -"If True and `incident_id` is provided, includes related incidents\nimpacting other services/responders in the response. Defaults to False. Cannot be used without `incident_id`."New value: +"If True and `incident_id` is provided, includes related incidents impacting other services/responders in the response. Defaults to False. Cannot be used without `incident_id`."
    • changedInput schema / properties / statuses / description
      Previous value: -"Filter by status (optional). Not used if `incident_id` is provided. Must be input as a list of strings, valid values are `[\"triggered\", \"acknowledged\", \"resolved\"]`."New value: +"Filter by status (optional). Not used if `incident_id` is provided. Must be input as a list of strings, valid values are `[\"triggered\", \"acknowledged\", \"resolved\"]`. Defaults to all statuses."
    • addedInput schema / properties / urgencies
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Filter by urgency (optional). Not used if `incident_id` is provided. Must be input as a list of strings, valid values are `[\"high\", \"low\"]`. Defaults to all urgencies. Account must have the urgencies ability to do this."
      +}
  3. Changed24 schema fields changedv3.1.4
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / current_user_context / description
      Added value: +"Filter by current user's context (default: True). Not used if `incident_id` is provided."
    • removedInput schema / properties / current_user_context / title
      Removed value: -"Current User Context"
    • addedInput schema / properties / incident_id / description
      Added value: +"The incident ID or number to retrieve (optional, cannot be used with any other filters)."
    • removedInput schema / properties / incident_id / title
      Removed value: -"Incident Id"
    • addedInput schema / properties / include_notes / description
      Added value: +"If True, includes notes for each incident in the response. Defaults to False."
    • removedInput schema / properties / include_notes / title
      Removed value: -"Include Notes"
    • addedInput schema / properties / include_past_incidents / description
      Added value: +"If True and `incident_id` is provided, includes similar past incidents\nin the response. Defaults to False. Cannot be used without `incident_id`."
    • removedInput schema / properties / include_past_incidents / title
      Removed value: -"Include Past Incidents"
    • addedInput schema / properties / include_related_incidents / description
      Added value: +"If True and `incident_id` is provided, includes related incidents\nimpacting other services/responders in the response. Defaults to False. Cannot be used without `incident_id`."
    • removedInput schema / properties / include_related_incidents / title
      Removed value: -"Include Related Incidents"
    • addedInput schema / properties / limit / description
      Added value: +"Max results (optional). Not used if `incident_id` is provided."
    • removedInput schema / properties / limit / title
      Removed value: -"Limit"
    • addedInput schema / properties / service_ids / description
      Added value: +"Filter by services (optional, excludes current_user_context). Not used if `incident_id` is provided."
    • removedInput schema / properties / service_ids / title
      Removed value: -"Service Ids"
    • addedInput schema / properties / since / description
      Added value: +"Start of query range in ISO8601 format (default range: 1 month, max range: 6 months). Not used if `incident_id` is provided."
    • removedInput schema / properties / since / title
      Removed value: -"Since"
    • addedInput schema / properties / statuses / description
      Added value: +"Filter by status (optional). Not used if `incident_id` is provided. Must be input as a list of strings, valid values are `[\"triggered\", \"acknowledged\", \"resolved\"]`."
    • removedInput schema / properties / statuses / title
      Removed value: -"Statuses"
    • addedInput schema / properties / team_ids / description
      Added value: +"Filter by teams (optional, excludes current_user_context). Not used if `incident_id` is provided."
    • removedInput schema / properties / team_ids / title
      Removed value: -"Team Ids"
    • addedInput schema / properties / until / description
      Added value: +"End of query range in ISO8601 format (default range: 1 month, max range: 6 months). Not used if `incident_id` is provided."
    • removedInput schema / properties / until / title
      Removed value: -"Until"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  4. First observedv1.0.0

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure, and one sentence cannot cover it. It does not state that the operation is read-only, does not mention default query windows, result caps, or pagination, and does not note account-level requirements (the 'urgencies ability' constraint lives only in the schema). For a 13-parameter PagerDuty query tool, this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the resource front-loaded and zero filler. The 'or' construction is slightly loose but communicates the two modes efficiently; nothing is wasted, though the brevity comes at the cost of the undisclosed behavior noted elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape and the include/include_notes behavior need not be explained. However, with 13 parameters, no annotations, and a genuine mode switch that disables ten of those parameters, the description leaves real gaps around default time windows and the mutual exclusivity contract. Adequate as a pointer, thin for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including mutual-exclusion rules, ISO8601 formats, value enums, and the 1-month default / 6-month maximum window is already documented in the schema. The description adds no parameter meaning beyond repeating the filters/detail split already encoded in incident_id's description. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get PagerDuty incidents') and names the two operating modes: filtered list versus single-incident detail by ID or number. No sibling tool covers the same resource, so the agent can orient itself without ambiguity. It stops short of explicitly differentiating itself from adjacent tools like add_incident_note or acknowledge_incident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The dual-mode framing ('by filters or ... a specific incident ID') implies two usage paths, but the description never says when each is appropriate or that they are mutually exclusive. It also offers no exclusion guidance relative to siblings. The agent must open the schema to learn that incident_id cannot be combined with filters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.