Skip to content
| Marketplace
Sign in
Visual Studio Code>Debuggers>DebugPilotNew to Visual Studio Code? Get it now.
DebugPilot

DebugPilot

Inkan.link

|
2 installs
| (0) | Free
MCP server exposing VS Code Debug Adapter Protocol to AI agents
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DebugPilot

DebugPilot

Give your AI agent eyes into the debugger.

Version Installs License

DebugPilot is a VS Code extension that exposes the Debug Adapter Protocol (DAP) as an MCP server. Any MCP-compatible AI agent — Claude Code, Cursor, Cline, Continue.dev, Aider — can inspect debug state, control execution, and set breakpoints without manual copy-paste.

Features

Inspection

  • debug_sessions — list active debug sessions with status and pause reason
  • debug_state — full snapshot: pause location, source context, locals, call stack
  • debug_variables — get/expand variables with configurable depth (up to 5 levels)
  • debug_evaluate — evaluate expressions in a paused frame
  • debug_console — buffered console output with regex filtering and timestamp queries
  • debug_breakpoints_list — list all breakpoints with conditions and hit counts

Control

  • debug_continue — resume execution
  • debug_step — step over / into / out
  • debug_pause — pause a running session
  • debug_breakpoint_set — set breakpoints with optional conditions and log messages
  • debug_breakpoint_remove — remove breakpoints by ID
  • debug_exception_config — configure exception breakpoints (caught/uncaught)

Flutter / Dart

  • debug_hot_reload — inject code changes into running Dart VM (preserves app state)
  • debug_hot_restart — full restart with code update (resets app state)

Quick Start

Install from Source

git clone https://github.com/inkan-tech/DebugPilot.git
cd DebugPilot
pnpm install
pnpm run build

Then press F5 in VS Code to launch the Extension Development Host, or package and install:

pnpm run package
code --install-extension debugpilot-0.5.0.vsix

Connect Your AI Agent

DebugPilot starts an MCP server on http://127.0.0.1:45853/mcp using the Streamable HTTP transport.

Claude Code (CLI)

claude mcp add debugpilot --transport http http://127.0.0.1:45853/mcp

Or add manually to your project .mcp.json:

{
  "mcpServers": {
    "debugpilot": {
      "url": "http://127.0.0.1:45853/mcp"
    }
  }
}

Cursor

Add a .cursor/mcp.json to your project root (see examples/mcp-cursor.json):

{ "mcpServers": { "debugpilot": { "url": "http://127.0.0.1:45853/mcp" } } }

Other MCP clients

Point to the same URL. Any client supporting MCP Streamable HTTP will work.

Claude Code Skill (optional)

Install the /debugpilot skill to give Claude Code workflow knowledge for using the debug tools effectively:

cp -r skills/debugpilot ~/.claude/skills/debugpilot

Then use /debugpilot in any Claude Code session to activate the debug workflow.

Usage Examples

Inspect a paused session

Agent: What's the current debug state?
→ calls debug_sessions → finds session paused on exception
→ calls debug_state → sees location, locals, call stack
→ calls debug_console → reads recent error output
→ "The TypeError at line 42 is caused by `user` being undefined..."

Step through code

Agent: Step through the next 3 lines and show me what changes
→ calls debug_step(type: "over") × 3
→ calls debug_variables after each step
→ "After line 44, `result` changed from null to {status: 'ok'}..."

Set a conditional breakpoint

Agent: Break when userId equals "admin"
→ calls debug_breakpoint_set(file: "auth.ts", line: 15, condition: 'userId === "admin"')
→ calls debug_continue

Flutter hot reload

Agent: I changed the widget, hot reload please
→ calls debug_hot_reload(sessionId: "abc123")
→ "Hot reload complete — UI updated with your changes, app state preserved"

Architecture

┌─────────────┐   MCP (Streamable HTTP)  ┌──────────────────┐
│  AI Agent   │ ◄──────────────────────► │  MCP Server      │
│ (Claude Code│                          │  (in extension)  │
│  Cursor etc)│                          └────────┬─────────┘
└─────────────┘                                   │
                                                  │ vscode.debug API
                                                  ▼
                                          ┌───────────────┐
                                          │ VS Code Debug  │
                                          │ Adapter (DAP)  │
                                          │ Node/Bun/LLDB/ │
                                          │ Python/Go/...  │
                                          └───────────────┘

The MCP server runs inside the VS Code extension host process — no child processes or IPC. It proxies MCP tool calls to vscode.debug.* APIs.

Supported Runtimes

DebugPilot works with any VS Code debug adapter:

Runtime Debug Adapter Status
Node.js pwa-node Tested
Bun bun Tested
Flutter/Dart dart Supported (hot reload/restart)
Python debugpy Planned
Go dlv Planned
Rust/C++ lldb / codelldb Planned
Java java Planned

Configuration

VS Code settings under debugPilot.*:

Setting Default Description
debugPilot.enabled true Enable/disable the MCP server
debugPilot.consoleBufferSize 10000 Max console messages to buffer per session
debugPilot.variableDepthLimit 1 Default depth for variable expansion
debugPilot.sourceContextLines 10 Lines of source shown above/below current position

Commands

  • DebugPilot: Restart MCP Server — restart without reloading the window
  • DebugPilot: Show Status — display active sessions and server URL

Endpoints

Path Method Description
/mcp POST/GET/DELETE MCP Streamable HTTP transport
/health GET Health check — returns {"status": "ok"}
/shutdown POST Graceful shutdown (used for port reclaim)

Development

pnpm install              # Install dependencies
pnpm run build            # Build with esbuild → dist/extension.js
pnpm run build:watch      # Watch mode
pnpm run build:check      # Type check (tsc --noEmit)
pnpm run test             # Run tests (vitest)

Project Structure

src/
├── extension.ts          # VS Code activate/deactivate
├── server.ts             # MCP server + HTTP transport
├── debug-adapter.ts      # IDebugAdapter → vscode.debug.* bridge
├── session-manager.ts    # Debug session lifecycle + console buffers
├── console-buffer.ts     # Ring buffer for console output
├── source-reader.ts      # Read source lines around breakpoints
├── types.ts              # IDebugAdapter interface + shared types
├── constants.ts          # Tool names, defaults
└── tools/                # One file per MCP tool
    ├── index.ts
    ├── debug-sessions.ts
    ├── debug-state.ts
    ├── debug-variables.ts
    ├── debug-evaluate.ts
    ├── debug-console.ts
    ├── debug-breakpoints-list.ts
    ├── debug-breakpoint-set.ts
    ├── debug-breakpoint-remove.ts
    ├── debug-continue.ts
    ├── debug-step.ts
    ├── debug-pause.ts
    └── debug-exception-config.ts

Security

  • Server listens on 127.0.0.1 only — no remote access
  • No authentication required for local connections
  • debug_evaluate runs expressions in the debuggee's context (same security model as VS Code's Debug Console)
  • Port reclaim only works against other DebugPilot instances (verified via /health)

Roadmap

  • [x] MCP resources with subscriptions (live console stream, breakpoint events)
  • [x] Pre-built prompts (debug_investigate, debug_trace)
  • [x] Event notifications (breakpoint hit, exception, session lifecycle)
  • [x] Graceful error handling (actionable messages for missing sessions)
  • [ ] Submit to MCP server registry

License

Apache 2.0 — see LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft