Is authorization server DCR a MUST requirement and how PKCE fits in this workflow? #525
Replies: 1 comment
-
|
You are right to be confused — the spec says DCR is optional, but every implementation assumes it. Here is the real story. DCR is NOT a MUST in the spec, but it IS a MUST in practiceThe spec says DCR is "not required." But the MCP ecosystem has effectively made it mandatory because:
So while you can technically build an MCP authorization server without DCR, no major MCP client will be able to connect to it. The spec says "optional" but the ecosystem says "required." Why DCR exists despite PKCEYour intuition is sharp: PKCE alone can secure the authorization code flow without a client secret. So why require DCR? The answer is not about security — it is about metadata discovery and lifecycle management:
PKCE + DCR are not alternatives — they serve different purposes:
You need both. DCR registers the client identity and redirect URI; PKCE protects the code exchange that follows. What you can do for Claude.ai specificallyClaude Desktop and Claude.ai both require DCR. There is no way to use PKCE-only without DCR with these clients. Your authorization server MUST expose:
The DCR endpoint can be minimal — it just needs to:
You do not need to issue a Integration details for ClaudeFor technical details on Claude's MCP OAuth integration:
There is no separate "Claude integration guide" for MCP OAuth beyond what is in the MCP spec itself. The spec IS the integration contract. If you implement the spec correctly (including DCR), Claude will work. If you skip DCR, it will not. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-submission Checklist
Question Category
Your Question
Hi,
According to this section, DCR is not a required feature of the authorization server. But for all the code implementations I can find, they all assume the authorization servers provides DCR. Especially, the MCP Inspector has a hardcoded step to register a new client every time you start the oauth workflow.
In this section, it says MCP client MUST implement PKCE. But a client secret or credential is not required to implement PKCE. Then why a MCP client must require or register a oauth client? Wouldn't using PKCE to get an access token more secure and easier to implement?
I am quite confused about this two requirement.
Lastly, does Claude.ai and Claude Desktop support PKCE? If I want to implement a MCP server specifically for Claude.ai with authorization, can I configure my oauth provider to support PKCE only without DCR? Is there a place I can get technical details for integration with claude.ai and Claude Desktop?
Thanks
Beta Was this translation helpful? Give feedback.
All reactions