Phase 5 of 9 in the v2 go-live runbook — see #1804 (§6, §7). Depends on phase 4.
⚠️ IRREVERSIBLE — this publishes to npm. npm unpublish is effectively unavailable (72h window, disallowed once others depend on it).
Publish 2.0.0 from the post-swap main.
Write the rollback plan first
This is a blocking prerequisite, not a follow-up. Rollback for a broken 2.0.0 is dist-tag surgery, not unpublish:
npm dist-tag add @modelcontextprotocol/inspector@1.0.1 latest
npm deprecate the bad 2.0.0
- ship 2.0.1
Confirm whoever cuts the release holds the npm rights to do all three.
Tasks
Phase 5 of 9 in the v2 go-live runbook — see #1804 (§6, §7). Depends on phase 4.
Publish 2.0.0 from the post-swap
main.Write the rollback plan first
This is a blocking prerequisite, not a follow-up. Rollback for a broken 2.0.0 is dist-tag surgery, not unpublish:
npm dist-tag add @modelcontextprotocol/inspector@1.0.1 latestnpm deprecatethe bad 2.0.0Confirm whoever cuts the release holds the npm rights to do all three.
Tasks
2.0.0-rc.1under--tag nextto the real registry and install it on a clean machine vianpx @modelcontextprotocol/inspector@next. This is the only way to validate what only exists against live npm: provenance/OIDC minting, thefilesallowlist as npm actually packs it, the postinstall cascade's early-exit under a real dependency install, and the Docker job. A wasted prerelease number is cheap next to a broken 2.0.0.npm run pack:verifygreen (the publish job already runs it as a gate).2.0.0orv2.0.0(the assert tolerates the leadingv) targeting the post-mergemaincommit.latestmoves to 2.0.0 and a1-pinned tag is preserved for v1 users.npm view @modelcontextprotocol/inspector dist-tags→latest: 2.0.0,v1: 1.0.1.