modelcontextprotocol / modelcontextprotocol/inspector

Web client sends clientInfo.version as 0.0.0 instead of the Inspector package version

Open
#2,445 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
10.9k
Forks
1.5k
Avg merge
6h 17m
Merged PRs (30d)
151

Description

Which version line?

v2 — current (@modelcontextprotocol/inspector@latest)

Which client?

Web

Inspector version

2.7.0

Node version

v24.21.0

Operating system (and browser, for the web client)

Win11, Microsoft Edge 版本 153.0.4234.32 (正式版本) (64 位)

Transport

Streamable HTTP

MCP server under inspection

A custom MCP server using the 2026-07-28 modern protocol era.

Protocol era: modern
Transport: Streamable HTTP
OAuth: yes, using Client ID Metadata Document

Steps to reproduce
  1. Start MCP Inspector Web version 2.7.0.
  2. Connect to a modern 2026-07-28 MCP server over Streamable HTTP.
  3. Open the Tools tab.
  4. Send tools/list.
  5. Inspect params._meta["io.modelcontextprotocol/clientInfo"] in the Protocol or Network tab.
Expected behavior

The Web client should report its actual Inspector package version:

{
"name": "mcp-inspector",
"version": "2.7.0"
}

The version is already supplied to the browser through GET /api/config.

Actual behavior

The Web client reports the core fallback version:

{
"name": "mcp-inspector",
"version": "0.0.0"
}

The Web connection lifecycle creates InspectorClient without passing the version received from GET /api/config, so InspectorClient falls back to its neutral 0.0.0 identity.

Logs, errors, or screenshots

No response

Already prototyped a fix?

Yes.

Exact prompts used:

  1. "clientInfo.version: "0.0.0" 你能修复吗"
  2. "2.7.0这个版本号是在哪儿规定的"
  3. "审查你修改的没问题后,创建一个新的branch提交到新branch上,我PR到官方"

The prototype passes the Inspector version from App.tsx into useConnectionLifecycle and supplies it to InspectorClient as clientIdentity.

It preserves the latest version through the existing asynchronous configuration gate, including the case where a connection starts before GET /api/config finishes.

Verification performed:

  • Hook unit suite passed: 61 tests.
  • Web formatting, lint, TypeScript checking, production build, and runner build passed.
  • Tests cover the normal connection path and the delayed configuration race.
  • The repository-wide gate still has unrelated existing Windows-specific failures
    in gate-lease, skill-eval, and file secret-store tests.
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).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in App.tsx and follow the useConnectionLifecycle path into InspectorClient, then inspect how GET /api/config supplies the Inspector version. Verify that both normal connections and connections started before configuration finishes report the configured package version instead of 0.0.0, using the existing hook unit suite and web checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.