Reported issues for io.github.PagerDuty/pagerduty-mcp
Pod holds 24 of 48 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to io.github.PagerDuty/pagerduty-mcp.
Most discussed
Auth Type Environmental Variable For OAuth Tokens
The MCP implementation does not support OAuth2 Tokens. The underlying api expects the Authorization header to be slightly different between API keys and OAuth2 Tokens ('Token=' vs 'Bearer '). The underlying RestApiV2Client already supports requests using OAuth2 Tokens, just the auth_type parameter must be set to 'oauth2'
Proposing that an environmental variable called "PAGERDUTY_AUTH_TYPE" (defaulting to "token") be passed to the RestApiV2Client.
Read the thread · 2025-11-12 · open · external user · 6 comments
Can we add a flag to filter MCP tools by area?
The PagerDuty MCP server is great! But it exposes a bit too many tools, especially given LLMs today will have degraded performance with the increase number of MCP tools available to them.
Can we try merging some of the MCP tools or add a --area=alert_grouping,event_orchestration,incidents,... flag so we can disable the tools that we don't need? Many other MCP servers do this today, example: https://github.com/grafana/mcp-grafana has this --disable-<category> flag.
Read the thread · 2025-10-31 · closed · external user · 8 comments
Server can't connect behind Corporate Proxy
Describe the bug When running behind a corporate Proxy/Firewall the MCP Server is unable to connect to https://api.pagerduty.com.
To Reproduce Steps to reproduce the behavior:
- Install MCP from GitHub MCP Landing Page (https://github.com/mcp)
- Modify
$home/Library/Application Support/Code/users/mcp.jsonto set custom CA file"pagerduty/pagerduty-mcp-server": { "type": "stdio", "command": "uvx", "args": [ "pagerduty-mcp", "--enable-write-tools" ],
Read the thread · 2025-10-29 · open · external user · 6 comments
Add list_incident_alerts tool
Is your feature request related to a problem? Please describe. Currently, the MCP server can retrieve incident information using get_incident and list_incidents, but there's no way to access the underlying alert details that triggered or are associated with those incidents. This is frustrating when trying to debug issues because alerts contain critical diagnostic information in their body.details field that isn't available through incident endpoints. Without access to alert details, users mu
Read the thread · 2025-10-21 · closed · external user · 5 comments
is user API token not available for freemium accounts?
I don't see the API Access section in the User Settings. I have a freemium account and have tried it as an account owner and a regular user.
Read the thread · 2025-09-30 · closed · external user · 5 comments
OAuth2 Authentication
Support for OAuth in MCP is considered best-practice for non stdio transport. https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization#best-practices
It would also make it easier to use and adopt the MCP server if implemented. Asking all users to create API token is a barrier to adoption.
Atlassian MCP server is an example for enterprise MCP servers - https://support.atlassian.com/rovo/docs/getting-started-with-the-atlassian-remote-mcp-server/
This request does depend on s
Read the thread · 2025-09-05 · closed · external user · 5 comments
Docker implementation of MCP server
Hi!
I'm the Product Manager for our PagerDuty MCP Server.
Please respond to this thread if you are interested in a Dockerized version of our MCP server so that we can track interest.
Read the thread · 2025-08-27 · closed · outside contributor · 8 comments
Contact Methods tool to fetch contact details of user added to Pagerduty team
Is your feature request related to a problem? Please describe. I am integrating the mcp server in my org and a major issue is that people are unable to figure out the contact details for oncall POC
Describe the solution you'd like I would like to expose a tool named get_contact_methods that MCP can use to fetch contact details of required user to escalate issues quickly
Describe alternatives you've considered I tried fetching these details from users tool directly but it was not wo
Read the thread · 2025-08-25 · closed · external user · 5 comments
Most recent
Feature request: opt-in GCF output encoding for tool results (fewer tokens, lossless)
Summary
Add an opt-in output format that serializes tool results as GCF (Graph Compact Format) instead of JSON. The list tools here (incidents, alerts, services, teams, schedules, log entries) return arrays of uniform records where JSON repeats every field name on every record. GCF factors those names into a single header, so an MCP client spends fewer tokens reading a result. Off by default, applied at one seam, and it falls back to JSON whenever the GCF form isn't s
Read the thread · 2026-08-28 · open · external user · 1 comment
Add instructions for Codex
Instructions needed for setup with OpenAI Codex.
I am adding them now. Using this for tracking.
Read the thread · 2026-08-19 · open · external user · 1 comment
Remote MCP OAuth discovery fails RFC 8414 §3.3: protected-resource metadata authorization_servers does not match authorization server issuer
Describe the bug
The hosted remote MCP server at https://mcp.pagerduty.com/mcp cannot complete OAuth against MCP clients that enforce RFC 8414 §3.3 issuer validation. The Protected Resource Metadata (RFC 9728) advertises an authorization_servers value that does not match the issuer returned by the authorization server metadata (RFC 8414) discovered from it. Strict clients reject the metadata during authorization-server discovery, before the browser authorization flow ever begins.
The
Read the thread · 2026-08-19 · open · external user · 2 comments
"Failed to initialize user" (HTTP 400 on /users/me) at startup when account-level tokens
Describe the bug
Looks like the MCP unconditionally calls GET /users/me at server startup to resolve the username. When the server is authenticated with an account-level REST API key (supported since #49), that endpoint always returns HTTP 400.
WARNING:root:Failed to initialize user: GET https://api.pagerduty.com/users/me: API responded with client error (status 400): {"error":"Because this request was made using an account-level access token, we were unable to determine the user..."
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/168) · 2026-08-10 · open · external user · 1 comment
### [Security] Redact sensitive channel fields from log-entry MCP responses
## Summary
The `list_log_entries` and `get_log_entry` tools can return sensitive integration credentials from the PagerDuty API in their MCP responses.
`pagerduty_mcp.models.log_entries.Channel` currently uses `ConfigDict(extra="allow")`. Some trigger log-entry channel objects include a `service_key` field (an Events API routing credential). Pydantic therefore retains that field and the MCP response serializes it into the client transcript during an otherwise read-only incident investigation.
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/167) · 2026-07-17 · open · external user · 1 comment
### list_incidents cannot filter by service
## Feature request
`list_incidents` currently exposes `request_scope`, `statuses`, `since`/`until`, `urgencies`, `priorities`, and `limit` — but no way to scope results to specific services, even though the underlying REST endpoint (`GET /incidents`) supports `service_ids[]`.
A common triage pattern is "has this service seen similar incidents recently?" (recurrence/flap analysis). Without a service filter the model has to pull incidents across the whole account (default limit 1000) and filter
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/165) · 2026-07-14 · open · external user · 2 comments
### PagerDuty list tools: query_model filter is unusable (untyped schema → args coerced to string)
# PagerDuty list tools: `query_model` filter is unusable (untyped schema → args coerced to string)
## Summary
The PagerDuty list-style tools accept a `query_model` parameter for filtering, but its input schema is declared as an untyped/empty object (`"query_model": {}` — no `type`, no `properties`). Because the schema doesn't declare it as a structured object, the MCP client serializes any object passed to it as a **string**, and the server's validation then rejects it:
MCP error -32602: I
Read the thread · 2026-07-13 · open · external user · 1 comment
list_schedule_users crashes with User validation errors when a schedule contains deleted users
Summary
list_schedule_users(schedule_id) raises pydantic validation errors and returns nothing whenever the schedule references a deleted PagerDuty user. Since GET /schedules/{id}/users includes historical/deleted members as tombstones, the tool is unusable on most long-lived schedules.
Versions: reproduced on pagerduty-mcp 0.15.0 and 1.0.0.
Error
4 validation errors for User
name Field required
email Field required
role Field required
teams Field requir
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/153) · 2026-06-23 · open · external user · 1 comment
### list_incidents is missing a priorities[] filter (and incident responses omit the priority field)
## Problem
`list_incidents` can't answer common natural-language questions like *"Show me all P1 incidents for service X this month"* because:
1. `IncidentQuery` does not expose a `priorities` parameter, even though the underlying PagerDuty REST API `GET /incidents` natively supports `priorities[]` (array of priority IDs).
2. The `Incident` response model does not include a `priority` field, so callers can't even post-filter results client-side.
`urgency` (high/low) is not a substitute for pr
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/152) · 2026-06-17 · closed · external user · 1 comment
### outputSchema mismatch on 6 tools causes strict MCP clients to reject valid responses
## Summary
6 of 64 tools declare an `outputSchema` with `"required": ["result"]` (via FastMCP's `x-fastmcp-wrap-result` convention), but the runtime response from those tools is **not** wrapped in `{"result": ...}`. Strict-validating MCP clients (Cursor, Claude Code) reject the response with:
-32602 / data must have required property 'result'
The other 58 tools return well-typed structured objects and work fine.
## Affected tools
| Tool | Return type |
|---|---|
| `create_schedule_o
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/127) · 2026-05-19 · open · external user · 2 comments
### Publish to a publicly accessible repository
## Is your feature request related to a problem? Please describe.
I have to pull the code to be able to build and USE the MCP image.
## Describe the solution you'd like
I'd like to be able to `docker pull` the image from a public image repository
## Describe alternatives you've considered
Building it myself `git clone git@github.com:PagerDuty/pagerduty-mcp-server.git && docker build -t pagerduty-mcp:latest .`
## Additional context
N/A
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/120) · 2026-04-28 · open · external user · 1 comment
### Add update_escalation_policy and create_escalation_policy tools
## Summary
The MCP server currently only provides read-only access to escalation policies via `get_escalation_policy` and `list_escalation_policies`. There are no tools to **create** or **update** escalation policies, which means users cannot manage escalation rules, add/remove targets, or adjust escalation delays programmatically.
## Use case
When setting up a new on-call rotation, the typical workflow requires configuring:
1. Schedules (supported via `create_schedule` / `update_schedule`)
2
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/118) · 2026-04-08 · closed · external user · 1 comment
### Add support for v3 schedules API
## Summary
The MCP server currently only supports classic (v2) schedules via the `/schedules` and `/schedules/{id}` REST API endpoints. PagerDuty's newer v3 schedules — which use the `/v3/schedules/...` API family — are completely invisible to the MCP server.
## Problem
When a schedule is created using PagerDuty's newer scheduling system (v3), the MCP server cannot:
- **Read** the schedule (`get_schedule` returns 404)
- **List** it (`list_schedules` omits it entirely)
- **Update** it (`updat
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/117) · 2026-04-08 · closed · external user · 1 comment
### Large MCP tool schemas consume excessive startup context and reduce usable context for prompts and tool results
**Describe the bug**
The PagerDuty MCP server exposes very large tool schemas at startup, which consumes an excessive amount of MCP client / LLM context before the user has asked for anything.
This appears to come from FastMCP registering Pydantic-generated JSON Schemas with:
- deeply nested wrapper models
- repeated reference objects
- long field descriptions
- verbose tool docstrings
- `$defs` / `$ref`, `title`, `default`, and `anyOf` metadata
In practice, this means a large portion of the
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/115) · 2026-04-02 · open · external user · 3 comments
### get_service and list_services don't return service status (active/maintenance/disabled)
**Is your feature request related to a problem? Please describe.**
When debugging why alerts aren't creating incidents in PagerDuty, the `get_service` tool returns only basic fields (`id`, `name`, `description`, `escalation_policy`, `teams`, `type`) and omits the service `status`. This makes it impossible to determine via MCP whether a service is `active`, `disabled`, or in `maintenance` mode — all of which silently affect whether events create incidents.
**Describe the solution you'd like**
In
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/111) · 2026-03-27 · open · external user · 1 comment
### OAuth "Client is invalid or unknown" error when connecting via Claude's built-in MCP connector
## Description
When using Claude's built-in "Connect" button to connect PagerDuty as an MCP server,
the OAuth flow fails with a "Bad request – Client is invalid or unknown" error from
app.pagerduty.com.
## Steps to Reproduce
1. Open Claude desktop app (Cowork mode)
2. Navigate to MCP connectors and click "Connect" next to PagerDuty
3. Browser is redirected to PagerDuty OAuth authorize endpoint
4. PagerDuty returns: "The request could not be processed. Client is invalid or unknown."
## OAuth
[Read the thread](https://github.com/PagerDuty/pagerduty-mcp-server/issues/107) · 2026-03-23 · open · external user · 2 comments
The remaining reports are on [the project's issue tracker](https://github.com/PagerDuty/pagerduty-mcp-server/issues).