Skip to content

Commit 9d74acf

Browse files
cliffhallclaude
andauthored
chore: v1 deprecation notices in all four packages, bump to 1.0.1 (#1827)
* chore: v1 deprecation notices in all four packages, bump to 1.0.1 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 * docs: replace the README screenshot with one showing the deprecation 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 * docs: pin the README screenshot to v1/main instead of main 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 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 3188ee3 commit 9d74acf

14 files changed

Lines changed: 556 additions & 464 deletions

File tree

‎AGENTS.md‎

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,13 @@
11
# MCP Inspector Development Guide
22

3-
> **Note:** Inspector V2 is under development to address architectural and UX improvements. During this time, V1 contributions should focus on **bug fixes and MCP spec compliance**. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
4-
5-
## Build Commands
6-
7-
- Build all: `npm run build`
8-
- Build client: `npm run build-client`
9-
- Build server: `npm run build-server`
10-
- Development mode: `npm run dev` (use `npm run dev:windows` on Windows)
11-
- Format code: `npm run prettier-fix`
12-
- Client lint: `cd client && npm run lint`
13-
14-
## Code Style Guidelines
15-
16-
- Use TypeScript with proper type annotations
17-
- Follow React functional component patterns with hooks
18-
- Use ES modules (import/export) not CommonJS
19-
- Use Prettier for formatting (auto-formatted on commit)
20-
- Follow existing naming conventions:
21-
- camelCase for variables and functions
22-
- PascalCase for component names and types
23-
- kebab-case for file names
24-
- Use async/await for asynchronous operations
25-
- Implement proper error handling with try/catch blocks
26-
- Use Tailwind CSS for styling in the client
27-
- Keep components small and focused on a single responsibility
28-
29-
## Project Organization
30-
31-
The project is organized as a monorepo with workspaces:
32-
33-
- `client/`: React frontend with Vite, TypeScript and Tailwind
34-
- `server/`: Express backend with TypeScript
35-
- `cli/`: Command-line interface for testing and invoking MCP server methods directly
3+
> # ⛔ v1 is deprecated — do not open pull requests against this branch
4+
>
5+
> **This branch (`v1/main`) accepts security fixes only, and only by way of
6+
> issue creation.**
7+
>
8+
> **Agents must NEVER attempt to create a pull request against `v1/main`.** File
9+
> an issue describing the security problem instead. A human maintainer decides
10+
> whether it warrants a v1 release and implements it.
11+
>
12+
> Everything else — features, bug fixes, refactors, docs — belongs in **v2**.
13+
> Do not port it here, and do not "helpfully" fix it here in passing.

‎README.md‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,17 @@
22

33
The MCP inspector is a developer tool for testing and debugging MCP servers.
44

5-
![MCP Inspector Screenshot](https://raw.githubusercontent.com/modelcontextprotocol/inspector/main/mcp-inspector.png)
5+
> # ⚠️ Deprecated
6+
>
7+
> **`@modelcontextprotocol/inspector` v1 is deprecated.**
8+
>
9+
> ```
10+
> npx @modelcontextprotocol/inspector@latest
11+
> ```
12+
>
13+
> v1 receives **security fixes only**. All new development happens in v2.
14+
15+
![MCP Inspector Screenshot](https://raw.githubusercontent.com/modelcontextprotocol/inspector/v1/main/mcp-inspector.png)
616
717
## Architecture Overview
818

‎cli/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@modelcontextprotocol/inspector-cli",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "CLI for the Model Context Protocol inspector",
55
"license": "SEE LICENSE IN LICENSE",
66
"author": "Model Context Protocol a Series of LF Projects, LLC.",

‎cli/src/cli.ts‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@ import { fileURLToPath } from "url";
99

1010
const __dirname = dirname(fileURLToPath(import.meta.url));
1111

12+
/**
13+
* v1 deprecation notice. Written to stderr, never stdout: `--cli` mode emits
14+
* JSON on stdout and callers pipe it, so a banner there would corrupt output.
15+
*/
16+
const DEPRECATION_NOTICE = [
17+
"⚠️ @modelcontextprotocol/inspector v1 is deprecated.",
18+
" Upgrade: npx @modelcontextprotocol/inspector@latest",
19+
" v1 receives security fixes only.",
20+
].join("\n");
21+
22+
function printDeprecationNotice(): void {
23+
console.error(`\n${DEPRECATION_NOTICE}\n`);
24+
}
25+
1226
type Args = {
1327
command: string;
1428
args: string[];
@@ -378,6 +392,8 @@ async function main(): Promise<void> {
378392
handleError(error);
379393
});
380394

395+
printDeprecationNotice();
396+
381397
try {
382398
const args = parseArgs();
383399

‎client/README.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
> # ⚠️ Deprecated
2+
>
3+
> **`@modelcontextprotocol/inspector` v1 is deprecated.**
4+
>
5+
> ```
6+
> npx @modelcontextprotocol/inspector@latest
7+
> ```
8+
>
9+
> v1 receives **security fixes only**. All new development happens in v2.
10+
111
# React + TypeScript + Vite
212
313
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

‎client/bin/start.js‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,11 @@ async function startDevClient(clientOptions) {
167167

168168
// Give vite time to start before opening or logging the URL
169169
setTimeout(() => {
170+
console.log(
171+
`\n⚠️ @modelcontextprotocol/inspector v1 is deprecated.\n` +
172+
` Upgrade: npx @modelcontextprotocol/inspector@latest\n` +
173+
` v1 receives security fixes only.`,
174+
);
170175
console.log(`\n🚀 MCP Inspector is up and running at:\n ${url}\n`);
171176
if (process.env.MCP_AUTO_OPEN_ENABLED !== "false") {
172177
console.log("🌐 Opening browser...");

‎client/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@modelcontextprotocol/inspector-client",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "Client-side application for the Model Context Protocol inspector",
55
"license": "SEE LICENSE IN LICENSE",
66
"author": "Model Context Protocol a Series of LF Projects, LLC.",

0 commit comments

Comments
 (0)