modelcontextprotocol / modelcontextprotocol/inspector
Web client sends clientInfo.version as 0.0.0 instead of the Inspector package version
Nobody has claimed this yet.
- 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
- Start MCP Inspector Web version 2.7.0.
- Connect to a modern 2026-07-28 MCP server over Streamable HTTP.
- Open the Tools tab.
- Send tools/list.
- 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:
- "clientInfo.version: "0.0.0" 你能修复吗"
- "2.7.0这个版本号是在哪儿规定的"
- "审查你修改的没问题后,创建一个新的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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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