{"_id":"@bryan-thompson/dashboard","_rev":"5-3305ff3ab1f0f85c07e427cab8ee129f","name":"@bryan-thompson/dashboard","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@bryan-thompson/dashboard","version":"0.1.0","author":{"name":"Bryan Thompson"},"license":"MIT","_id":"@bryan-thompson/dashboard@0.1.0","maintainers":[{"name":"bryan-thompson","email":"bryan@triepod.ai"}],"homepage":"https://github.com/triepod-ai/dashboard","bugs":{"url":"https://github.com/triepod-ai/dashboard/issues"},"bin":{"mcp-dashboard":"cli/build/cli.js"},"dist":{"shasum":"d1bfd6fac0423cc41be915ac63bf4ee47b8c98ed","tarball":"https://registry.npmjs.org/@bryan-thompson/dashboard/-/dashboard-0.1.0.tgz","fileCount":26,"integrity":"sha512-pxtOKtIA2Ln3Xv2KD/YTJnxg/XlCLQIB7Gzl5ou/Ygp1lhQAKP4FeOoyLEseMtx1Eacy/hJWN8OOWCxq65EIFA==","signatures":[{"sig":"MEUCIFSY544bo4DvxoZEnkcgbWWFhuMXRkZ2alIRatrSpJDOAiEA7JGpqzmFRfJZmvzMdEGFfPwbjYm1jx+iMSkw3wX2lR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":949694},"type":"module","engines":{"node":">=22.7.5"},"gitHead":"2757372e7e0ff3cf95f644b393c07203b33ad414","scripts":{"dev":"node client/bin/start.js --dev --no-auth","kill":"for port in 6286 6287; do lsof -ti:$port | xargs kill -9 2>/dev/null || echo \"No process on port $port\"; done","lint":"prettier --check . && cd client && npm run lint","test":"npm run prettier-check && cd client && npm test","build":"npm run build-server && npm run build-client && npm run build-cli","clean":"rimraf ./node_modules ./client/node_modules ./cli/node_modules ./build ./client/dist ./server/build ./cli/build ./package-lock.json && npm install","start":"node client/bin/start.js","dev:sdk":"npm run link:sdk && concurrently \"npm run dev\" \"cd sdk && npm run build:esm:w\"","prepare":"husky && npm run build","link:sdk":"(test -d sdk || ln -sf ${MCP_SDK:-$PWD/../typescript-sdk} sdk) && (cd sdk && npm link && (test -d node_modules || npm i)) && npm link @modelcontextprotocol/sdk","test-cli":"cd cli && npm run test","test:e2e":"MCP_AUTO_OPEN_ENABLED=false npm run test:e2e --workspace=client","build-cli":"cd cli && npm run build","unlink:sdk":"(cd sdk && npm unlink -g) && rm sdk && npm unlink @modelcontextprotocol/sdk","dev:windows":"node client/bin/start.js --dev","publish-all":"npm publish --workspaces --access public && npm publish --access public","build-client":"cd client && npm run build","build-server":"cd server && npm run build","prettier-fix":"prettier --write .","start-client":"cd client && npm run preview","start-server":"cd server && npm run start","check-version":"node scripts/check-version-consistency.js","prettier-check":"prettier --check .","update-version":"node scripts/update-version.js"},"_npmUser":{"name":"bryan-thompson","email":"bryan@triepod.ai"},"workspaces":["client","server","cli"],"_npmVersion":"9.2.0","description":"MCP Dashboard - Multi-server management and monitoring interface for Model Context Protocol","directories":{},"lint-staged":{"**/*.{js,ts,jsx,tsx,json,md}":["prettier --write"]},"_nodeVersion":"18.19.0","dependencies":{"zod":"^3.25.76","open":"^10.2.0","ts-node":"^10.9.2","spawn-rx":"^5.1.2","node-fetch":"^3.3.2","shell-quote":"^1.8.3","concurrently":"^9.2.0","@modelcontextprotocol/sdk":"^1.18.0","@bryan-thompson/dashboard-cli":"^0.1.0","@bryan-thompson/dashboard-client":"^0.1.0","@bryan-thompson/dashboard-server":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","rimraf":"^6.0.1","prettier":"^3.6.2","typescript":"^5.4.2","@types/jest":"^29.5.14","@types/node":"^22.17.0","lint-staged":"^16.1.5","@playwright/test":"^1.54.1","jest-fixed-jsdom":"^0.0.9","@types/shell-quote":"^1.7.5"},"_npmOperationalInternal":{"tmp":"tmp/dashboard_0.1.0_1760194789673_0.053984032155569794","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bryan-thompson/dashboard","version":"0.1.1","author":{"name":"Bryan Thompson"},"license":"MIT","_id":"@bryan-thompson/dashboard@0.1.1","maintainers":[{"name":"bryan-thompson","email":"bryan@triepod.ai"}],"homepage":"https://github.com/triepod-ai/dashboard","bugs":{"url":"https://github.com/triepod-ai/dashboard/issues"},"bin":{"mcp-dashboard":"cli/build/cli.js"},"dist":{"shasum":"45d12a667f466766131c0d901a347a769a5f1b62","tarball":"https://registry.npmjs.org/@bryan-thompson/dashboard/-/dashboard-0.1.1.tgz","fileCount":26,"integrity":"sha512-5yZNuVtN+u4ftT51ygdXuiY856hXM6vaqzOlZYJG9GJegbJm0RtujHQC0wb2t8RFY4DWb2giF4pyDNFa/pNpig==","signatures":[{"sig":"MEUCIQDolm4HdHUnJY6DazaiEGGvEUXWfkuF8IUxMFJrvZtJGQIgEXdVq1nU6jRS6vRXQOLc4oKlPHXFR5c1d1NwLpIk3/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":950071},"type":"module","engines":{"node":">=22.7.5"},"gitHead":"9041c75d3e8efc7785a4724e07ec328fbf02cf51","scripts":{"dev":"node client/bin/start.js --dev --no-auth","kill":"for port in 6286 6287; do lsof -ti:$port | xargs kill -9 2>/dev/null || echo \"No process on port $port\"; done","lint":"prettier --check . && cd client && npm run lint","test":"npm run prettier-check && cd client && npm test","build":"npm run build-server && npm run build-client && npm run build-cli","clean":"rimraf ./node_modules ./client/node_modules ./cli/node_modules ./build ./client/dist ./server/build ./cli/build ./package-lock.json && npm install","start":"node client/bin/start.js","dev:sdk":"npm run link:sdk && concurrently \"npm run dev\" \"cd sdk && npm run build:esm:w\"","prepare":"husky && npm run build","link:sdk":"(test -d sdk || ln -sf ${MCP_SDK:-$PWD/../typescript-sdk} sdk) && (cd sdk && npm link && (test -d node_modules || npm i)) && npm link @modelcontextprotocol/sdk","test-cli":"cd cli && npm run test","test:e2e":"MCP_AUTO_OPEN_ENABLED=false npm run test:e2e --workspace=client","build-cli":"cd cli && npm run build","unlink:sdk":"(cd sdk && npm unlink -g) && rm sdk && npm unlink @modelcontextprotocol/sdk","dev:windows":"node client/bin/start.js --dev","publish-all":"npm publish --workspaces --access public && npm publish --access public","build-client":"cd client && npm run build","build-server":"cd server && npm run build","prettier-fix":"prettier --write .","start-client":"cd client && npm run preview","start-server":"cd server && npm run start","check-version":"node scripts/check-version-consistency.js","prettier-check":"prettier --check .","update-version":"node scripts/update-version.js"},"_npmUser":{"name":"bryan-thompson","email":"bryan@triepod.ai"},"workspaces":["client","server","cli"],"_npmVersion":"9.2.0","description":"MCP Dashboard - Multi-server management and monitoring interface for Model Context Protocol","directories":{},"lint-staged":{"**/*.{js,ts,jsx,tsx,json,md}":["prettier --write"]},"_nodeVersion":"18.19.0","dependencies":{"zod":"^3.25.76","open":"^10.2.0","ts-node":"^10.9.2","spawn-rx":"^5.1.2","node-fetch":"^3.3.2","shell-quote":"^1.8.3","concurrently":"^9.2.0","@modelcontextprotocol/sdk":"^1.18.0","@bryan-thompson/dashboard-cli":"^0.1.0","@bryan-thompson/dashboard-client":"^0.1.0","@bryan-thompson/dashboard-server":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","rimraf":"^6.0.1","prettier":"^3.6.2","typescript":"^5.4.2","@types/jest":"^29.5.14","@types/node":"^22.17.0","lint-staged":"^16.1.5","@playwright/test":"^1.54.1","jest-fixed-jsdom":"^0.0.9","@types/shell-quote":"^1.7.5"},"_npmOperationalInternal":{"tmp":"tmp/dashboard_0.1.1_1760195859807_0.08134306745050024","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bryan-thompson/dashboard","version":"0.1.2","author":{"name":"Bryan Thompson"},"license":"MIT","_id":"@bryan-thompson/dashboard@0.1.2","maintainers":[{"name":"bryan-thompson","email":"bryan@triepod.ai"}],"homepage":"https://github.com/triepod-ai/dashboard","bugs":{"url":"https://github.com/triepod-ai/dashboard/issues"},"bin":{"mcp-dashboard":"cli/build/cli.js"},"dist":{"shasum":"c22028c7d5012693e3f498c31cc99929ceb35f84","tarball":"https://registry.npmjs.org/@bryan-thompson/dashboard/-/dashboard-0.1.2.tgz","fileCount":26,"integrity":"sha512-gRRPc+6f+x+hYq7e2Mlyr8Pn1Qyh3LAmEM8FoN69j6HjgUCo/PoySJWA0/+RdcmwI+q32v1mMv4sVS7P80lmUw==","signatures":[{"sig":"MEYCIQCPUGQ51Mgz/zultqrsW54pk6Asf4mHMBgWQUu5Hl6djwIhAKXFzD4dh7JhdoBJ8NXqJd+HaHWDDGjcrOpKVBoRk1l5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":951456},"type":"module","engines":{"node":">=22.7.5"},"gitHead":"045e488e0ed09d077169c35ceb87767327080060","scripts":{"dev":"node client/bin/start.js --dev --no-auth","kill":"for port in 6286 6287; do lsof -ti:$port | xargs kill -9 2>/dev/null || echo \"No process on port $port\"; done","lint":"prettier --check . && cd client && npm run lint","test":"npm run prettier-check && cd client && npm test","build":"npm run build-server && npm run build-client && npm run build-cli","clean":"rimraf ./node_modules ./client/node_modules ./cli/node_modules ./build ./client/dist ./server/build ./cli/build ./package-lock.json && npm install","start":"node client/bin/start.js","dev:sdk":"npm run link:sdk && concurrently \"npm run dev\" \"cd sdk && npm run build:esm:w\"","prepare":"husky && npm run build","link:sdk":"(test -d sdk || ln -sf ${MCP_SDK:-$PWD/../typescript-sdk} sdk) && (cd sdk && npm link && (test -d node_modules || npm i)) && npm link @modelcontextprotocol/sdk","test-cli":"cd cli && npm run test","test:e2e":"MCP_AUTO_OPEN_ENABLED=false npm run test:e2e --workspace=client","build-cli":"cd cli && npm run build","unlink:sdk":"(cd sdk && npm unlink -g) && rm sdk && npm unlink @modelcontextprotocol/sdk","dev:windows":"node client/bin/start.js --dev","publish-all":"npm publish --workspaces --access public && npm publish --access public","build-client":"cd client && npm run build","build-server":"cd server && npm run build","prettier-fix":"prettier --write .","start-client":"cd client && npm run preview","start-server":"cd server && npm run start","check-version":"node scripts/check-version-consistency.js","prettier-check":"prettier --check .","update-version":"node scripts/update-version.js"},"_npmUser":{"name":"bryan-thompson","email":"bryan@triepod.ai"},"workspaces":["client","server","cli"],"_npmVersion":"9.2.0","description":"MCP Dashboard - Multi-server management and monitoring interface for Model Context Protocol","directories":{},"lint-staged":{"**/*.{js,ts,jsx,tsx,json,md}":["prettier --write"]},"_nodeVersion":"18.19.0","dependencies":{"zod":"^3.25.76","open":"^10.2.0","ts-node":"^10.9.2","spawn-rx":"^5.1.2","node-fetch":"^3.3.2","shell-quote":"^1.8.3","concurrently":"^9.2.0","@modelcontextprotocol/sdk":"^1.18.0","@bryan-thompson/dashboard-cli":"^0.1.0","@bryan-thompson/dashboard-client":"^0.1.0","@bryan-thompson/dashboard-server":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","rimraf":"^6.0.1","prettier":"^3.6.2","typescript":"^5.4.2","@types/jest":"^29.5.14","@types/node":"^22.17.0","lint-staged":"^16.1.5","@playwright/test":"^1.54.1","jest-fixed-jsdom":"^0.0.9","@types/shell-quote":"^1.7.5"},"_npmOperationalInternal":{"tmp":"tmp/dashboard_0.1.2_1760197030949_0.4883909678808571","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bryan-thompson/dashboard","version":"0.1.3","author":{"name":"Bryan Thompson"},"license":"MIT","_id":"@bryan-thompson/dashboard@0.1.3","maintainers":[{"name":"bryan-thompson","email":"bryan@triepod.ai"}],"homepage":"https://github.com/triepod-ai/dashboard","bugs":{"url":"https://github.com/triepod-ai/dashboard/issues"},"bin":{"mcp-dashboard":"cli/build/cli.js"},"dist":{"shasum":"771c105bcbc49d7ee0001be8c2d02a0a4962f51a","tarball":"https://registry.npmjs.org/@bryan-thompson/dashboard/-/dashboard-0.1.3.tgz","fileCount":26,"integrity":"sha512-bkyM6Ks6suKeMT8xIgc3HGM64qfhOZANGQ3czY47N0+fAA3ZL+FHUvarLSfruppXRlH53JtRFfT3uWXzIgG72A==","signatures":[{"sig":"MEYCIQDPTY8VCAdFw9tx7uNURb8bu4H1FgkrQ7iYKcu+nHZ0JAIhAI8PHkF31/PWEPGv3cKcZBomuxDxLsZSP6Vzk/9JuRNt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":971244},"type":"module","engines":{"node":">=22.7.5"},"gitHead":"61e70783391a5cb7f8d5acad1a4e122c3aee067d","scripts":{"dev":"node client/bin/start.js --dev --no-auth","kill":"for port in 6286 6287; do lsof -ti:$port | xargs kill -9 2>/dev/null || echo \"No process on port $port\"; done","lint":"prettier --check . && cd client && npm run lint","test":"npm run prettier-check && cd client && npm test","build":"npm run build-server && npm run build-client && npm run build-cli","clean":"rimraf ./node_modules ./client/node_modules ./cli/node_modules ./build ./client/dist ./server/build ./cli/build ./package-lock.json && npm install","start":"node client/bin/start.js","dev:sdk":"npm run link:sdk && concurrently \"npm run dev\" \"cd sdk && npm run build:esm:w\"","prepare":"husky && npm run build","link:sdk":"(test -d sdk || ln -sf ${MCP_SDK:-$PWD/../typescript-sdk} sdk) && (cd sdk && npm link && (test -d node_modules || npm i)) && npm link @modelcontextprotocol/sdk","test-cli":"cd cli && npm run test","test:e2e":"MCP_AUTO_OPEN_ENABLED=false npm run test:e2e --workspace=client","build-cli":"cd cli && npm run build","unlink:sdk":"(cd sdk && npm unlink -g) && rm sdk && npm unlink @modelcontextprotocol/sdk","dev:windows":"node client/bin/start.js --dev","publish-all":"npm publish --workspaces --access public && npm publish --access public","build-client":"cd client && npm run build","build-server":"cd server && npm run build","prettier-fix":"prettier --write .","start-client":"cd client && npm run preview","start-server":"cd server && npm run start","check-version":"node scripts/check-version-consistency.js","prettier-check":"prettier --check .","update-version":"node scripts/update-version.js"},"_npmUser":{"name":"bryan-thompson","email":"bryan@triepod.ai"},"workspaces":["client","server","cli"],"_npmVersion":"9.2.0","description":"MCP Dashboard - Multi-server management and monitoring interface for Model Context Protocol","directories":{},"lint-staged":{"**/*.{js,ts,jsx,tsx,json,md}":["prettier --write"]},"_nodeVersion":"18.19.0","dependencies":{"zod":"^3.25.76","open":"^10.2.0","ts-node":"^10.9.2","spawn-rx":"^5.1.2","node-fetch":"^3.3.2","shell-quote":"^1.8.3","concurrently":"^9.2.0","@modelcontextprotocol/sdk":"^1.18.0","@bryan-thompson/dashboard-cli":"^0.1.0","@bryan-thompson/dashboard-client":"^0.1.0","@bryan-thompson/dashboard-server":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","rimraf":"^6.0.1","prettier":"^3.6.2","typescript":"^5.4.2","@types/jest":"^29.5.14","@types/node":"^22.17.0","lint-staged":"^16.1.5","@playwright/test":"^1.54.1","jest-fixed-jsdom":"^0.0.9","@types/shell-quote":"^1.7.5"},"_npmOperationalInternal":{"tmp":"tmp/dashboard_0.1.3_1760204295390_0.6904314379656937","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bryan-thompson/dashboard","version":"0.1.4","description":"MCP Dashboard - Multi-server management and monitoring interface for Model Context Protocol","license":"MIT","author":{"name":"Bryan Thompson"},"homepage":"https://github.com/triepod-ai/dashboard","bugs":{"url":"https://github.com/triepod-ai/dashboard/issues"},"type":"module","bin":{"mcp-dashboard":"cli/build/cli.js"},"workspaces":["client","server","cli"],"scripts":{"build":"npm run build-server && npm run build-client && npm run build-cli","build-server":"cd server && npm run build","build-client":"cd client && npm run build","build-cli":"cd cli && npm run build","clean":"rimraf ./node_modules ./client/node_modules ./cli/node_modules ./build ./client/dist ./server/build ./cli/build ./package-lock.json && npm install","dev":"node client/bin/start.js --dev --no-auth","dev:windows":"node client/bin/start.js --dev","dev:sdk":"npm run link:sdk && concurrently \"npm run dev\" \"cd sdk && npm run build:esm:w\"","link:sdk":"(test -d sdk || ln -sf ${MCP_SDK:-$PWD/../typescript-sdk} sdk) && (cd sdk && npm link && (test -d node_modules || npm i)) && npm link @modelcontextprotocol/sdk","unlink:sdk":"(cd sdk && npm unlink -g) && rm sdk && npm unlink @modelcontextprotocol/sdk","start":"node client/bin/start.js","start-server":"cd server && npm run start","start-client":"cd client && npm run preview","test":"npm run prettier-check && cd client && npm test","test-cli":"cd cli && npm run test","test:e2e":"MCP_AUTO_OPEN_ENABLED=false npm run test:e2e --workspace=client","prettier-fix":"prettier --write .","prettier-check":"prettier --check .","lint":"prettier --check . && cd client && npm run lint","prepare":"husky && npm run build","publish-all":"npm publish --workspaces --access public && npm publish --access public","update-version":"node scripts/update-version.js","check-version":"node scripts/check-version-consistency.js","kill":"for port in 6286 6287; do lsof -ti:$port | xargs kill -9 2>/dev/null || echo \"No process on port $port\"; done"},"dependencies":{"@bryan-thompson/dashboard-cli":"^0.1.0","@bryan-thompson/dashboard-client":"^0.1.0","@bryan-thompson/dashboard-server":"^0.1.0","@modelcontextprotocol/sdk":"^1.18.0","concurrently":"^9.2.0","node-fetch":"^3.3.2","open":"^10.2.0","shell-quote":"^1.8.3","spawn-rx":"^5.1.2","ts-node":"^10.9.2","zod":"^3.25.76"},"devDependencies":{"@playwright/test":"^1.54.1","@types/jest":"^29.5.14","@types/node":"^22.17.0","@types/shell-quote":"^1.7.5","husky":"^9.1.7","jest-fixed-jsdom":"^0.0.9","lint-staged":"^16.1.5","prettier":"^3.6.2","rimraf":"^6.0.1","typescript":"^5.4.2"},"engines":{"node":">=22.7.5"},"lint-staged":{"**/*.{js,ts,jsx,tsx,json,md}":["prettier --write"]},"gitHead":"0cc52bb83deef44999a60a9e928ca69ccee3f592","_id":"@bryan-thompson/dashboard@0.1.4","_nodeVersion":"18.19.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-Viuprt+Ts+Rb4C0XJhLrQYCOiw+S3KJYRvwJ4WTIfdG471m9VaI/jEQN3xdSeGyq5K5AWm4hIoC8rlwPUDz8NA==","shasum":"791cac690f763c23277d433c5d09125071e926f3","tarball":"https://registry.npmjs.org/@bryan-thompson/dashboard/-/dashboard-0.1.4.tgz","fileCount":26,"unpackedSize":971244,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCtl3M5TjzZUdn84E6DLv3mTtucGhuTHo5IDCOcProFlgIgMQE9Ce+tH3f8M2AqYZGWBn17aNiW9+SBqd+V2fD+U84="}]},"_npmUser":{"name":"bryan-thompson","email":"bryan@triepod.ai"},"directories":{},"maintainers":[{"name":"bryan-thompson","email":"bryan@triepod.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dashboard_0.1.4_1760204770839_0.3605548278807549"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-11T14:59:49.621Z","modified":"2025-10-11T17:46:11.239Z","0.1.0":"2025-10-11T14:59:49.914Z","0.1.1":"2025-10-11T15:17:40.032Z","0.1.2":"2025-10-11T15:37:11.170Z","0.1.3":"2025-10-11T17:38:15.646Z","0.1.4":"2025-10-11T17:46:11.051Z"},"bugs":{"url":"https://github.com/triepod-ai/dashboard/issues"},"author":{"name":"Bryan Thompson"},"license":"MIT","homepage":"https://github.com/triepod-ai/dashboard","description":"MCP Dashboard - Multi-server management and monitoring interface for Model Context Protocol","maintainers":[{"name":"bryan-thompson","email":"bryan@triepod.ai"}],"readme":"# MCP Dashboard\n\nA web-based management and monitoring interface for multiple Model Context Protocol (MCP) servers. Connect to, manage, and interact with multiple MCP servers simultaneously through a modern React interface with real-time updates.\n\n> **Note**: This project is a fork of the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) by Anthropic, enhanced with multi-server management capabilities.\n\n## Features\n\n- **Multi-Server Management**: Connect to and manage multiple MCP servers simultaneously\n- **Server Card Details**: Each server displays transport type, tool count, connection details, and status\n- **Edit Server Configuration**: Modify existing server settings without recreating them\n- **Real-Time Monitoring**: Server-Sent Events (SSE) for live status updates with automatic tool discovery\n- **Tool Execution**: Execute MCP tools with form-based parameter input\n- **Resource Explorer**: Browse and read MCP resources with JSON visualization\n- **Multi-Transport Support**: STDIO, SSE, and Streamable HTTP transports\n- **Dark Mode**: Full theme system with light/dark/system mode support\n- **Modern UI**: React 18 interface with Tailwind CSS and shadcn/ui components\n\n## Installation\n\n### Quick Start\n\nInstall and run the dashboard using npx:\n\n```bash\nnpx @bryan-thompson/dashboard\n```\n\nThe dashboard will start and automatically open in your browser at `http://localhost:6286`.\n\n### From NPM\n\nInstall globally:\n\n```bash\nnpm install -g @bryan-thompson/dashboard\nmcp-dashboard\n```\n\n### From Source\n\nClone and build from this repository:\n\n```bash\ngit clone https://github.com/triepod-ai/dashboard.git\ncd dashboard\nnpm install\nnpm run build\nnpm run dev\n```\n\n## Usage\n\n### Starting the Dashboard\n\nThe dashboard provides a web interface for managing multiple MCP servers:\n\n```bash\n# Start with default settings\nnpx @bryan-thompson/dashboard\n\n# Start in development mode (auto-reload)\nnpm run dev\n\n# Start on Windows (development)\nnpm run dev:windows\n```\n\n### Connecting to MCP Servers\n\nOnce the dashboard is running, you can connect to MCP servers through the web interface:\n\n1. Open the dashboard at `http://localhost:6286`\n2. Click \"Connect Server\" in the sidebar\n3. Choose your transport type (STDIO, SSE, or Streamable HTTP)\n4. Enter your server configuration\n5. Click \"Connect\"\n\n#### STDIO Transport\n\nFor local MCP servers that communicate via standard input/output:\n\n- **Command**: Path to the server executable (e.g., `node`, `python3`)\n- **Arguments**: Command arguments (e.g., `build/index.js`)\n- **Environment**: Environment variables as key=value pairs\n\n#### SSE Transport\n\nFor servers using Server-Sent Events:\n\n- **URL**: The SSE endpoint URL (e.g., `http://localhost:3000/sse`)\n- **Authentication**: Optional bearer token\n\n#### Streamable HTTP Transport\n\nFor servers using HTTP streaming:\n\n- **URL**: The HTTP endpoint URL (e.g., `http://localhost:3000/mcp`)\n\n### Managing Multiple Servers\n\nThe dashboard allows you to:\n\n- Connect to multiple servers simultaneously\n- Switch between servers using the sidebar\n- View real-time status for each server\n- Execute tools on any connected server\n- Browse resources from multiple servers\n- Monitor server events and notifications\n\n#### Server Cards\n\nEach server card displays comprehensive connection information:\n\n- **Server Name and Status**: Visual indicators for connected/disconnected/error states\n- **Transport Type**: Badge showing STDIO, SSE, or STREAMABLE-HTTP\n- **Tool Count**: Number of available tools discovered automatically on connection\n- **Connection Details**:\n  - STDIO servers show the command being executed\n  - SSE/HTTP servers show the endpoint URL\n- **Last Connected**: Timestamp of the last successful connection\n- **Actions**: Connect/Disconnect, Edit configuration, Delete server\n\nThe edit button (✏️) allows you to modify server configuration without disconnecting or recreating the server. Changes that affect the connection (transport, command, URL) trigger an automatic reconnect.\n\n## Configuration\n\n### Environment Variables\n\n| Variable      | Description                                     | Default     |\n| ------------- | ----------------------------------------------- | ----------- |\n| `CLIENT_PORT` | Dashboard web UI port                           | 6286        |\n| `SERVER_PORT` | Backend server port                             | 6287        |\n| `HOST`        | Bind address (use `0.0.0.0` for network access) | `localhost` |\n\nExample:\n\n```bash\nCLIENT_PORT=8080 SERVER_PORT=9000 npx @bryan-thompson/dashboard\n```\n\n### Security\n\nThe dashboard includes authentication by default. When starting, a session token is generated:\n\n```\n🔑 Session token: abc123...\n🔗 Open dashboard with token pre-filled:\n   http://localhost:6286/?MCP_PROXY_AUTH_TOKEN=abc123...\n```\n\nThe browser opens automatically with the token pre-filled. The token is saved in localStorage for future sessions.\n\n**Warning**: Do not disable authentication unless you understand the security risks. The dashboard can execute local processes and connect to any MCP server.\n\n## Architecture\n\nThe MCP Dashboard is a monorepo with three packages:\n\n- **`@bryan-thompson/dashboard-client`**: React web interface\n- **`@bryan-thompson/dashboard-server`**: Express backend for MCP connections\n- **`@bryan-thompson/dashboard-cli`**: Command-line interface\n\n```\ndashboard/\n├── client/          # React frontend (Vite + TypeScript + Tailwind)\n├── server/          # Express backend (TypeScript)\n├── cli/             # CLI tools (TypeScript)\n└── docs/            # Documentation\n```\n\n## Development\n\n### Build Commands\n\n```bash\nnpm run build              # Build all packages\nnpm run build-client       # Build client only\nnpm run build-server       # Build server only\nnpm run dev                # Development mode with hot reload\nnpm run test               # Run tests\nnpm run lint               # Lint code\nnpm run prettier-fix       # Format code\n```\n\n### Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n### Code Style\n\n- TypeScript with strict type checking\n- React functional components with hooks\n- ES modules (import/export)\n- Prettier for formatting\n- Tailwind CSS for styling\n\n## Requirements\n\n- Node.js >= 22.7.5\n- Modern web browser (Chrome, Firefox, Safari, Edge)\n\n## License\n\nThis project is licensed under the MIT License—see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\nBuilt on the foundation of [MCP Inspector](https://github.com/modelcontextprotocol/inspector) by Anthropic. All core inspection and debugging features from the original project are preserved and enhanced with multi-server management capabilities.\n","readmeFilename":"README.md"}