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: $.