anthropics / anthropics/claude-ai-mcp

claude.ai PagerDuty connector: OAuth authorize rejected — PagerDuty returns "Invalid or missing value for redirect_uri" for https://claude.ai/api/mcp/auth_callback

Open
#431 4 comments 10 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
471
Forks
76
PR merge metrics
No merged PRs in 30d

Description

## MCP server URL or name

claude.ai **PagerDuty** connector → `https://mcp.pagerduty.com/mcp` (PagerDuty MCP Server v3.1.1)

## How are you connecting to this server?

From browsing the MCP server directory — it is the built-in/directory PagerDuty connector. I trigger auth from Claude Code via `/mcp` → "claude.ai PagerDuty", which opens the standard claude.ai connector OAuth flow.

## Where does the issue occur?

In the authorization screen (PagerDuty's `authorize` endpoint, before any login or consent).

## When did you last reproduce this?

2026-06-11, ~2:40 PM ET (also reproduced repeatedly over the preceding several weeks).

## Browser and OS

Google Chrome on macOS (Darwin 25.5.0).

## Describe the issue

Authorizing the **claude.ai PagerDuty connector** fails at the OAuth **authorize** step, before any login or consent. `/mcp` → "claude.ai PagerDuty" opens PagerDuty's authorization URL, and PagerDuty immediately returns **"Bad request — Invalid or missing value for redirect_uri parameter."**

The `redirect_uri` Claude.ai sends is the standard, well-formed connector callback:

```
https://claude.ai/api/mcp/auth_callback
```

This is the **same callback my other working claude.ai connectors use** (Atlassian, Slack, Microsoft 365, and two internal connectors all authorize successfully through `https://claude.ai/api/mcp/auth_callback`). So the value Claude.ai sends is correct and unchanged across connectors — PagerDuty's OAuth app rejects it, which indicates `https://claude.ai/api/mcp/auth_callback` is **not on the registered redirect-URI allowlist of the PagerDuty OAuth client** backing this connector (`client_id=5fd41121-b38c-4ae7-8e22-425f4aa3f665`).

Because the grant can never complete, the claude.ai proxy holds no token and every subsequent request to the connector returns `mcp_unauthorized_no_token`, so the connector shows its tool schema (from a cached projection) but no tool ever works.

The authorize request itself is well-formed OAuth 2.1 (PKCE `S256`, `state` present, RFC 8707 `resource=https://mcp.pagerduty.com/mcp`). The failure is purely the `redirect_uri` allowlist check.

This looks closely related to #48957 (BigQuery connector on claude.ai rejecting the same `https://claude.ai/api/mcp/auth_callback` callback), but for the PagerDuty connector specifically — which I could not find reported anywhere on the Anthropic or PagerDuty side.

## Error details

PagerDuty authorization screen:

```
PagerDuty
Bad request
The request could not be processed.
Invalid or missing value for redirect_uri parameter.
Error identifier: 0VpwKaNG (also reproduced: ld8LW8D5)
```

Claude Code `/mcp` after the browser flow:

```
Tried reconnecting, but claude.ai PagerDuty is still unauthorized.
Make sure the browser sign-in completed, then try again from /mcp.
```

Claude.ai proxy connection error (MCP debug log):

```
Connection error: Streamable HTTP error: Error POSTing to endpoint:
{"type":"error","error":{"type":"authentication_error",
"message":"MCP server requires authentication but no OAuth token is configured.",
"details":{"error_code":"mcp_unauthorized_no_token"}}}
```

## Expected behavior

Selecting the claude.ai PagerDuty connector should open PagerDuty's authorization/consent screen and, after I approve, redirect back to `https://claude.ai/api/mcp/auth_callback`, store the OAuth token, and make the PagerDuty MCP tools available — the same way the Atlassian/Slack/Microsoft 365 connectors work. PagerDuty's OAuth client should have `https://claude.ai/api/mcp/auth_callback` registered as an allowed redirect URI.

## Additional context

**Full authorize URL** Claude.ai opened (per-session `code_challenge`/`state` redacted; everything else verbatim):

```
https://app.pagerduty.com/global/oauth/authorize
?response_type=code
&client_id=5fd41121-b38c-4ae7-8e22-425f4aa3f665
&redirect_uri=https%3A%2F%2Fclaude.ai%2Fapi%2Fmcp%2Fauth_callback
&code_challenge=
&code_challenge_method=S256
&state=
&scope=openid+read+write+incidents.read+...(full PagerDuty scope set)...
&resource=https%3A%2F%2Fmcp.pagerduty.com%2Fmcp
```

- Decoded `redirect_uri`: `https://claude.ai/api/mcp/auth_callback` (valid, absolute, https — not truncated/malformed).
- The connector's server id on my account: `mcpsrv_01996ySuyYRkNiXdM1n9Rnyq` (reached via `mcp-proxy.anthropic.com/v1/mcp/`). Account email available on request.
- The same flow fails identically across multiple Claude Code sessions over several weeks; retrying `/mcp` does not change the outcome.
- Likely a connector-provisioning gap between Anthropic and PagerDuty: PagerDuty's public docs only cover the local/API-key server and a remote endpoint and don't document the claude.ai web-connector callback registration.
- Screenshots of the PagerDuty "Bad request" error page available on request.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.