{"_id":"@arvoretech/runtime-lens-mcp","_rev":"8-b40071a19f2acfe260094bc0ab93279a","name":"@arvoretech/runtime-lens-mcp","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@arvoretech/runtime-lens-mcp","version":"1.0.0","keywords":["mcp","console-ninja","runtime-lens","debugging","logging","inline-values","react","nestjs","nextjs","runtime-inspection","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/runtime-lens-mcp@1.0.0","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"runtime-lens-mcp":"dist/index.js"},"dist":{"shasum":"19132f8259b3018e79f751c3dd02be8df2485d6e","tarball":"https://registry.npmjs.org/@arvoretech/runtime-lens-mcp/-/runtime-lens-mcp-1.0.0.tgz","fileCount":42,"integrity":"sha512-E1vpxz5tELZ8V9EoUEoPvB0CJK/GQOt/enKTlllfneY+XGXPqQsrz7vWNvHiKZo9X40lHshNQmh4lqPoURloCA==","signatures":[{"sig":"MEUCIQCLI7Mb1HWI7hghKG0dFk/t1PjDBZHQOe5D2WtwEVgfoQIgWI6Gmb3PpxCgYVI9Z6blyRd/j7E3YyScHb7JwnOoUH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172409},"main":"dist/extension/extension.js","engines":{"vscode":"^1.85.0"},"gitHead":"6273b41ce525933665e2dbafaaefa98e679f1f34","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","start":"node dist/index.js","package":"pnpm build:all && vsce package --no-dependencies","lint:fix":"eslint src/**/*.ts --fix","test:cov":"vitest --coverage","build:all":"pnpm build && pnpm build:ext && pnpm build:agent","build:ext":"esbuild extension/extension.ts --bundle --outfile=dist/extension/extension.js --external:vscode --format=cjs --platform=node --sourcemap","build:agent":"esbuild agent/index.ts --bundle --outfile=dist/agent/index.js --format=cjs --platform=node --sourcemap","postpublish":"node -e \"const p=require('./package.json');p.name='runtime-lens';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\"","prepublishOnly":"node -e \"const p=require('./package.json');p.name='@arvoretech/runtime-lens-mcp';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\""},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"publisher":"arvore","categories":["Debuggers","Other"],"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/runtime-lens"},"_npmVersion":"10.8.2","contributes":{"menus":{"editor/title":[{"when":"resourceLangId == typescript || resourceLangId == javascript || resourceLangId == typescriptreact || resourceLangId == javascriptreact","group":"navigation","command":"runtimeLens.toggle"}]},"commands":[{"icon":"$(zap)","title":"Runtime Lens: Start","command":"runtimeLens.start"},{"title":"Runtime Lens: Stop","command":"runtimeLens.stop"},{"title":"Runtime Lens: Toggle","command":"runtimeLens.toggle"},{"title":"Runtime Lens: Clear Inline Values","command":"runtimeLens.clear"},{"title":"Runtime Lens: Connect to Running App","command":"runtimeLens.connect"},{"title":"Runtime Lens: Show Output","command":"runtimeLens.showOutput"},{"title":"Runtime Lens: Inject Environment into Terminal","command":"runtimeLens.injectEnv"}],"configuration":{"title":"Runtime Lens","properties":{"runtimeLens.port":{"type":"number","default":9500,"description":"WebSocket port for the runtime agent"},"runtimeLens.autoStart":{"type":"boolean","default":false,"description":"Automatically start Runtime Lens when the workspace opens"},"runtimeLens.showTimestamp":{"type":"boolean","default":false,"description":"Show timestamp in inline values"},"runtimeLens.maxInlineLength":{"type":"number","default":80,"description":"Maximum length of inline value text before truncation"}}}},"description":"Runtime Lens - Runtime inspection with inline values for React, NestJS and Next.js","directories":{},"displayName":"Runtime Lens","_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.21.0","@types/vscode":"^1.85.0"},"activationEvents":["onStartupFinished"],"_npmOperationalInternal":{"tmp":"tmp/runtime-lens-mcp_1.0.0_1772161483457_0.8008237692389903","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@arvoretech/runtime-lens-mcp","version":"1.1.0","keywords":["mcp","console-ninja","runtime-lens","debugging","logging","inline-values","react","nestjs","nextjs","runtime-inspection","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/runtime-lens-mcp@1.1.0","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"runtime-lens-mcp":"dist/index.js"},"dist":{"shasum":"01aa5f81758297ed43819621660af2f64ef3d49a","tarball":"https://registry.npmjs.org/@arvoretech/runtime-lens-mcp/-/runtime-lens-mcp-1.1.0.tgz","fileCount":37,"integrity":"sha512-LW1jAzyeCQReLHiKrBsHKjcAWIggH95GfRgfwe6gqijW7Hm1hWKzHwCFzWTDvydzTEu623qExTygXYtPhNSqXA==","signatures":[{"sig":"MEUCIEpiJuV/4Y97A9K0kLsCnevrZaC/Pbeui05YU5DKNHKQAiEA+Yywhript3J9T0T0/EIreGUMdZcdlrc08wRZhHInM0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212531},"main":"dist/extension/extension.js","engines":{"vscode":"^1.85.0"},"gitHead":"5f44493bc2298d7fc86212770351cd1036af7c4e","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","start":"node dist/index.js","package":"pnpm build:all && vsce package --no-dependencies","lint:fix":"eslint src/**/*.ts --fix","test:cov":"vitest --coverage","build:all":"pnpm build && pnpm build:ext && pnpm build:agent","build:ext":"esbuild extension/extension.ts --bundle --outfile=dist/extension/extension.js --external:vscode --format=cjs --platform=node --sourcemap","build:agent":"esbuild agent/index.ts --bundle --outfile=dist/agent/index.js --format=cjs --platform=node --sourcemap","postpublish":"node -e \"const p=require('./package.json');p.name='runtime-lens';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\"","prepublishOnly":"pnpm build:all && node -e \"const p=require('./package.json');p.name='@arvoretech/runtime-lens-mcp';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\""},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"publisher":"arvore","categories":["Debuggers","Other"],"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/runtime-lens"},"_npmVersion":"10.8.2","contributes":{"menus":{"editor/title":[{"when":"resourceLangId == typescript || resourceLangId == javascript || resourceLangId == typescriptreact || resourceLangId == javascriptreact","group":"navigation","command":"runtimeLens.toggle"}]},"commands":[{"icon":"$(zap)","title":"Runtime Lens: Start","command":"runtimeLens.start"},{"title":"Runtime Lens: Stop","command":"runtimeLens.stop"},{"title":"Runtime Lens: Toggle","command":"runtimeLens.toggle"},{"title":"Runtime Lens: Clear Inline Values","command":"runtimeLens.clear"},{"title":"Runtime Lens: Connect to Running App","command":"runtimeLens.connect"},{"title":"Runtime Lens: Show Output","command":"runtimeLens.showOutput"},{"title":"Runtime Lens: Inject Environment into Terminal","command":"runtimeLens.injectEnv"}],"configuration":{"title":"Runtime Lens","properties":{"runtimeLens.port":{"type":"number","default":9500,"description":"WebSocket port for the runtime agent"},"runtimeLens.autoStart":{"type":"boolean","default":false,"description":"Automatically start Runtime Lens when the workspace opens"},"runtimeLens.showTimestamp":{"type":"boolean","default":false,"description":"Show timestamp in inline values"},"runtimeLens.maxInlineLength":{"type":"number","default":80,"description":"Maximum length of inline value text before truncation"}}}},"description":"Runtime Lens - Runtime inspection with inline values for React, NestJS and Next.js","directories":{},"displayName":"Runtime Lens","_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.21.0","@types/vscode":"^1.85.0"},"activationEvents":["onStartupFinished"],"_npmOperationalInternal":{"tmp":"tmp/runtime-lens-mcp_1.1.0_1772162146322_0.38797187117068765","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@arvoretech/runtime-lens-mcp","version":"1.2.0","keywords":["mcp","console-ninja","runtime-lens","debugging","logging","inline-values","react","nestjs","nextjs","runtime-inspection","arvore"],"author":{"name":"Arvore"},"license":"MIT","_id":"@arvoretech/runtime-lens-mcp@1.2.0","maintainers":[{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"}],"homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"bin":{"runtime-lens-mcp":"dist/index.js"},"dist":{"shasum":"aac016a3d2d2e0ab61d436a07ce9ed05f76e1e97","tarball":"https://registry.npmjs.org/@arvoretech/runtime-lens-mcp/-/runtime-lens-mcp-1.2.0.tgz","fileCount":42,"integrity":"sha512-FRekX1Br9vi8/GRebxxQn3Ha3F5WheD/lMEss7ncXOWNJSOONBf306REOd46PyWJREjioQsw0b+u5SfaNRND8g==","signatures":[{"sig":"MEYCIQCDagYGiYdDf9bkpJyEV2kaa4Vz7PJaN6HsYvskZtrU9QIhAJR8xZunYRky4mkE9MZVstd/tFk8nlrvGKB3BclWsLyY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236581},"main":"dist/extension/extension.js","engines":{"vscode":"^1.85.0"},"gitHead":"d8e7a4949d28be621024897db01aea1a8c0b406f","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","start":"node dist/index.js","package":"pnpm build:all && vsce package --no-dependencies","lint:fix":"eslint src/**/*.ts --fix","test:cov":"vitest --coverage","build:all":"pnpm build && pnpm build:ext && pnpm build:agent","build:ext":"esbuild extension/extension.ts --bundle --outfile=dist/extension/extension.js --external:vscode --format=cjs --platform=node --sourcemap","build:agent":"esbuild agent/index.ts --bundle --outfile=dist/agent/index.js --format=cjs --platform=node --sourcemap","postpublish":"node -e \"const p=require('./package.json');p.name='runtime-lens';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\"","prepublishOnly":"pnpm build:all && node -e \"const p=require('./package.json');p.name='@arvoretech/runtime-lens-mcp';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\""},"_npmUser":{"name":"joao.barros.arvore","email":"joao.barros@arvore.com.br"},"publisher":"arvore","categories":["Debuggers","Other"],"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/runtime-lens"},"_npmVersion":"10.8.2","contributes":{"menus":{"editor/title":[{"when":"resourceLangId == typescript || resourceLangId == javascript || resourceLangId == typescriptreact || resourceLangId == javascriptreact","group":"navigation","command":"runtimeLens.toggle"}]},"commands":[{"icon":"$(zap)","title":"Runtime Lens: Start","command":"runtimeLens.start"},{"title":"Runtime Lens: Stop","command":"runtimeLens.stop"},{"title":"Runtime Lens: Toggle","command":"runtimeLens.toggle"},{"title":"Runtime Lens: Clear Inline Values","command":"runtimeLens.clear"},{"title":"Runtime Lens: Connect to Running App","command":"runtimeLens.connect"},{"title":"Runtime Lens: Show Output","command":"runtimeLens.showOutput"},{"title":"Runtime Lens: Inject Environment into Terminal","command":"runtimeLens.injectEnv"}],"configuration":{"title":"Runtime Lens","properties":{"runtimeLens.port":{"type":"number","default":9500,"description":"WebSocket port for the runtime agent"},"runtimeLens.autoStart":{"type":"boolean","default":false,"description":"Automatically start Runtime Lens when the workspace opens"},"runtimeLens.showTimestamp":{"type":"boolean","default":false,"description":"Show timestamp in inline values"},"runtimeLens.maxInlineLength":{"type":"number","default":80,"description":"Maximum length of inline value text before truncation"}}}},"description":"Runtime Lens - Runtime inspection with inline values for React, NestJS and Next.js","directories":{},"displayName":"Runtime Lens","_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.21.0","@types/vscode":"^1.85.0"},"activationEvents":["onStartupFinished"],"_npmOperationalInternal":{"tmp":"tmp/runtime-lens-mcp_1.2.0_1772164191069_0.4357473425842131","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-27T03:04:43.353Z","modified":"2026-06-16T21:13:20.528Z","1.0.0":"2026-02-27T03:04:43.609Z","1.1.0":"2026-02-27T03:15:46.505Z","1.2.0":"2026-02-27T03:49:51.211Z"},"bugs":{"url":"https://github.com/arvoreeducacao/arvore-mcp-servers/issues"},"author":{"name":"Arvore"},"license":"MIT","homepage":"https://github.com/arvoreeducacao/arvore-mcp-servers#readme","keywords":["mcp","console-ninja","runtime-lens","debugging","logging","inline-values","react","nestjs","nextjs","runtime-inspection","arvore"],"repository":{"url":"git+https://github.com/arvoreeducacao/arvore-mcp-servers.git","type":"git","directory":"packages/runtime-lens"},"description":"Runtime Lens - Runtime inspection with inline values for React, NestJS and Next.js","maintainers":[{"email":"joao.barros@arvore.com.br","name":"joao.barros.arvore"},{"email":"rafasouza@protonmail.com","name":"rafsouza"},{"email":"pedro.adas@gmail.com","name":"pedro.adas"},{"email":"guilhermebscontact@gmail.com","name":"guilhermebs"},{"email":"ricardorbxx1@gmail.com","name":"ricardoraposorfox"},{"email":"jvgcunha2002@gmail.com","name":"jott4"},{"email":"vitor.piovezan@arvore.com.br","name":"vitor.piovezan"}],"readme":"# @arvoretech/runtime-lens-mcp\n\nRuntime Lens — Runtime inspection with inline values for React, NestJS and Next.js.\n\nTwo components in one package:\n1. VS Code/Cursor/Kiro extension with inline value display\n2. MCP server for AI-assisted debugging\n\n## Setup\n\n### 1. Build\n\n```bash\ncd packages/runtime-lens\npnpm install\npnpm build:all    # builds MCP server + extension + agent\n```\n\n### 2. Install the Extension\n\nAfter building, package and install the `.vsix`:\n\n```bash\npnpm package                                    # generates runtime-lens-1.0.0.vsix\ncode --install-extension runtime-lens-1.0.0.vsix  # VS Code\ncursor --install-extension runtime-lens-1.0.0.vsix  # Cursor\n```\n\nFor Kiro, use the Extensions panel to install from VSIX.\n\n### 3. Configure the MCP Server\n\nAdd to your editor's MCP config (`.kiro/settings/mcp.json`, `.cursor/mcp.json`, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"runtime-lens\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@arvoretech/runtime-lens-mcp\"],\n      \"env\": {\n        \"RUNTIME_LENS_PROJECT_ROOT\": \".\"\n      }\n    }\n  }\n}\n```\n\n## Usage\n\n### Option A — Command Palette (per session)\n\n1. Open the command palette and run `Runtime Lens: Start`\n2. Then run `Runtime Lens: Inject Environment into Terminal`\n3. Start your app normally in that terminal (`pnpm dev`, `npm start`, etc.)\n4. Runtime values appear inline in the editor\n\n### Option B — Permanent Setup (recommended)\n\nAdd this to your `~/.zshrc` (or `~/.bashrc`):\n\n```bash\n# Runtime Lens — inject agent into all Node.js processes\nexport RUNTIME_LENS_AGENT_PATH=\"$(npm root -g)/@arvoretech/runtime-lens-mcp/dist/agent/index.js\"\nexport NODE_OPTIONS=\"--require $RUNTIME_LENS_AGENT_PATH\"\nexport RUNTIME_LENS_PORT=\"9500\"\n```\n\nBefore using, install the package globally:\n\n```bash\nnpm install -g @arvoretech/runtime-lens-mcp\n```\n\nThen reload your shell:\n\n```bash\nsource ~/.zshrc\n```\n\nNow every Node.js process you start will automatically connect to Runtime Lens. Just open the editor and run `Runtime Lens: Start` — no need to inject every time.\n\n> **Warning:** Setting `NODE_OPTIONS` globally affects all Node.js processes, including tools like `npx`, `npm`, and MCP servers. If you experience issues, use a wrapper function instead:\n>\n> ```bash\n> lens() {\n>   local agent=\"$(npm root -g)/@arvoretech/runtime-lens-mcp/dist/agent/index.js\"\n>   NODE_OPTIONS=\"--require $agent\" RUNTIME_LENS_PORT=9500 \"$@\"\n> }\n> # Usage: lens pnpm dev\n> ```\n\n## Extension Commands\n\n| Command | Description |\n|---------|-------------|\n| `Runtime Lens: Start` | Start listening for runtime values |\n| `Runtime Lens: Stop` | Stop and clear decorations |\n| `Runtime Lens: Toggle` | Toggle on/off (status bar) |\n| `Runtime Lens: Clear Inline Values` | Clear all inline decorations |\n| `Runtime Lens: Connect to Running App` | Connect to an already running agent |\n| `Runtime Lens: Inject Environment into Terminal` | Set NODE_OPTIONS in the active terminal |\n| `Runtime Lens: Show Output` | Show the output channel |\n\n## Extension Settings\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `runtimeLens.port` | `9500` | WebSocket port for the agent |\n| `runtimeLens.autoStart` | `false` | Auto-start on workspace open |\n| `runtimeLens.maxInlineLength` | `80` | Max inline text length |\n| `runtimeLens.showTimestamp` | `false` | Show timestamp in inline values |\n\n## MCP Tools\n\n14 tools for AI-assisted runtime inspection:\n\n| Tool | Description |\n|------|-------------|\n| `tail_logs` | Recent log entries with filtering |\n| `search_logs` | Regex search through logs |\n| `get_errors` | Errors with stack traces, groupable |\n| `inspect_requests` | HTTP request/response inspection |\n| `get_performance` | Memory, CPU metrics |\n| `get_env_info` | Processes, ports, framework detection |\n| `get_stats` | Log statistics by level/framework |\n| `clear_logs` | Clear log buffer |\n| `start_interceptor` / `stop_interceptor` | Real-time console capture |\n| `collect_from_files` | Collect from log files |\n| `scan_project` | Detect framework and configs |\n| `find_processes` | Running Node.js processes |\n| `get_listening_ports` | TCP ports in use |\n\n## Development\n\n```bash\npnpm install\npnpm build          # MCP server (tsc)\npnpm build:ext      # VS Code extension (esbuild)\npnpm build:agent    # Runtime agent (esbuild)\npnpm build:all      # Everything\npnpm test           # Run tests\n```\n","readmeFilename":"README.md"}