
This page is part of our MCP specification reference, a plain-English guide to the Model Context Protocol spec (version 2026-07-28), within The MCP Guide. Building a server? See MCP development.
Dynamic Client Registration (DCR) is an OAuth standard, RFC 7591, that lets an app register itself with an authorization server automatically and get a client ID back. MCP used it so AI apps could connect to new servers without manual setup. The 2026-07-28 MCP spec deprecated it in favor of Client ID Metadata Documents (CIMD).
Status in the 2026-07-28 spec: deprecated
Deprecated does not mean removed. DCR still works and stays in the spec "for backwards compatibility with authorization servers that do not support Client ID Metadata Documents." This page explains how DCR works, why MCP moved away from it, and what to do now. It follows the 2026-07-28 client registration page, checked on 28 October 2026.
Key Takeaways
- DCR lets an MCP client send a POST to an authorization server's registration endpoint and receive a client ID with no user interaction.
- It was a "SHOULD" in the 2025-03-26 and 2025-06-18 specs, became a "MAY" in 2025-11-25, and was deprecated in 2026-07-28.
- The replacement is Client ID Metadata Documents, where the client ID is an HTTPS URL and no registration call is needed.
- Clients that still use DCR must send an
application_type, and must tie any saved credentials to the authorization server that issued them. - The deprecated features registry lists earliest removal as the first spec revision released on or after 2027-07-28.
What DCR is
RFC 7591, published in July 2015, "describes how an OAuth 2.0 client can be dynamically registered with an authorization server." The client sends "an HTTP POST to the client registration endpoint with a content type of 'application/json'." The authorization server assigns "a unique client identifier," and may also assign a client secret.
In MCP, the spec says DCR lets "MCP clients obtain OAuth client IDs without user interaction." The client finds the endpoint through the registration_endpoint field in the authorization server's metadata.
How it works in MCP
A registration request from a desktop MCP client might look like this. It is adapted from RFC 7591's request format and the MCP spec's application_type rule; the values are illustrative:
{
"client_name": "Example MCP Client",
"application_type": "native",
"redirect_uris": ["http://127.0.0.1:3000/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none"
}
The authorization server replies with a client_id, and the client continues with the normal OAuth flow.
The application_type rule
When the authorization server also speaks OpenID Connect, the redirect URIs it allows can depend on application_type. The 2026-07-28 spec says "MCP clients MUST specify an appropriate application_type," because omitting it "defaults to 'web' under OIDC, which can conflict with native-style redirect URIs."
- Desktop apps, mobile apps, CLI tools and
localhostweb apps "SHOULD useapplication_type: \"native\"." - Remote browser-based apps "SHOULD use
application_type: \"web\"."
Binding credentials to the issuer
Clients that save DCR credentials "MUST associate those credentials with the specific authorization server that issued them, keyed by the authorization server's issuer identifier." If the MCP server switches to a different authorization server, clients "MUST NOT reuse client credentials" and "MUST re-register."
Why MCP moved away from it
The changelog does not give a written rationale, and the linked pull request is a reorganization of the authorization pages. These are the practical differences the spec's own rules point to.
- One registration per server. A client using DCR registers separately with each authorization server and must store and track every result. CIMD IDs "are portable across authorization servers," so "No re-registration is needed."
- Self-asserted identity. A DCR request is whatever the client says it is. With CIMD, the identity is a URL on the maker's domain, and authorization servers "MAY implement domain-based trust policies."
- Open registration endpoints. The security considerations page says MCP proxy servers using static client IDs "MUST obtain user consent for each dynamically registered client" before forwarding to third-party authorization servers. See the confused deputy problem in MCP.
The 2026-07-28 changelog states the change plainly: "Deprecate the OAuth 2.0 Dynamic Client Registration Protocol (RFC7591) as a client registration mechanism in favor of Client ID Metadata Documents."
What changed across spec versions
| Version | DCR status |
|---|---|
| 2025-03-26 | "MCP auth implementations SHOULD support" DCR |
| 2025-06-18 | Authorization servers and clients "SHOULD support" DCR |
| 2025-11-25 | Downgraded to "MAY"; CIMD added as recommended |
| 2026-07-28 | Deprecated; application_type required; credentials bound to issuer |
The deprecated features registry lists DCR with migration path "Client ID Metadata Documents" and earliest removal "First revision released on or after 2027-07-28." The registry adds that actual removal "is a Core Maintainer decision" and "may happen later." Our MCP versioning and deprecation guide explains the twelve-month policy.
What to do now
If you build an MCP client:
- Implement CIMD and host your metadata document at a stable HTTPS URL.
- Check
client_id_metadata_document_supportedin authorization server metadata. - Keep DCR only as a fallback when CIMD is not advertised and
registration_endpointis. - When you use DCR, always send
application_type, and key saved credentials by issuer.
If you run an authorization server for an MCP server:
- Add CIMD support and advertise it.
- Put SSRF protections in front of metadata fetching.
- Keep the registration endpoint during the deprecation window if existing clients depend on it.
The full CIMD rules are in Client ID Metadata Documents in MCP.
Common mistakes
- Starting a new client on DCR only. New implementations should use CIMD.
- Omitting
application_type. OIDC servers may then rejectlocalhostredirect URIs. - Reusing a client ID after the authorization server changes. The spec forbids it.
- Removing DCR from an authorization server overnight. Older clients may break.
- Treating "deprecated" as "broken." DCR still works and is still in the spec during the deprecation window.
Next step
Large companies often want neither per-user registration nor per-user consent. Read Enterprise-Managed Authorization for MCP next, or see how our MCP development team handles auth migrations.
Frequently asked questions
Is Dynamic Client Registration still allowed in MCP?
Yes. In the 2026-07-28 spec, clients and authorization servers "MAY" support it, but it is deprecated. It remains for authorization servers that do not support Client ID Metadata Documents.
When will DCR be removed from MCP?
No date is fixed as of October 2026. The registry says it becomes eligible for removal in the first revision released on or after 28 July 2027, and actual removal may come later.
What replaces DCR?
Client ID Metadata Documents. The client uses an HTTPS URL as its client ID, and the authorization server fetches the client's metadata from that URL.
Do I need DCR if my client is pre-registered?
No. Pre-registered details come first in the spec's priority order. DCR is the third option, after pre-registration and CIMD.
Is RFC 7591 deprecated by the IETF?
No. Only MCP's use of it as a client registration mechanism is deprecated. RFC 7591 remains a published IETF standard.











