SIGN IN SIGN UP

docs: rewrite the MCP Inspector documentation for v2 (#3143)

* docs: rewrite the Inspector documentation for v2

Replaces the single legacy-era Inspector page with a folder of pages
covering the three clients (web, CLI, TUI) behind one mcp-inspector
binary, and the legacy vs. modern (2026-07-28) protocol-era fork that
now drives most of the tool's behavior.

New pages under docs/tools/inspector/:

- protocol-eras  the era setting and negotiation, then the fork feature
                 by feature: logging, resource subscriptions, tasks,
                 MRTR, x-mcp-header mirrored params and excluded tools,
                 and the Mcp-* header / error taxonomy. Each section
                 names the test-servers config that reproduces it.
- web            tab-by-tab walkthrough, session token, monitoring
                 sidebar, server settings, deep links.
- cli            method reference, argument coercion, output formats,
                 app probing, exit codes and error envelopes, CI recipes.
- tui            tabs, keyboard reference, loopback OAuth.
- configuration  the launcher/client flag split, catalog vs. config,
                 the -- separator, and every environment variable
                 attributed to the layer that reads it.
- authorization  the OAuth flow end to end, callback URLs, mid-session
                 re-authorization and step-up, non-interactive runs,
                 and the web-to-CLI token handoff.
- recipes        transports, importing client configs, reviewing an
                 MCP App, Docker, and hosting on a network.

/docs/tools/inspector keeps its URL as the overview page; the subpages
are nested under it in the Developer tools navigation group.

Screenshot slots are marked with TODO captions and are still to be
captured.

Refs modelcontextprotocol/inspector#1803

* docs: add Inspector screenshots

Captures 21 screenshots against the repo's composable test servers, so
every era-fork claim in the prose has a picture that reproduces from a
named config:

- protocol eras: the era selector, the Logs fork (session-scoped Set
  Active Level vs. per-request Log Level), the modern subscription
  LISTENING badge, the Tasks fork (tasks/list + blocking result vs.
  polled handles with an inlined result), an MRTR round paused at the
  pending-request modal, the SEP-2243 mirrored-header panel beside the
  struck-through excluded tool, and a -32022 rendered in both the
  Network and Protocol views
- web: tab bar, monitoring sidebar, server settings, tools, resources,
  prompts, apps, protocol
- tui: Tools and Auth tabs
- authorization: Connection Info after a completed OAuth flow

Web and OAuth shots are driven headlessly through Playwright; the TUI
shots are captured from a real pty and replayed through a terminal
emulator, so they keep their colors. All were taken against an isolated
HOME so no real catalog or token appears.

The hero image now shows the v2 client instead of the v1 screenshot.

The one shot not captured is the mid-session re-authorization banner:
the test authorization server grants every configured scope on the
initial DCR exchange, so no step-up fires. That frame is omitted rather
than faked.

Refs modelcontextprotocol/inspector#1803

* docs: correct what a freshly seeded catalog contains

The seed is not empty everywhere — it differs by client, and the pages
flattened both cases into "seeded empty".

The web backend seeds a writable catalog with two sample servers
(DEFAULT_SEED_CONFIG in core/mcp/serverList.ts): a filesystem server
scoped to /tmp and the everything reference server, so a first launch
has something to connect to. The CLI and TUI seed an empty mcpServers
object instead (seedEmptyCatalog in core/mcp/node/config.ts).

Verified both by running each surface against a throwaway HOME rather
than reading the code alone.

A read-only --config is still never seeded on any surface.

Refs modelcontextprotocol/inspector#1803

* docs: drop "fork" wording from the Inspector docs

Addresses review feedback from @BobDickinson and @olaservo: "fork" was
used to mean "the legacy/modern split", which collides with its git
meaning. Every use is now phrased in terms of protocol eras, matching
the `protocolEra` config field and the Protocol Era selector in the UI.

Also reframes the "Reproducing each era locally" section so it reads as
setup for the per-feature "Reproduce with ..." pointers rather than a
non-sequitur, and replaces one remaining "the 2026-07-28 leg" jargon.

* docs: address review feedback on the Inspector docs

- Tighten the Node/npx and server-README sentences in the Inspector index
- Move Protocol eras after the client and configuration pages, in both the
  navigation and the "Where to go next" cards — it only makes sense once the
  basics are understood
- Drop the client-side-negotiation implementation detail in favour of the
  takeaway: era selection behaves the same in all three clients
- Explain the -32602 error panels in relation to legacy rendering, and stop
  implying the difference is isError vs. JSON-RPC error

* Update docs/docs/draft/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/cli.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/web.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/recipes.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector/recipes.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector/configuration.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/draft/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update docs/docs/2026-07-28/tools/inspector.mdx

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Apply review suggestions to Inspector v2 docs

Editorial pass across the eight Inspector pages, applied to both the
draft and 2026-07-28 copies: clearer first-use bridging from the npx
command to the mcp-inspector binary, definitions and cross-links for
protocol era, MRTR, roots, MCP Apps, CIMD, and the session token, plus
corrections where the prose drifted from the current draft (serverInfo
now rides in the result _meta, the -32021 client-capability wording, the
401 WWW-Authenticate resource_metadata description, and the optional legacy
session id). Also fixes the CI recipe whose exit-code branch could never
fire, and swaps the marked em dashes, unicode arrows, ellipsis glyphs,
curly quotes, and bold-lead list walls for plain ASCII prose. A number
of remaining dashes still need the page-wide sweep called out in review.

No-Verification-Needed: docs-only prose changes

:house: Remote-Dev: homespace

* Sweep remaining em dashes and unicode glyphs from Inspector docs

Finish the page-wide pass the review called for: replace the remaining
em dashes, unicode arrows, and ellipsis glyphs with plain ASCII
punctuation (commas, colons, semicolons, or parentheses as the sentence
reads), including inside Frame captions and code samples, and spell out
the placeholder table cells as None. Applied identically to the draft and
2026-07-28 copies.

No-Verification-Needed: docs-only prose changes

:house: Remote-Dev: homespace

* Quote tui.mdx description containing a colon

The unquoted YAML value with a colon after 'Inspector' failed frontmatter parsing and broke the Mintlify deploy. Quote it in both the draft and 2026-07-28 copies, matching cli.mdx.

No-Verification-Needed: docs-only frontmatter fix

:house: Remote-Dev: homespace

---------

Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Den Delimarsky <den@anthropic.com>
C
Cliff Hall committed
e24f0099b60f7c00e165a0faa02a72029d2fa654
Parent: 7bf6041
Committed by GitHub <noreply@github.com> on 8/2/2026, 11:44:41 PM