vscode-extension-devtool-mcp
Provides Express middleware (createDevtool, devtoolMiddleware) for embedding the devtool server in an Express host application, exposing backend diagnostics, store tools, and MCP connectivity.
Provides a MobX store adapter (createMobxAdapter) that activates MobX-specific MCP tools for state-store snapshots, history, change events, and actions.
Provides a React <Devtool> component and <DevtoolProvider> for embedding the devtool in a React webview, letting the MCP agent inspect the running webview's DOM, console, state stores, and performance.
Provides a Redux store adapter that activates Redux-specific MCP tools for state-store snapshots, history, change events, and actions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vscode-extension-devtool-mcpinspect the webview DOM and MobX state — why did the cart re-render?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vscode-extension-devtool-mcp
A framework-agnostic devtool package that connects an AI agent (via MCP) to a
running webview/extension, giving it live visibility into the DOM, console,
state stores, and performance — plus a React <Devtool> component and
Express/Nest middleware for embedding it in any host application.
Install
pnpm add vscode-extension-devtool-mcpSource-first package. The published
exportspoint at TypeScript source (./src/…). Your consumer must compile TypeScript withmodule: NodeNext(or use a bundler that does) and import relative files with explicit.js/.jsxextensions — the same convention the package itself uses.sideEffects: falseenables full tree-shaking.
Related MCP server: DebugMCP
Entry points
Subpath | Runtime | What you get |
| Node / extension host |
|
| Browser (webview) |
|
| Node (stdio) | The stdio MCP client entry (connects to the running extension's WS server and re-exports its tools over stdio) |
| Node (Express) |
|
| Node (Nest) |
|
| Node | Low-level backend surface (devtool server, diagnostics, interceptor, profiler) |
Quick start — React webview
import { Devtool } from "vscode-extension-devtool-mcp/webview"
function App() {
return (
<Devtool
postMessage={vsCodeApi.postMessage}
config={{
// the frontend store adapter (mobx / redux / zustand / apollo);
// declaring it activates the matching store tools on the backend
frontend: { store: myFrontendStoreAdapter },
}}>
<YourApp />
</Devtool>
)
}Quick start — Express host
import express from "express"
import { createDevtool, devtoolMiddleware } from "vscode-extension-devtool-mcp/express"
const app = express()
const devtool = createDevtool({ port: 60060, httpPort: 60061, store: createMobxAdapter(root) })
app.use(devtoolMiddleware(devtool))Quick start — Nest host
import { createDevtool, DevtoolNestMiddleware } from "vscode-extension-devtool-mcp/nest"
const devtool = createDevtool({ port: 60060, httpPort: 60061 })
// register DevtoolNestMiddleware as a global middleware in your Nest moduleConfig-driven MCP tool activation
The MCP tool surface is derived from the config passed at connection time — nothing is hard-wired:
No store passed → state-store MCP tools (snapshots, history, change events, actions) are simply not registered.
MobX store passed (
createMobxAdapter) → MobX tools active.Redux / Zustand / Apollo → the matching adapter activates its tool set.
No backend connection → backend-side tools are invisible to the agent; only frontend tools are exposed, and vice versa.
All framework integration lives under src/framework/<name> (mobx, redux,
zustand, apollo, plain) behind a single IStoreAdapter interface; config.ts
at the package root decides what is wired up.
Diagnostics & metrics
DiagnosticsManager(+diagnosticsManagersingleton) collects logs, performance metrics, resource snapshots, and MST patches.MetricsCollector(frontend) profiles every devtool request — performance, CPU, and memory — for maximum per-request visibility.MessageInterceptortraces message traffic with filtering.
Testing
pnpm test # 50 tests: config gating, adapters, history, hosts, state tools, metrics, <Devtool>
pnpm check-types
pnpm lintLicense
Apache-2.0 (see LICENSE).
This server cannot be deployed
Maintenance
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Debug webhooks from your AI agent: inspect and replay captured webhooks on localhost.
Data + AI observability — monitor and troubleshoot production-grade agents and the context they use.
- naturaliOAuthai.naturali
Configure AI agents, give them knowledge and tools, and read back every generation they run.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to programmatically control and automate VSCode by interacting with its UI, executing commands, and inspecting the DOM structure. It supports advanced workflows like UI testing, extension development, and debugging through a standalone VSCode instance.10 npm8MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to debug code inside VS Code by setting breakpoints, stepping through execution, inspecting variables, and evaluating expressions across multiple languages.551MIT
- AlicenseNot gradedqualityDmaintenanceStreams browser DevTools console, network, storage, and performance data to your IDE's AI agent for real-time debugging and analysis.11 npm1MIT
- AlicenseNot gradedqualityAmaintenanceExposes the React DevTools and TanStack Query/Router state of a Chrome tab to coding agents as MCP tools, enabling inspection, profiling, and mutation of components, queries, and routes from any MCP client.1MIT