You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Record the explicit decision that the Registry Gateway will not implement RFC 7591 Dynamic Client Registration as a server-side feature. Point future contributors to the CIMD path (sub-issues B and C) as the supported alternative. Prevent re-attempts like the old Feat/DCR PR (#511) from reopening the discussion.
Background
DCR is currently a SHOULD in the MCP 2025-06-18 authorization spec, with an explicit fallback clause. The November 2025 spec direction (Aaron Parecki) retires DCR in favor of CIMD + ID-JAG. Reasons documented in the spec update:
Unbounded database growth on every authorization server — every client registration is a new row, forever.
Rate-limiting complexity — ASes have to guard against registration-based abuse.
No revocation mechanism — once registered, a client can't be un-registered in any standard way.
Enterprise IT loses control — employees can register arbitrary clients without admin approval.
Implementing DCR server-side in the Registry would expose us to all four, for a feature that the spec is actively moving off of. We control the upstream IdP config (Entra / Keycloak / Okta / Cognito / Auth0) and can register clients there when genuinely needed. CIMD covers the "self-describing client" use case without DCR's drawbacks.
A prior PR (#511Feat/DCR, ryohang) attempted this and was closed. We want to make the decision explicit so future contributors don't re-attempt.
Scope
In scope
Decision document in docs/ or docs/adr/ titled "No DCR in the Registry" (or ADR-NNN format, whichever matches existing repo conventions). Content:
Consequences: what operators do instead (configure clients in upstream IdP; use CIMD); how this affects contributors (reject DCR PRs pointing here).
Revisit trigger: the MCP spec reinstates DCR as MUST or a major client regresses to DCR-only.
README.md pointer to the ADR in a "Design decisions" section.
CONTRIBUTING.md pointer (if it exists) in a "Before opening a PR" checklist.
Close-the-loop on Feat/DCR #511 with a comment linking to this ADR so the history is traceable.
Out of scope
Actually implementing CIMD (that's B and C).
Changing any current code behavior. This is a docs-only issue.
Design notes
Use whichever decision-record format the repo already uses. If there's no existing ADR directory, this is the first one; establish docs/adr/NNNN-no-dcr.md as the convention going forward.
Keep it short. One page. The point is to be findable and authoritative, not exhaustive.
Merged; discoverable via repo search for "DCR" and "Dynamic Client Registration".
Risks and open questions
Spec direction could reverse. Unlikely in the short term, but if DCR comes back as MUST in a future MCP spec revision, the ADR needs a "revisit date" and a process for amending decisions. Establish that pattern here since we don't have it yet.
Enterprise customer ask. If a customer specifically asks for DCR, the ADR gives us a clean, documented response rather than an ad-hoc refusal.
Sub-issue G: Decision doc — "Registry will not implement RFC 7591 DCR server-side"
Parent: #988
Labels:
documentation,architecture,oauth,mcp-spec,subtaskPhase: n/a (decision)
Depends on: none
Blocks: none
Summary
Record the explicit decision that the Registry Gateway will not implement RFC 7591 Dynamic Client Registration as a server-side feature. Point future contributors to the CIMD path (sub-issues B and C) as the supported alternative. Prevent re-attempts like the old
Feat/DCRPR (#511) from reopening the discussion.Background
DCR is currently a
SHOULDin the MCP 2025-06-18 authorization spec, with an explicit fallback clause. The November 2025 spec direction (Aaron Parecki) retires DCR in favor of CIMD + ID-JAG. Reasons documented in the spec update:Implementing DCR server-side in the Registry would expose us to all four, for a feature that the spec is actively moving off of. We control the upstream IdP config (Entra / Keycloak / Okta / Cognito / Auth0) and can register clients there when genuinely needed. CIMD covers the "self-describing client" use case without DCR's drawbacks.
A prior PR (#511
Feat/DCR, ryohang) attempted this and was closed. We want to make the decision explicit so future contributors don't re-attempt.Scope
In scope
Out of scope
Design notes
docs/adr/NNNN-no-dcr.mdas the convention going forward./docs. Scratchpad paths should not be long-term references.Acceptance criteria
docs/adr/if establishing ADR convention).Risks and open questions
References
Feat/DCR(CLOSED) — prior attempt