Skip to content

Bug: Connection Info shows DCR even when OAuth client registration uses CIMD #2242

Description

@randy-s-shin

Which version line?

v2 — current (@modelcontextprotocol/inspector@latest)

Which client?

Web

Inspector version

2.5.0

Node version

v24.15.0

Operating system (and browser, for the web client)

Windows 11, Chrome 152.0.7977.65

Transport

Streamable HTTP

MCP server under inspection

Server: private Streamable HTTP MCP server (FastMCP 4.0.1 / python mcp 2.1.1), https:///mcp
Protocol era: modern (2026-07-28)
OAuth: yes
the AS metadata advertises "client_id_metadata_document_supported": true
and there is no pre-registered client. The flow never calls /oauth/register (verified in the Network tab).

Steps to reproduce

  1. Run npx @modelcontextprotocol/inspector@2.5.0 and open the web client.
  2. Client Settings → OAuth → enable "Use CIMD" and set the CIMD metadata URL
    to an HTTPS URL that serves a valid client-metadata JSON
    (client_id == that URL, redirect_uris includes http://127.0.0.1:6274/oauth/callback).
  3. Add a Streamable HTTP server whose AS metadata has
    client_id_metadata_document_supported: true (no pre-registered client id in Server Settings).
  4. Connect, complete login/consent, return to the Inspector (status: Connected).
  5. Open Connection Info → OAuth Details (or the client-registration badge).

Expected behavior

The registration kind is shown as CIMD (e.g. "CIMD (URL client_id)"), because the
client_id used for /oauth/authorize and /oauth/token is the metadata-document URL and
no dynamic registration request was made.

Actual behavior

Client ID shows the metadata-document URL (correct), but the registration kind is
labeled "Dynamic (DCR)". The Network tab confirms there was no POST /oauth/register.
Reproduces after "Clear OAuth state and disconnect" and after restarting the Inspector
(~/.mcp-inspector/storage/client.json / mcp.json cleared).

Logs, errors, or screenshots

Image

Make sure the screenshot shows that no /register request was made

Image

In OAuth Details, the Client ID is an HTTPS URL ending in .json.

Already prototyped a fix?

No, I haven’t prototyped a fix yet.

I only traced the relevant Inspector and MCP TypeScript SDK code paths to understand why CIMD is reported as DCR in Connection Info.

What I verified:

  • The OAuth flow uses a HTTPS Client Metadata Document URL as the client_id.
  • No POST /register request is made, so DCR is not actually being used.
  • Deleting ~/.mcp-inspector/storage/oauth.json and reconnecting does not change the behavior.
  • Connection Info still reports the registration method as DCR.
  • In the Inspector source, saveClientInformation() appears to default registrationKind to "dcr" when it is not explicitly provided.

I have not made or tested a code change, so I don’t have an exact implementation prompt or before/after screenshots.

Before you submit

  • I searched existing issues and this is not a duplicate.
  • This is not a security vulnerability report (those go through the private advisory process).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions