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
- Run
npx @modelcontextprotocol/inspector@2.5.0 and open the web client.
- 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).
- Add a Streamable HTTP server whose AS metadata has
client_id_metadata_document_supported: true (no pre-registered client id in Server Settings).
- Connect, complete login/consent, return to the Inspector (status: Connected).
- 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
Make sure the screenshot shows that no /register request was made
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
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
npx @modelcontextprotocol/inspector@2.5.0and open the web client.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).
client_id_metadata_document_supported: true(no pre-registered client id in Server Settings).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
Make sure the screenshot shows that no /register request was made
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:
client_id.POST /registerrequest is made, so DCR is not actually being used.~/.mcp-inspector/storage/oauth.jsonand reconnecting does not change the behavior.saveClientInformation()appears to defaultregistrationKindto"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