Skip to content

[PagerDuty MCP] Add write actions via REST Incidents API - #283501

Merged
erikcurrin-elastic merged 14 commits into
elastic:mainfrom
erikcurrin-elastic:pagerduty-incident-write
Aug 14, 2026
Merged

[PagerDuty MCP] Add write actions via REST Incidents API#283501
erikcurrin-elastic merged 14 commits into
elastic:mainfrom
erikcurrin-elastic:pagerduty-incident-write

Conversation

@erikcurrin-elastic

@erikcurrin-elastic erikcurrin-elastic commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

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, uses sentence case text and includes i18n support
  • Documentation was added for features that require explanation or tutorials
  • Unit or functional tests 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
  • 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 was used on any tests changed
  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines
  • Review the backport guidelines and apply applicable backport:* labels.

Testing

image

erikcurrin-elastic and others added 3 commits August 6, 2026 14:19
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>
@erikcurrin-elastic erikcurrin-elastic added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:agent-builder labels Aug 7, 2026
@erikcurrin-elastic
erikcurrin-elastic marked this pull request as ready for review August 7, 2026 22:11
@erikcurrin-elastic
erikcurrin-elastic requested review from a team as code owners August 7, 2026 22:11
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🔍 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 florent-leborgne left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs changes LGTM but wondering if the page should now provide the detail of the available actions?

Comment thread docs/reference/connectors-kibana/pagerduty-mcp-action-type.md

@florent-leborgne florent-leborgne left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second pass on docs after the addition of the list of actions 👍

Comment thread docs/reference/connectors-kibana/pagerduty-mcp-action-type.md
`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+`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 thanks @erikcurrin-elastic

@erikcurrin-elastic

Copy link
Copy Markdown
Contributor Author

/ci

Co-authored-by: Florent LB <florent.leborgne@elastic.co>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@kibanamachine

Copy link
Copy Markdown
Contributor

Saved Objects CI check failed

1 issue(s) across 1 type(s).

General

  • [generic] Feature 'Connector: PagerDuty' has already been registered with another license type. (current: gold, new: enterprise) (docs)

Run locally

node scripts/check_saved_objects --baseline 02f294b83b35af67973dcc8844af9d864f1c6638

See 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>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@erikcurrin-elastic

Copy link
Copy Markdown
Contributor Author

/ci

@tara-elastic tara-elastic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some minor issues flagged by the bot but otherwise looks ok to me

@dennis-tismenko dennis-tismenko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code changes LGTM, but I did want to confirm about the response_plays endpoint since I can't find any live documentation about it.

@erikcurrin-elastic
erikcurrin-elastic enabled auto-merge (squash) August 14, 2026 18:54
@kibanamachine

Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Metrics [docs]

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
shared-packages 4.3MB 4.3MB +11.6KB
Unknown metric groups

total optimizer output size

id before after diff
all 62.0MB 62.0MB +11.6KB

Test Failures

  • [job] [logs] Jest Tests #1 / ActionPolicyFormPage create mode submits create payload on save

History

@erikcurrin-elastic
erikcurrin-elastic merged commit 0a90e74 into elastic:main Aug 14, 2026
40 checks passed
jr-araque pushed a commit to jr-araque/kibana that referenced this pull request Aug 18, 2026
)

## 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting connectors-v2 release_note:skip Skip the PR/issue when compiling release notes Team:agent-builder v9.6.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants