Let AI agents debug your code inside VS Code — breakpoints, step-through execution, variable inspection, and expression evaluation. Automatically exposes itself as an MCP (Model Context Protocol) server for seamless integration with AI assistants.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
DebugMCP (MCP Server) - Empowering AI Agents with Operational Debugging Capabilities
Let AI agents debug your code inside VS Code - set breakpoints, step through execution, inspect variables, and evaluate expressions. Works with Codex, GitHub Copilot, GitHub Copilot CLI, Cline, Cursor, Windsurf, Roo Code, and any MCP-compatible assistant. Compatible with any VS Code supported coding language.
⭐ If you find DebugMCP useful, please star the repo on GitHub! It helps others discover the project and motivates continued development.
📢 Developers Notice: This extension is maintained by ozzafar@microsoft.com and orbarila@microsoft.com. We welcome feedback and contributions to help improve this extension.
🎬 Watch DebugMCP in action — your AI assistant autonomously sets breakpoints, steps through code, and inspects variables directly in VS Code.
✨ What's New in 2.0.0
/really-debug Agent Skill — DebugMCP now ships a companion Agent Skill that is auto-installed into each configured harness's personal skills directory (e.g. ~/.copilot/skills/really-debug/). Invoke it with /really-debug in supporting agents to load the systematic debugging workflow and trigger DebugMCP tools with the right context.
Robust debugging via the VS Code Testing API — start_debugging with a testName now uses the VS Code Testing API to discover and launch the test, replacing the previous best-effort path. This works reliably across language test runners that integrate with the Testing API (pytest, Jest/Vitest, Java, .NET, Go, etc.) and produces consistent breakpoint hits inside individual test cases.
DebugMCP is an MCP server that gives AI coding agents full control over the VS Code debugger. Instead of reading logs or guessing, your AI assistant can autonomously set breakpoints, launch debug sessions, step through code line by line, inspect variable values, and evaluate expressions — just like a human developer would. It runs 100% locally, requires zero configuration, and works out of the box with any MCP-compatible AI assistant.
Get variables and their values at current execution point
scope (optional: 'local', 'global', 'all')
evaluate_expression
Evaluate an expression in debug context
expression (required)
Note: The MCP server intentionally exposes tools only — no procedural
instructions, no documentation resources. Workflow guidance (when to debug, how to
structure a root-cause investigation, language-specific quirks) lives in the companion
DebugMCP Agent Skill so it can be loaded into an
agent's prompt context independently of the MCP capability surface.
🎯 Debugging Best Practices
DebugMCP follows systematic debugging practices for effective issue resolution:
Start with Entry Points: Begin debugging at function entry points or main execution paths
Follow the Execution Flow: Use step-by-step execution to understand code flow
Root Cause Analysis: Don't stop at symptoms - find the underlying cause
🛡️ Security & Reliability
Secure Communication: All MCP communications use secure protocols
Local Operation: The MCP server runs 100% locally with no external communications and requires no credentials
State Validation: Robust validation of debugging states and operations
The extension automatically activates and registers as an MCP server
Verification
After installation, you should see:
DebugMCP extension in your installed extensions
MCP server automatically running on port 3001 (configurable)
Debug tools available to connected AI assistants
📝 Note: No additional debugging rule instructions are needed - the extension works out of the box.
💡 Tip: Enable auto-approval for all debugmcp tools in your AI assistant to create seamless debugging workflows without constant approval interruptions.
The extension runs an MCP server automatically. It will pop up a message to auto-register the MCP server in your AI assistant.
You can also trigger the registration manually via the Command Palette:
DebugMCP: Show Agent Selection Popup
Manual MCP Server Registration (Optional)
🔄 Auto-Migration: If you previously configured DebugMCP with SSE transport, the extension will automatically migrate your configuration to the new Streamable HTTP transport on activation.
Cline
Add to your Cline settings or cline_mcp_settings.json:
Network interface(s) the HTTP server binds to. Accepts a string or array of strings. See Security model before changing.
Security model
DebugMCP exposes powerful debugger primitives (evaluate_expression, start_debugging, …) over an unauthenticated local HTTP endpoint. To keep that surface safe, the server enforces two controls:
Loopback-only bind. The HTTP server binds to the IPv4 and IPv6 loopback addresses (127.0.0.1 and ::1) by default, so other hosts on your network cannot reach http://<your-ip>:3001/mcp. Binding both families ensures clients that resolve localhost to either family connect successfully. The debugmcp.bindHost setting (string or array of strings) lets you opt into a different interface (for example, when forwarding the port into a remote container), but doing so exposes the unauthenticated debugger to anything that can route to that address — do not point it at 0.0.0.0 or a LAN address on an untrusted network.
Host / Origin header validation. Every request must carry a Host header naming a loopback address (localhost, 127.0.0.1, or [::1]); any port suffix in the Host must also match the server's listening port. Requests with any other Host — including those that arrive via DNS rebinding from a malicious webpage — are rejected with HTTP 403. The same loopback check is applied to the Origin header when present.
FAQ
Which AI assistants are supported?
DebugMCP works with any MCP-compatible AI assistant, including GitHub Copilot, GitHub Copilot CLI, Cline, Cursor, Codex, Windsurf, Roo Code, Antigravity, and others. If your assistant supports the Model Context Protocol, it can use DebugMCP.
Does it work with VS Code Remote SSH / Codespaces / WSL?
Yes. DebugMCP runs as a VS Code extension with extensionKind: workspace, so it activates in the remote environment where your code lives. The MCP server runs on localhost within that remote context.
Do I need to configure launch.json?
No. DebugMCP automatically generates appropriate debug configurations based on the file's language/extension. If you have a launch.json, it will automatically pick the most relevant configuration.
Is my code sent to any external service?
No. DebugMCP runs 100% locally. The MCP server runs on localhost, and no code, variables, or debug data is sent to any external service. The AI assistant communicates with the MCP server entirely within your local machine.
What if port 3001 is already in use?
Change the port in VS Code settings: "debugmcp.serverPort": 3002 (or any available port). Then update your AI assistant's MCP configuration to use the new port.
Can I debug unit tests?
Yes. Pass the testName parameter to start_debugging to debug a specific test method. DebugMCP will configure the debug session to run and pause at breakpoints within that test.
Why is my AI assistant not using the debug tools?
Make sure DebugMCP is registered in your AI assistant's MCP settings. The extension should auto-detect and offer to register itself. If not, see the Manual MCP Server Registration section. Also enable auto-approval for DebugMCP tools for a smoother workflow.
Does it support ASP.NET / .csproj projects?
Yes. DebugMCP supports .cs files and .csproj project files for C#/.NET debugging, including ASP.NET applications.
Troubleshooting
Common Issues
MCP Server Not Starting
Symptom: AI assistant can't connect to DebugMCP
Solution:
Check if port 3001 is available
Restart VSCode
Verify extension is installed and activated
Debug Session Not Stopping at Breakpoints
Symptom: Breakpoints are set but execution doesn't pause
Solution:
Ensure the correct file is being debugged
Check that the breakpoint line content matches exactly
Verify the relevant language debugger extension is installed
Configuration Not Auto-Detected
Symptom: Extension doesn't prompt to register with your AI assistant
Solution:
Run DebugMCP: Show Agent Selection Popup from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
AI Agent (Copilot/Cline/Cursor/Codex) → MCP/Streamable HTTP → DebugMCPServer → DebuggingHandler → VS Code Debug API
Launch Configuration Integration
The extension handles debug configurations intelligently:
Existing launch.json: If a .vscode/launch.json file exists, it will:
Search for a relevant configuration
Honor configurationName when explicitly provided by the agent
Support JSONC (JSON with comments and trailing commas)
Default Configuration: If configurationName is omitted, or if no matching named configuration is found, it creates an appropriate default configuration for each language based on file extension detection
Requirements
VSCode with appropriate language extensions installed:
This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.
Security vulnerabilities should be reported following the guidance at https://aka.ms/SECURITY.md.
Please do not report security vulnerabilities through public GitHub issues.
Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
Microsoft's Trademark & Brand Guidelines.
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
⭐ Support DebugMCP
If DebugMCP has helped you debug faster, please consider giving it a star on GitHub! Stars help the project gain visibility and attract contributors.