[PagerDuty MCP] Add write actions via REST Incidents API - #283501
[PagerDuty MCP] Add write actions via REST Incidents API#283501erikcurrin-elastic merged 14 commits into
Conversation
Adds triggerIncident, acknowledgeIncident, resolveIncident, updateIncident, listServices, addResponders, and runResponsePlay actions to the PagerDuty MCP connector, backed by the PagerDuty v2 REST API rather than MCP. Includes input schemas with bounds, encodeURIComponent on all URL path segments, paramsSerializer for array query params, and tests covering the full incident lifecycle. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…descriptions Strip "via the REST Incidents API", "MCP server", and "REST API" from action descriptions, test handler messages, and docs — users and agents don't need to know how actions are backed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🔍 Preview links for changed docs |
Removes redundant `enabled: true` that appeared twice in the `test` object, causing a TS1117 type error. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
florent-leborgne
left a comment
There was a problem hiding this comment.
Docs changes LGTM but wondering if the page should now provide the detail of the available actions?
…s-connectors-list.md Co-authored-by: Florent LB <florent.leborgne@elastic.co>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
florent-leborgne
left a comment
There was a problem hiding this comment.
Second pass on docs after the addition of the list of actions 👍
| `getUserData` | ||
| : Return the current PagerDuty user — the account that owns the API key. Returns id, name, email, summary, role, and teams. Use this to confirm which user the connector is authenticated as and to obtain your user ID and email for write actions that require the `from` parameter. | ||
|
|
||
| `triggerIncident` {applies_to}`serverless:` {applies_to}`stack: ga 9.6+` |
|
/ci |
Co-authored-by: Florent LB <florent.leborgne@elastic.co>
There was a problem hiding this comment.
Reviewed the new PagerDuty write actions. Implementation is solid — path segments are encodeURIComponent-encoded, auth flows through the configured axios instance, and validation refinements are well tested. One minor input-validation gap noted inline.
Generated by Claude Reviewer for #283501 · 151.4 AIC · ⌖ 16.2 AIC · ⊞ 4.6K
Saved Objects CI check failed1 issue(s) across 1 type(s). General
Run locallySee the Saved Objects troubleshooting guide and the model versions documentation for details. |
… registration conflict The classic PagerDuty connector registers under the feature name 'Connector: PagerDuty' (gold). Renaming the spec-based connector's displayName to plain 'PagerDuty' produced the same feature key at enterprise level, causing a startup crash. Reverting to 'PagerDuty (MCP)' restores a unique feature name. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Reviewed the PagerDuty REST write actions. Implementation is solid — path segments are consistently URL-encoded, inputs are bounded, payload shapes match the v2 API, and tests cover the incident lifecycle. One minor validation inconsistency noted inline.
Generated by Claude Reviewer for #283501 · 179.4 AIC · ⌖ 40.7 AIC · ⊞ 4.6K
|
/ci |
tara-elastic
left a comment
There was a problem hiding this comment.
some minor issues flagged by the bot but otherwise looks ok to me
dennis-tismenko
left a comment
There was a problem hiding this comment.
Code changes LGTM, but I did want to confirm about the response_plays endpoint since I can't find any live documentation about it.
💛 Build succeeded, but was flaky
Failed CI StepsMetrics [docs]Page load bundle
Test FailuresHistory
|
) ## Summary Adds triggerIncident, acknowledgeIncident, resolveIncident, updateIncident, listServices, addResponders, and runResponsePlay actions to the PagerDuty MCP connector, backed by the PagerDuty v2 REST API rather than MCP. Includes input schemas with bounds, encodeURIComponent on all URL path segments, paramsSerializer for array query params, and tests covering the full incident lifecycle. ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/docs/extend/kibana/contributing/workflow/how-we-use-github#release-notes) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels. ### Testing <img width="696" height="233" alt="image" src="https://github.com/user-attachments/assets/15dc5fdb-8a0a-4f16-b83f-3d2026c0ca19" /> --------- Co-authored-by: Florent LB <florent.leborgne@elastic.co>
Summary
Adds triggerIncident, acknowledgeIncident, resolveIncident, updateIncident, listServices, addResponders, and runResponsePlay actions to the PagerDuty MCP connector, backed by the PagerDuty v2 REST API rather than MCP. Includes input schemas with bounds, encodeURIComponent on all URL path segments, paramsSerializer for array query params, and tests covering the full incident lifecycle.
Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesbackport:*labels.Testing