PagerDuty · Capability

PagerDuty API — Analytics

PagerDuty API — Analytics. 13 operations. Lead operation: PagerDuty Get aggregated incident data. Self-contained Naftiko capability covering one Pagerduty business surface.

Run with Naftiko PagerdutyAnalytics

What You Can Do

POST
Getanalyticsmetricsincidentsall — PagerDuty Get aggregated incident data
/v1/analytics/metrics/incidents/all
POST
Getanalyticsmetricsincidentsescalationpolicy — PagerDuty Get aggregated escalation policy data
/v1/analytics/metrics/incidents/escalation-policies
POST
Getanalyticsmetricsincidentsescalationpolicyall — PagerDuty Get aggregated metrics for all escalation policies
/v1/analytics/metrics/incidents/escalation-policies/all
POST
Getanalyticsmetricsincidentsservice — PagerDuty Get aggregated service data
/v1/analytics/metrics/incidents/services
POST
Getanalyticsmetricsincidentsserviceall — PagerDuty Get aggregated metrics for all services
/v1/analytics/metrics/incidents/services/all
POST
Getanalyticsmetricsincidentsteam — PagerDuty Get aggregated team data
/v1/analytics/metrics/incidents/teams
POST
Getanalyticsmetricsincidentsteamall — PagerDuty Get aggregated metrics for all teams
/v1/analytics/metrics/incidents/teams/all
POST
Getanalyticsmetricsrespondersall — PagerDuty Get aggregated metrics for all responders
/v1/analytics/metrics/responders/all
POST
Getanalyticsmetricsrespondersteam — PagerDuty Get responder data aggregated by team
/v1/analytics/metrics/responders/teams
POST
Getanalyticsincidents — PagerDuty Get raw data - multiple incidents
/v1/analytics/raw/incidents
GET
Getanalyticsincidentsbyid — PagerDuty Get raw data - single incident
/v1/analytics/raw/incidents/{id}
GET
Getanalyticsincidentresponsesbyid — PagerDuty Get raw responses from a single incident
/v1/analytics/raw/incidents/{id}/responses
POST
Getanalyticsresponderincidents — PagerDuty Get raw incidents for a single responder_id
/v1/analytics/raw/responders/{responder-id}/incidents

MCP Tools

pagerduty-get-aggregated-incident-data

PagerDuty Get aggregated incident data

read-only
pagerduty-get-aggregated-escalation-policy

PagerDuty Get aggregated escalation policy data

read-only
pagerduty-get-aggregated-metrics-all

PagerDuty Get aggregated metrics for all escalation policies

read-only
pagerduty-get-aggregated-service-data

PagerDuty Get aggregated service data

read-only
pagerduty-get-aggregated-metrics-all-2

PagerDuty Get aggregated metrics for all services

read-only
pagerduty-get-aggregated-team-data

PagerDuty Get aggregated team data

read-only
pagerduty-get-aggregated-metrics-all-3

PagerDuty Get aggregated metrics for all teams

read-only
pagerduty-get-aggregated-metrics-all-4

PagerDuty Get aggregated metrics for all responders

read-only
pagerduty-get-responder-data-aggregated

PagerDuty Get responder data aggregated by team

read-only
pagerduty-get-raw-data-multiple

PagerDuty Get raw data - multiple incidents

read-only
pagerduty-get-raw-data-single

PagerDuty Get raw data - single incident

read-only idempotent
pagerduty-get-raw-responses-single

PagerDuty Get raw responses from a single incident

read-only idempotent
pagerduty-get-raw-incidents-single

PagerDuty Get raw incidents for a single responder_id

read-only

Capability Spec

pagerduty-analytics.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: PagerDuty API — Analytics
  description: 'PagerDuty API — Analytics. 13 operations. Lead operation: PagerDuty Get aggregated incident data. Self-contained
    Naftiko capability covering one Pagerduty business surface.'
  tags:
  - Pagerduty
  - Analytics
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    PAGERDUTY_API_KEY: PAGERDUTY_API_KEY
capability:
  consumes:
  - type: http
    namespace: pagerduty-analytics
    baseUri: https://api.pagerduty.com
    description: PagerDuty API — Analytics business capability. Self-contained, no shared references.
    resources:
    - name: analytics-metrics-incidents-all
      path: /analytics/metrics/incidents/all
      operations:
      - name: getanalyticsmetricsincidentsall
        method: POST
        description: PagerDuty Get aggregated incident data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-incidents-escalation_policies
      path: /analytics/metrics/incidents/escalation_policies
      operations:
      - name: getanalyticsmetricsincidentsescalationpolicy
        method: POST
        description: PagerDuty Get aggregated escalation policy data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-incidents-escalation_policies-all
      path: /analytics/metrics/incidents/escalation_policies/all
      operations:
      - name: getanalyticsmetricsincidentsescalationpolicyall
        method: POST
        description: PagerDuty Get aggregated metrics for all escalation policies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-incidents-services
      path: /analytics/metrics/incidents/services
      operations:
      - name: getanalyticsmetricsincidentsservice
        method: POST
        description: PagerDuty Get aggregated service data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-incidents-services-all
      path: /analytics/metrics/incidents/services/all
      operations:
      - name: getanalyticsmetricsincidentsserviceall
        method: POST
        description: PagerDuty Get aggregated metrics for all services
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-incidents-teams
      path: /analytics/metrics/incidents/teams
      operations:
      - name: getanalyticsmetricsincidentsteam
        method: POST
        description: PagerDuty Get aggregated team data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-incidents-teams-all
      path: /analytics/metrics/incidents/teams/all
      operations:
      - name: getanalyticsmetricsincidentsteamall
        method: POST
        description: PagerDuty Get aggregated metrics for all teams
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-responders-all
      path: /analytics/metrics/responders/all
      operations:
      - name: getanalyticsmetricsrespondersall
        method: POST
        description: PagerDuty Get aggregated metrics for all responders
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-metrics-responders-teams
      path: /analytics/metrics/responders/teams
      operations:
      - name: getanalyticsmetricsrespondersteam
        method: POST
        description: PagerDuty Get responder data aggregated by team
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-raw-incidents
      path: /analytics/raw/incidents
      operations:
      - name: getanalyticsincidents
        method: POST
        description: PagerDuty Get raw data - multiple incidents
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-raw-incidents-id
      path: /analytics/raw/incidents/{id}
      operations:
      - name: getanalyticsincidentsbyid
        method: GET
        description: PagerDuty Get raw data - single incident
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: analytics-raw-incidents-id-responses
      path: /analytics/raw/incidents/{id}/responses
      operations:
      - name: getanalyticsincidentresponsesbyid
        method: GET
        description: PagerDuty Get raw responses from a single incident
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-raw-responders-responder_id-incidents
      path: /analytics/raw/responders/{responder_id}/incidents
      operations:
      - name: getanalyticsresponderincidents
        method: POST
        description: PagerDuty Get raw incidents for a single responder_id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: apikey
      key: Authorization
      value: '{{env.PAGERDUTY_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: pagerduty-analytics-rest
    port: 8080
    description: REST adapter for PagerDuty API — Analytics. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/analytics/metrics/incidents/all
      name: analytics-metrics-incidents-all
      description: REST surface for analytics-metrics-incidents-all.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsall
        description: PagerDuty Get aggregated incident data
        call: pagerduty-analytics.getanalyticsmetricsincidentsall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/incidents/escalation-policies
      name: analytics-metrics-incidents-escalation-policies
      description: REST surface for analytics-metrics-incidents-escalation_policies.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsescalationpolicy
        description: PagerDuty Get aggregated escalation policy data
        call: pagerduty-analytics.getanalyticsmetricsincidentsescalationpolicy
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/incidents/escalation-policies/all
      name: analytics-metrics-incidents-escalation-policies-all
      description: REST surface for analytics-metrics-incidents-escalation_policies-all.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsescalationpolicyall
        description: PagerDuty Get aggregated metrics for all escalation policies
        call: pagerduty-analytics.getanalyticsmetricsincidentsescalationpolicyall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/incidents/services
      name: analytics-metrics-incidents-services
      description: REST surface for analytics-metrics-incidents-services.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsservice
        description: PagerDuty Get aggregated service data
        call: pagerduty-analytics.getanalyticsmetricsincidentsservice
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/incidents/services/all
      name: analytics-metrics-incidents-services-all
      description: REST surface for analytics-metrics-incidents-services-all.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsserviceall
        description: PagerDuty Get aggregated metrics for all services
        call: pagerduty-analytics.getanalyticsmetricsincidentsserviceall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/incidents/teams
      name: analytics-metrics-incidents-teams
      description: REST surface for analytics-metrics-incidents-teams.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsteam
        description: PagerDuty Get aggregated team data
        call: pagerduty-analytics.getanalyticsmetricsincidentsteam
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/incidents/teams/all
      name: analytics-metrics-incidents-teams-all
      description: REST surface for analytics-metrics-incidents-teams-all.
      operations:
      - method: POST
        name: getanalyticsmetricsincidentsteamall
        description: PagerDuty Get aggregated metrics for all teams
        call: pagerduty-analytics.getanalyticsmetricsincidentsteamall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/responders/all
      name: analytics-metrics-responders-all
      description: REST surface for analytics-metrics-responders-all.
      operations:
      - method: POST
        name: getanalyticsmetricsrespondersall
        description: PagerDuty Get aggregated metrics for all responders
        call: pagerduty-analytics.getanalyticsmetricsrespondersall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/metrics/responders/teams
      name: analytics-metrics-responders-teams
      description: REST surface for analytics-metrics-responders-teams.
      operations:
      - method: POST
        name: getanalyticsmetricsrespondersteam
        description: PagerDuty Get responder data aggregated by team
        call: pagerduty-analytics.getanalyticsmetricsrespondersteam
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/raw/incidents
      name: analytics-raw-incidents
      description: REST surface for analytics-raw-incidents.
      operations:
      - method: POST
        name: getanalyticsincidents
        description: PagerDuty Get raw data - multiple incidents
        call: pagerduty-analytics.getanalyticsincidents
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/raw/incidents/{id}
      name: analytics-raw-incidents-id
      description: REST surface for analytics-raw-incidents-id.
      operations:
      - method: GET
        name: getanalyticsincidentsbyid
        description: PagerDuty Get raw data - single incident
        call: pagerduty-analytics.getanalyticsincidentsbyid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/raw/incidents/{id}/responses
      name: analytics-raw-incidents-id-responses
      description: REST surface for analytics-raw-incidents-id-responses.
      operations:
      - method: GET
        name: getanalyticsincidentresponsesbyid
        description: PagerDuty Get raw responses from a single incident
        call: pagerduty-analytics.getanalyticsincidentresponsesbyid
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/raw/responders/{responder-id}/incidents
      name: analytics-raw-responders-responder-id-incidents
      description: REST surface for analytics-raw-responders-responder_id-incidents.
      operations:
      - method: POST
        name: getanalyticsresponderincidents
        description: PagerDuty Get raw incidents for a single responder_id
        call: pagerduty-analytics.getanalyticsresponderincidents
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: pagerduty-analytics-mcp
    port: 9090
    transport: http
    description: MCP adapter for PagerDuty API — Analytics. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: pagerduty-get-aggregated-incident-data
      description: PagerDuty Get aggregated incident data
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-escalation-policy
      description: PagerDuty Get aggregated escalation policy data
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsescalationpolicy
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-metrics-all
      description: PagerDuty Get aggregated metrics for all escalation policies
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsescalationpolicyall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-service-data
      description: PagerDuty Get aggregated service data
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsservice
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-metrics-all-2
      description: PagerDuty Get aggregated metrics for all services
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsserviceall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-team-data
      description: PagerDuty Get aggregated team data
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsteam
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-metrics-all-3
      description: PagerDuty Get aggregated metrics for all teams
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsincidentsteamall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-aggregated-metrics-all-4
      description: PagerDuty Get aggregated metrics for all responders
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsrespondersall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-responder-data-aggregated
      description: PagerDuty Get responder data aggregated by team
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsmetricsrespondersteam
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-raw-data-multiple
      description: PagerDuty Get raw data - multiple incidents
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsincidents
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-raw-data-single
      description: PagerDuty Get raw data - single incident
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pagerduty-analytics.getanalyticsincidentsbyid
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-raw-responses-single
      description: PagerDuty Get raw responses from a single incident
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pagerduty-analytics.getanalyticsincidentresponsesbyid
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: pagerduty-get-raw-incidents-single
      description: PagerDuty Get raw incidents for a single responder_id
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: pagerduty-analytics.getanalyticsresponderincidents
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.