[Feature Request] Support MCP servers with Client ID Metadata Documents (CIMD) OAuth authentication
Status Fixed / completed
Reported on v2.0.76
Maintainer reply ✓ Yes — localden
Activity 10 comments · opened Jan 15, 2026 · closed Jun 9, 2026
💡 Likely answer: A maintainer (localden, collaborator)
responded on this thread — see the highlighted reply below.
Bug Description
Add support for MCP servers that use Client ID Metadata Documents (CIMD) OAuth.
Environment Info
- Platform: darwin
- Terminal: iTerm.app
- Version: 2.0.76
- Feedback ID: b57af1d9-156d-446d-a08f-773a0eba1ecf
Errors
There are no errors associated with this; I have been setting up an MCP server for my job that leverages CIMD. As a result, I cannot test using Claude (my preferred tool) and instead need to use Copilot in VS Code since it supports CIMD.
Showing cached comments. Read the full discussion on GitHub ↗
9 Comments
https://modelcontextprotocol.io/specification/draft/basic/authorization#overview given "Authorization servers and MCP clients SHOULD support OAuth Client ID Metadata Documents" I'd be very surprised that Boris et al wouldn't have CIMD support by now. But I'm getting "does not support dynamic client registration" when testing with a CIMD only MCP server so 🤷
EDIT: it turns out it might make sense for Claude Code to not support CIMD right now https://workos.com/blog/dynamic-client-registration-dcr-mcp-oauth 'CIMD only works if a client can host a public, stable HTTPS metadata document. Many MCP clients can’t. Think desktop apps, CLI tools, IDE plugins, or internal agents running on a developer laptop. These often use localhost or custom scheme redirects and don’t have a domain they control for hosting metadata.'
Please do not do this. It would not be hard.
It does make sense for Claude Code to implement this. DCR is problematic to begin with from both security and polluting the DB perspective.
Desktop apps are currently expected to have their metadata document hosted on their backend website, not by themselves. With the redirect_uri using
localhostwhere the spec says that for localhost, the port part is ignored to allow for that, or a custom URI schema registered at the operating system, or a public webpage that will do an extra bounce to pass the actual credentials to the desktop app, by copy pasting, or fetching a localhost URL by itself, etc.For example, VS Code Copilot uses https://vscode.dev/oauth/client-metadata.json as CIMD and it works just fine. The trick is
"application_type": "native"which allows special provisions for localhost and custom schemes inredirect_urisAgree with @segevfiner, Anthropic should host the CIMD metadata on a website, not on local host. As for the redirect URI necessary for completing the authorization code flow, that can be local, and the port is specified in the CIMD metadata document.
And further with
"application_type": "native"there are special provisions in the spec to allow for localhost and custom schemas, and furthermore, to ignore the port when the host is localhost. Of course, that assumes a provider that has implemented this provisoon properly.I think there may be a narrower, actionable interoperability bug here in addition to the broader CIMD support request raised in this issue. This issue is currently framed as a feature request to support MCP servers using CIMD OAuth authentication.
When Claude Code uses loopback redirect URIs such as
http://127.0.0.1orhttp://localhost, omittingapplication_typecan create problems across authorization servers. Under RFC 7591, omittingapplication_typedefaults the client to"web". Under RFC 8252, loopback redirect URIs are described for native apps, and RFC 8252 also says that redirect URI alone is not enough to distinguish native from web clients, so client type needs to be recorded during registration.That means the issue may not just be "missing CIMD support" in the abstract. It may also be that Claude Code should explicitly record its intended client type when using loopback redirect URIs, instead of relying on the RFC 7591 default.
There are at least a couple of Claude Code issues that seem consistent with this interoperability angle as well (e.g. https://github.com/anthropics/claude-code/issues/37747).
I opened a separate bug specifically for the
application_typepoint, since it seems actionable even apart from broader CIMD support:There is also related upstream standards discussion here:
I see that the claude code docs currently say:
And I see client metadata for
client_name=Claude Codehosted here: https://claude.ai/oauth/claude-code-client-metadataThanks for the report. Client ID Metadata Document (CIMD) discovery is now supported and documented at code.claude.com/docs/en/mcp. Claude Code discovers CIMD-supporting servers automatically. Closing as fixed.