What is Dynamic Client Registration?

2 min read Updated

Dynamic Client Registration (DCR) is the OAuth 2.0 protocol defined in RFC 7591 that lets a client register itself with an authorisation server at runtime and obtain a client ID without manual setup. MCP adopted it so AI clients can connect to MCP servers whose authorisation servers they have never encountered before.

WHY IT MATTERS

DCR exists in MCP because the usual OAuth assumption — that client and server have a prior relationship — does not hold. An MCP client like Claude Code or Cursor cannot know every remote MCP server a user might add, and asking users to manually register an OAuth client for each one would be prohibitive. With DCR, the client POSTs its metadata to the authorisation server's registration endpoint and receives credentials on the spot.

In practice DCR causes real operational friction:

  • Every client installation can create a fresh client record, so authorisation servers accumulate unbounded, anonymous registrations.
  • Registration metadata is self-asserted, leaving server operators little basis for trust decisions or allowlisting.
  • Many enterprise identity providers disable open registration endpoints outright, breaking the automated flow and forcing manual fallbacks.

The spec has shifted accordingly. The 2025-06-18 revision said clients and authorisation servers SHOULD support DCR; the current 2025-11-25 revision demotes it to MAY, retained for backwards compatibility. The preferred mechanism is now Client ID Metadata Documents (CIMD), where the client's client_id is an HTTPS URL pointing at a hosted metadata JSON document. Clients are told to prefer pre-registered credentials, then CIMD, then DCR, then prompting the user — see MCP Authorization for the full flow.

See dynamic client registration working in your own stack — route your MCP servers through PolicyLayer and every tool call is checked against policy before it runs.

GOVERN YOUR MCP SERVERS →

Enforced before the call runs. Nothing to install.

HOW POLICYLAYER USES THIS

PolicyLayer reduces a team's exposure to per-server registration mechanics: clients authenticate to the PolicyLayer gateway with per-person scoped tokens, while the gateway holds the relationship with each registered upstream server. Which servers are approved, and who may reach them, is decided centrally rather than by each authorisation server's registration policy.

FREQUENTLY ASKED QUESTIONS

Is Dynamic Client Registration still required by MCP?
No. The 2025-11-25 specification makes DCR optional (MAY), kept for backwards compatibility. Client ID Metadata Documents are now the recommended mechanism when client and server have no prior relationship.
Why do MCP clients need automatic registration at all?
Clients cannot know in advance every MCP server and authorisation server a user will connect to, and manual OAuth client registration for each server would create unacceptable friction.
What happens if an authorisation server does not support DCR?
The client must use another approach: a pre-registered client ID, Client ID Metadata Documents if supported, or a UI where the user enters credentials they registered manually.

FURTHER READING

Let agents act without letting them run wild.

Route your MCP servers through PolicyLayer and every tool call is checked against your policy before it runs — allow, deny, or require approval. Per-identity grants. Full audit log. Live in minutes.

Free to start. No card required.

43,000+ MCP servers and 220,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.