{"_id":"@adityachilka/mcp-devtools","name":"@adityachilka/mcp-devtools","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@adityachilka/mcp-devtools","version":"0.1.0","description":"Chrome DevTools for the Model Context Protocol. Inspect, profile, replay, and diff every MCP call your agent makes.","keywords":["mcp","model-context-protocol","devtools","inspector","profiler","llm","agents","anthropic","claude","observability"],"license":"MIT","author":{"name":"Aditya Chilka","email":"https://github.com/adityachilka1"},"homepage":"https://github.com/adityachilka1/mcp-devtools#readme","repository":{"type":"git","url":"git+https://github.com/adityachilka1/mcp-devtools.git"},"bugs":{"url":"https://github.com/adityachilka1/mcp-devtools/issues"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"mcp-devtools":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./embed":{"types":"./dist/embed.d.ts","import":"./dist/embed.js"}},"engines":{"node":">=20","npm":">=10"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"biome check src","format":"biome format --write .","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"dependencies":{"@fastify/static":"^8.0.0","@fastify/websocket":"^11.0.0","cac":"^7.0.0","fastify":"^5.0.0","kleur":"^4.1.5","zod":"^3.23.0"},"devDependencies":{"@biomejs/biome":"^1.9.0","@types/node":"^22.0.0","tsup":"^8.3.0","typescript":"^5.6.0","vitest":"^2.1.0"},"gitHead":"3b965baf56c322fc9eddeb75fec02e7d45453b29","_id":"@adityachilka/mcp-devtools@0.1.0","_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-5UUYkM9OY+/HqGPNRfj2KP+oP02mB5Euci0KnsOUcgUg9Scoivyhowkyo7A3cbJIXsV1yR73lS0p4gLjmbzTEw==","shasum":"c550b8c77e683af89b4e95116ed5abccb3d43634","tarball":"https://registry.npmjs.org/@adityachilka/mcp-devtools/-/mcp-devtools-0.1.0.tgz","fileCount":14,"unpackedSize":89819,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEUr9GKHBbEo8wCbX1Ss8IK8aaBJduRhMHM+EgsuJeRKAiAmGeoDkQUn9UuXBSjO+dPR05EdM/NjUiy1CoOa2yH+zQ=="}]},"_npmUser":{"name":"adityachilka","email":"adityachilka@outlook.com"},"directories":{},"maintainers":[{"name":"adityachilka","email":"adityachilka@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-devtools_0.1.0_1779267620215_0.39592028484802255"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T09:00:20.109Z","0.1.0":"2026-05-20T09:00:20.384Z","modified":"2026-05-20T09:00:20.588Z"},"maintainers":[{"name":"adityachilka","email":"adityachilka@outlook.com"}],"description":"Chrome DevTools for the Model Context Protocol. Inspect, profile, replay, and diff every MCP call your agent makes.","homepage":"https://github.com/adityachilka1/mcp-devtools#readme","keywords":["mcp","model-context-protocol","devtools","inspector","profiler","llm","agents","anthropic","claude","observability"],"repository":{"type":"git","url":"git+https://github.com/adityachilka1/mcp-devtools.git"},"author":{"name":"Aditya Chilka","email":"https://github.com/adityachilka1"},"bugs":{"url":"https://github.com/adityachilka1/mcp-devtools/issues"},"license":"MIT","readme":"<div align=\"center\">\n\n# mcp-devtools\n\n**Chrome DevTools for the Model Context Protocol.**\n\nStop tailing logs. See every tool call your agent makes, why it failed, how long it took, and what it cost — all in a local browser window.\n\n[![npm](https://img.shields.io/npm/v/mcp-devtools?style=flat-square&color=000)](https://www.npmjs.com/package/mcp-devtools)\n[![license](https://img.shields.io/npm/l/mcp-devtools?style=flat-square&color=000)](./LICENSE)\n[![ci](https://img.shields.io/github/actions/workflow/status/adityachilka1/mcp-devtools/ci.yml?style=flat-square&label=ci&color=000)](https://github.com/adityachilka1/mcp-devtools/actions)\n[![stars](https://img.shields.io/github/stars/adityachilka1/mcp-devtools?style=flat-square&color=000)](https://github.com/adityachilka1/mcp-devtools/stargazers)\n<!-- Discord server coming soon — open an issue or Discussion for now -->\n\n\n<sub>Inspect · Profile · Replay · Diff</sub>\n\n</div>\n\n---\n\n## Why\n\nYou're building an MCP server (or just running one) and something is off — the wrong tool fires, a call takes 14 seconds, your agent loops, your token bill triples overnight. Today's options: `console.log`, the official MCP Inspector (CLI-only, single-server), or grep through 40 MB of JSON-RPC logs.\n\n`mcp-devtools` is the local-first inspector and profiler that should have shipped with the protocol. Point any MCP client at it instead of your real server, and watch every request and response stream into a browser UI you can search, filter, replay, and diff.\n\n## Install\n\n```bash\nnpm install -g mcp-devtools\n# or\npnpm add -g mcp-devtools\n```\n\n## Quick start — proxy mode (recommended)\n\n`mcp-devtools` sits between your client (Claude Desktop, Cowork, Cursor, your own agent) and your real MCP server. Zero changes to the server.\n\n```bash\nmcp-devtools proxy \\\n  --upstream \"node ./my-mcp-server.js\" \\\n  --port 7456\n```\n\nThen point your client at `http://localhost:7456`. Open `http://localhost:7456/inspect` in your browser.\n\nYou get:\n\n- **Timeline** — every `initialize`, `tools/list`, `tools/call`, `resources/read`, and notification in chronological order.\n- **Tool view** — for any `tools/call`, the inputs (with schema validation), the response, the latency, and the LLM-attributed token cost.\n- **Schema explorer** — live view of the server's declared tools, resources, and prompts.\n- **Replay** — click any past call, edit the arguments, hit run. Re-hits the upstream and shows the diff against the original response.\n- **Time travel** — scrub a slider to see the protocol state at any point in the session.\n\n## Quick start — embed mode\n\nAlready have a Node/TypeScript MCP server? Add five lines.\n\n```ts\nimport { createServer } from \"@modelcontextprotocol/sdk/server\";\nimport { devtools } from \"mcp-devtools/embed\";\n\nconst server = createServer({ name: \"my-server\", version: \"1.0.0\" });\n// ... register your tools ...\n\ndevtools.attach(server, { port: 7456 });\n```\n\nThe DevTools UI is now available at `http://localhost:7456/inspect` whenever your server is running.\n\n## Quick start — record mode\n\nRecord a session and share the trace file with a teammate or in a bug report.\n\n```bash\nmcp-devtools record --upstream \"node ./my-mcp-server.js\" --out session.mcptrace\nmcp-devtools open session.mcptrace      # opens the UI on the recorded trace\n```\n\n`.mcptrace` files are gzipped JSONL — diffable, grep-able, and small.\n\n## Features\n\n| | |\n|---|---|\n| Live request/response timeline | Schema visualizer (tools, resources, prompts) |\n| Per-tool latency histograms | Token attribution (per call, per session) |\n| Error grouping and stack traces | Replay any call with modified args |\n| Time-travel slider | Diff between two recorded sessions |\n| Works with stdio AND streamable HTTP | Browser-only — no telemetry, nothing leaves your machine |\n| Export `.mcptrace` files | Open-source, MIT, self-hostable |\n\n## Architecture\n\n```\n┌────────────────┐   stdio/http     ┌──────────────────┐   stdio/http   ┌─────────────────┐\n│   MCP client   │ ────────────────▶│   mcp-devtools   │ ──────────────▶│   upstream MCP  │\n│ (Claude, etc.) │                  │   proxy + UI     │                │   server        │\n└────────────────┘ ◀────────────────└──────────────────┘ ◀──────────────└─────────────────┘\n                                            │\n                                            ▼\n                                   ┌──────────────────┐\n                                   │  local browser   │\n                                   │  http://:7456    │\n                                   └──────────────────┘\n```\n\nSingle binary. No daemon. No cloud. No login.\n\n## Integration guides\n\nStep-by-step setup for popular MCP clients:\n\n- [Claude Desktop](./docs/integrations/claude-desktop.md)\n- [Cursor](./docs/integrations/cursor.md)\n- [Cline (VS Code)](./docs/integrations/cline.md)\n\nAll three follow the same wrapper pattern — point your client at `mcp-devtools proxy` instead of your real server, and the inspector picks up everything.\n\n## Roadmap\n\nSee [ROADMAP.md](./ROADMAP.md) for the full picture. The short version:\n\n- [x] **v0.1** — stdio proxy, recorder, embed API, browser UI\n- [ ] **v0.1.x** — `--quiet`, color-coded timeline, signed binaries, Bun support\n- [ ] **v0.2** — streamable HTTP transport, replay with diff, schema explorer\n- [ ] **v0.3** — OpenTelemetry export, VS Code extension, cost dashboard\n\n## Contributing\n\nWe love contributions — see [CONTRIBUTING.md](./CONTRIBUTING.md). Good first issues are labeled [`good-first-issue`](https://github.com/adityachilka1/mcp-devtools/labels/good-first-issue). Open an issue or [start a Discussion](https://github.com/adityachilka1/mcp-devtools/discussions) before anything ambitious — Discord server coming soon.\n\n## Acknowledgements\n\nBuilt by [@adityachilka1](https://github.com/adityachilka1). Inspired by Chrome DevTools, React DevTools, and the official [MCP Inspector](https://github.com/modelcontextprotocol/inspector).\n\n## License\n\n[MIT](./LICENSE) © 2026 Aditya Chilka.\n","readmeFilename":"README.md","_rev":"1-5c7f2be765eb728bf6ed905b7bb820d0"}