Skip to content

Breakpoints set via MCP API don't pause execution (using custom stdio proxy) #123

Description

@skhomyn

Breakpoints registered via add_breakpoint are accepted but execution never pauses when code runs through them. Debug sessions run to completion without stopping.

Important: We wrote a custom stdio-to-HTTP+SSE proxy because DebugMCP's HTTP transport is incompatible with Claude Code's stdio-only MCP client. This proxy may be causing the issue.

Environment

  • DebugMCP: 2.3.0
  • VS Code: 1.132.0
  • Node.js: v24.16.0
  • OS: Windows 11 Enterprise
  • Runtime: TypeScript via tsx v4.22.4 + vitest 4.1.9
  • Project: SAP CAP with @sap/cds 10.0.3
  • Custom proxy: stdio → HTTP+SSE bridge

Reproduction

  1. Start DebugMCP (http://localhost:3001/mcp)
  2. Start custom proxy bridging stdio → HTTP+SSE
  3. Call add_breakpoin + line number →returns success ✅
  4. Call start_debugging with launch config → launches successfully ✅
  5. Code runs through breakpoint without stopping ❌
  6. Session completes "ran to completion without stopping"

What Works

  • Proxy forwards all 15 MCP tools successfully
  • Debug sessions launch
  • Manual breakpoints in VS Code UI work fine

What Doesn't Work

  • Execution never pauses at MCP-registered breakpoints
  • No stack frame for variable inspection
  • Tools timeout waiting for paused state

What We Tried

  • TypeScript source p
  • Multiple launch configurations
  • Simple test scripts
  • Logpoints (also didn't trigger)
  • Setting breakpoints

All fail identically.

Hypothesis

Proxy may not be maintaining breakpoint state correctly between add_breakpoint and start_debugging calls. Our proxy parses SSE responses line-by-line and tracks session IDs, but breakpoint registration state might need to persist within a single HTTP session.

Simplified proxy logic:
// Parse SSE from DebugMCP, forward JSON-RPC to Claude Code
const response = await fetch('http://localhost:3001/mcp', {
method: 'POST',
headers: { 'Accept': 'text/event-stream' },
body: JSON.stringify(request)
});
// Parse SSE events, extract session IDs, forward responses

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions