From abff2486c156d8fcf424fc032db0d5b5e3b3d74e Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 11:27:07 -0800 Subject: [PATCH 1/7] deps --- package-lock.json | 23 ++++++++++++++++++++++- package.json | 25 ++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 090645e..2a1f4a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,27 @@ "server" ], "dependencies": { - "concurrently": "^9.0.1" + "@modelcontextprotocol/sdk": "0.5.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "concurrently": "^9.0.1", + "cors": "^2.8.5", + "eventsource": "^2.0.2", + "express": "^4.21.0", + "lucide-react": "^0.447.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-toastify": "^10.0.6", + "serve-handler": "^6.1.6", + "tailwind-merge": "^2.5.3", + "tailwindcss-animate": "^1.0.7", + "ws": "^8.18.0", + "zod": "^3.23.8" }, "bin": { "mcp-inspector": "bin/cli.js" @@ -914,6 +934,7 @@ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "license": "MIT", "optional": true, + "peer": true, "engines": { "node": ">=14" } diff --git a/package.json b/package.json index f1550fa..b2a53ff 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "@modelcontextprotocol/inspector", - "version": "0.1.0", - "private": true, + "version": "0.1.1", "description": "Model Context Protocol inspector", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -33,7 +32,27 @@ "prettier-fix": "prettier --write ." }, "dependencies": { - "concurrently": "^9.0.1" + "@modelcontextprotocol/sdk": "0.5.0", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "lucide-react": "^0.447.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-toastify": "^10.0.6", + "serve-handler": "^6.1.6", + "tailwind-merge": "^2.5.3", + "tailwindcss-animate": "^1.0.7", + "concurrently": "^9.0.1", + "cors": "^2.8.5", + "eventsource": "^2.0.2", + "express": "^4.21.0", + "ws": "^8.18.0", + "zod": "^3.23.8" }, "devDependencies": { "prettier": "3.3.3", From c1a56810fb98eace99b553f78c6cb29a16261281 Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 11:42:11 -0800 Subject: [PATCH 2/7] pass in args --- bin/cli.js | 14 +++++++++----- client/src/App.tsx | 8 ++++++-- server/src/index.ts | 20 +++++++++++++++++--- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 0de8616..fe50a25 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -6,20 +6,24 @@ import concurrently from "concurrently"; const __dirname = dirname(fileURLToPath(import.meta.url)); -// Paths to the server and client entry points -const serverPath = join(__dirname, "../server/build/index.js"); -const clientPath = join(__dirname, "../client/bin/cli.js"); +// Get command line arguments +const [, , environment, ...mcpServerArgs] = process.argv; + +const inspectorServerPath = join(__dirname, "../server/build/index.js"); + +// Path to the client entry point +const inspectorClientPath = join(__dirname, "../client/bin/cli.js"); console.log("Starting MCP inspector..."); const { result } = concurrently( [ { - command: `node ${serverPath}`, + command: `node ${inspectorServerPath}${environment ? ` --env ${environment}` : ""}${mcpServerArgs.length ? ` ${mcpServerArgs.join(" ")}` : ""}`, name: "server", }, { - command: `node ${clientPath}`, + command: `node ${inspectorClientPath}`, name: "client", }, ], diff --git a/client/src/App.tsx b/client/src/App.tsx index 8ae2068..73a337a 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -186,9 +186,13 @@ const App = () => { }, [args]); useEffect(() => { - fetch("http://localhost:3000/default-environment") + fetch("http://localhost:3000/config") .then((response) => response.json()) - .then((data) => setEnv(data)) + .then((data) => { + setEnv(data.defaultEnvironment); + setCommand(data.defaultCommand); + setArgs(data.defaultArgs); + }) .catch((error) => console.error("Error fetching default environment:", error), ); diff --git a/server/src/index.ts b/server/src/index.ts index 5030fdc..c8f2c74 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -1,5 +1,6 @@ #!/usr/bin/env node +import { parseArgs } from "node:util"; import cors from "cors"; import EventSource from "eventsource"; @@ -16,6 +17,14 @@ import mcpProxy from "./mcpProxy.js"; // eslint-disable-next-line @typescript-eslint/no-explicit-any (global as any).EventSource = EventSource; +const { values } = parseArgs({ + args: process.argv.slice(2), + options: { + env: { type: "string", default: "" }, + args: { type: "string", default: "" }, + }, +}); + const app = express(); app.use(cors()); @@ -97,11 +106,16 @@ app.post("/message", async (req, res) => { } }); -app.get("/default-environment", (req, res) => { +app.get("/config", (req, res) => { try { - res.json(getDefaultEnvironment()); + const defaultEnvironment = getDefaultEnvironment(); + res.json({ + defaultEnvironment, + defaultCommand: values.env, + defaultArgs: values.args, + }); } catch (error) { - console.error("Error in /default-environment route:", error); + console.error("Error in /config route:", error); res.status(500).json(error); } }); From ce350433f9c29c98157fb33d6f6a702451fef7f0 Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 11:42:32 -0800 Subject: [PATCH 3/7] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b2a53ff..1edfd34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/inspector", - "version": "0.1.1", + "version": "0.1.2", "description": "Model Context Protocol inspector", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", From b127ba177a6c8f1e8228aaf5679fa3355f7c34d6 Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 11:50:45 -0800 Subject: [PATCH 4/7] fix arg --- bin/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cli.js b/bin/cli.js index fe50a25..41de0be 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -19,7 +19,7 @@ console.log("Starting MCP inspector..."); const { result } = concurrently( [ { - command: `node ${inspectorServerPath}${environment ? ` --env ${environment}` : ""}${mcpServerArgs.length ? ` ${mcpServerArgs.join(" ")}` : ""}`, + command: `node ${inspectorServerPath}${environment ? ` --env ${environment}` : ""}${mcpServerArgs.length ? ` --args "${mcpServerArgs.join(" ")}"` : ""}`, name: "server", }, { From 75bc2d3f2658643519e624f211e7013318b83c80 Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 11:51:01 -0800 Subject: [PATCH 5/7] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1edfd34..d29fa4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/inspector", - "version": "0.1.2", + "version": "0.1.3", "description": "Model Context Protocol inspector", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", From 83abe4e00f207aa284683c450518e26149fcd309 Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 13:08:42 -0800 Subject: [PATCH 6/7] command --- bin/cli.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 41de0be..77d6e52 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -7,7 +7,7 @@ import concurrently from "concurrently"; const __dirname = dirname(fileURLToPath(import.meta.url)); // Get command line arguments -const [, , environment, ...mcpServerArgs] = process.argv; +const [, , command, ...mcpServerArgs] = process.argv; const inspectorServerPath = join(__dirname, "../server/build/index.js"); @@ -19,7 +19,7 @@ console.log("Starting MCP inspector..."); const { result } = concurrently( [ { - command: `node ${inspectorServerPath}${environment ? ` --env ${environment}` : ""}${mcpServerArgs.length ? ` --args "${mcpServerArgs.join(" ")}"` : ""}`, + command: `node ${inspectorServerPath}${command ? ` --env ${command}` : ""}${mcpServerArgs.length ? ` --args "${mcpServerArgs.join(" ")}"` : ""}`, name: "server", }, { From 1b06e50203063e987743a8dc2c29d402a7f05a58 Mon Sep 17 00:00:00 2001 From: Ashwin Bhat Date: Tue, 19 Nov 2024 13:19:21 -0800 Subject: [PATCH 7/7] use published versions of subpackages --- client/package.json | 3 +-- package-lock.json | 29 +++++------------------------ package.json | 26 ++++---------------------- server/package.json | 3 +-- 4 files changed, 11 insertions(+), 50 deletions(-) diff --git a/client/package.json b/client/package.json index 40fa35a..3c93738 100644 --- a/client/package.json +++ b/client/package.json @@ -1,7 +1,6 @@ { "name": "@modelcontextprotocol/inspector-client", - "version": "0.1.0", - "private": true, + "version": "0.1.5", "description": "Client-side application for the Model Context Protocol inspector", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/package-lock.json b/package-lock.json index 2a1f4a6..aadcba1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,39 +1,21 @@ { "name": "@modelcontextprotocol/inspector", - "version": "0.1.0", + "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@modelcontextprotocol/inspector", - "version": "0.1.0", + "version": "0.1.4", "license": "MIT", "workspaces": [ "client", "server" ], "dependencies": { - "@modelcontextprotocol/sdk": "0.5.0", - "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-select": "^2.1.2", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-tabs": "^1.1.1", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.1", - "concurrently": "^9.0.1", - "cors": "^2.8.5", - "eventsource": "^2.0.2", - "express": "^4.21.0", - "lucide-react": "^0.447.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-toastify": "^10.0.6", - "serve-handler": "^6.1.6", - "tailwind-merge": "^2.5.3", - "tailwindcss-animate": "^1.0.7", - "ws": "^8.18.0", - "zod": "^3.23.8" + "@modelcontextprotocol/inspector-client": "0.1.0", + "@modelcontextprotocol/inspector-server": "0.1.0", + "concurrently": "^9.0.1" }, "bin": { "mcp-inspector": "bin/cli.js" @@ -934,7 +916,6 @@ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "license": "MIT", "optional": true, - "peer": true, "engines": { "node": ">=14" } diff --git a/package.json b/package.json index d29fa4c..651b114 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/inspector", - "version": "0.1.3", + "version": "0.1.5", "description": "Model Context Protocol inspector", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", @@ -32,27 +32,9 @@ "prettier-fix": "prettier --write ." }, "dependencies": { - "@modelcontextprotocol/sdk": "0.5.0", - "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-label": "^2.1.0", - "@radix-ui/react-select": "^2.1.2", - "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-tabs": "^1.1.1", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.1", - "lucide-react": "^0.447.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-toastify": "^10.0.6", - "serve-handler": "^6.1.6", - "tailwind-merge": "^2.5.3", - "tailwindcss-animate": "^1.0.7", - "concurrently": "^9.0.1", - "cors": "^2.8.5", - "eventsource": "^2.0.2", - "express": "^4.21.0", - "ws": "^8.18.0", - "zod": "^3.23.8" + "@modelcontextprotocol/inspector-client": "0.1.0", + "@modelcontextprotocol/inspector-server": "0.1.0", + "concurrently": "^9.0.1" }, "devDependencies": { "prettier": "3.3.3", diff --git a/server/package.json b/server/package.json index a2b1112..296b6a0 100644 --- a/server/package.json +++ b/server/package.json @@ -1,7 +1,6 @@ { "name": "@modelcontextprotocol/inspector-server", - "version": "0.1.0", - "private": true, + "version": "0.1.5", "description": "Server-side application for the Model Context Protocol inspector", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)",