Skip to content

chore: v1 deprecation notices in all four packages, bump to 1.0.1 - #1827

Merged
cliffhall merged 3 commits into
v1/mainfrom
chore/1815-v1-deprecation-1.0.1
Jul 28, 2026
Merged

chore: v1 deprecation notices in all four packages, bump to 1.0.1#1827
cliffhall merged 3 commits into
v1/mainfrom
chore/1815-v1-deprecation-1.0.1

Conversation

@cliffhall

Copy link
Copy Markdown
Member

Closes #1815

Phase 2 of the v2 go-live runbook (#1804 §4), step 1 of 2. This PR publishes nothing — cutting the 1.0.1 release is a separate, manual, irreversible step taken after this merges.

Why all four packages

v1 publishes four separately installable names. A root-README-only notice is invisible to anyone who installed a sub-package, so each gets its own.

Package Notice
@modelcontextprotocol/inspector README.md
@modelcontextprotocol/inspector-cli stderr banner in cli/src/cli.ts main()
@modelcontextprotocol/inspector-server alongside the existing proxy-listening log
@modelcontextprotocol/inspector-client alongside the startup URL log, client/README.md, and a dismissible in-app banner

Worth knowing: cli/ and server/ ship no README, so npm renders a blank page for both. For those two the runtime banner and the forthcoming npm deprecate (#1816) are the only notice their users ever get.

All five surfaces use identical wording, matching the npm deprecate string planned in #1816 so the npm warning and the runtime notice say the same thing.

The CLI banner goes to stderr, deliberately

--cli mode emits JSON on stdout and callers pipe it, so a banner there would corrupt output. Verified against a real server rather than assumed:

$ node cli/build/cli.js --cli npx -y @modelcontextprotocol/server-everything --method tools/list
# stderr → the deprecation banner
# stdout → first char '{', parses cleanly, 13 tools

The same file backs the root mcp-inspector bin (cli/build/cli.js), so this one banner covers both entry points and there is no separate root runtime hook to patch.

In-app banner

DeprecationBanner.tsx — dismissible, dismissal persisted in localStorage. Both the read and the write are guarded, so a storage failure (Safari private mode, storage disabled) degrades to "the banner reappears" rather than breaking app startup.

AGENTS.md

Replaced with a hard stop: v1 takes security fixes only, by issue only, and agents must never open a PR against v1/main.

Version

npm run update-version 1.0.1 — all four package.jsons plus the lockfile. check-version passes. The lockfile diff is restricted to version fields; unrelated libc churn a newer npm wanted to introduce was reverted.

publish-all is deliberately NOT changed here. 1.0.1 must take latest — that is the entire point of shipping this notice to npx users. Adding --tag v1 is #1816, immediately after this publishes.

Reviewing the diff

client/src/App.tsx shows ~836 changed lines but git diff -w shows 8. Wrapping the layout in a flex column added one nesting level and prettier re-indented the subtree. Review it with -w.

Verification

  • npm run build — all four packages build
  • npm run check-version — passes
  • prettier --check — clean on every changed file
  • CLI stdout/stderr separation verified against a live server, as above

🤖 Generated with Claude Code

https://claude.ai/code/session_01Txmv2qqv3yeKgRzoqXytzD

Phase 2 of the v2 go-live runbook (#1804 §4). v1 publishes four separately
installable names, so each gets its own notice — a root-README-only change is
invisible to anyone who installed a sub-package. `cli/` and `server/` ship no
README at all, so for those two the runtime banner plus the forthcoming
`npm deprecate` (#1816) are the only notice their users ever get.

Notices, all using identical wording so the runtime banner and the npm warning
agree:

- root `README.md` and `client/README.md`
- `cli/src/cli.ts` — stderr banner in `main()`. Also covers the root
  `mcp-inspector` bin, which is `cli/build/cli.js`. Deliberately **stderr**:
  `--cli` mode emits JSON on stdout and callers pipe it, so a banner there
  would corrupt output. Verified against a real server — stdout stays
  parseable JSON while the banner goes to stderr.
- `server/src/index.ts` — alongside the existing proxy listening log
- `client/bin/start.js` — alongside the existing startup URL log
- `client/src/components/DeprecationBanner.tsx` — dismissible in-app banner,
  dismissal persisted in localStorage with both read and write guarded so a
  storage failure degrades to "banner reappears" rather than breaking the app

AGENTS.md is replaced with a hard stop: v1 takes security fixes only, by issue
only, and agents must never open a PR against v1/main.

Version bumped to 1.0.1 across all four package.json files plus the lockfile
(`npm run update-version`); `check-version` passes. The lockfile diff is
restricted to the version fields — the `libc` churn a newer npm wanted to
introduce was reverted as unrelated.

`publish-all` is deliberately NOT changed here: 1.0.1 must take `latest`, which
is the entire point of shipping this notice to npx users. Adding `--tag v1` is
#1816, immediately after this publishes.

Note for review: `client/src/App.tsx` shows ~836 changed lines but `git diff -w`
shows 8 — wrapping the layout in a flex column added one nesting level and
prettier re-indented the subtree. Review it with `-w`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Txmv2qqv3yeKgRzoqXytzD
@cliffhall cliffhall added the v1 label Jul 28, 2026
cliffhall and others added 2 commits July 27, 2026 21:19
…banner

Captured from this branch's build: v1.0.1 in the sidebar heading, the
dismissible deprecation banner across the top, connected to the everything
server with tools listed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Txmv2qqv3yeKgRzoqXytzD
The image URL must stay absolute — a relative path breaks on the npm package
page, which renders the README outside any repo context. But it was pinned to
`main`, so the v1 README rendered whatever `main` happened to hold: today the
pre-deprecation screenshot, and after the v2 tree swap (#1817) either the v2
screenshot or a 404 if that path doesn't exist there.

Pinning to `v1/main` keeps it absolute for npm, shows the deprecation banner
once this merges, and survives the swap. Verified all candidate refs resolve
200 — GitHub disambiguates the slash in `v1/main` as the ref without needing a
`refs/heads/` prefix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Txmv2qqv3yeKgRzoqXytzD
@cliffhall
cliffhall merged commit 9d74acf into v1/main Jul 28, 2026
4 checks passed
@cliffhall
cliffhall deleted the chore/1815-v1-deprecation-1.0.1 branch July 28, 2026 01:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant