by microsoft
Gift your VS Code agent a real debugger: breakpoints, stepping, inspection.
# Add to your Claude Code skills
git clone https://github.com/microsoft/DebugMCPLet AI agents debug your code inside VS Code — set breakpoints, step through execution, inspect variables, and evaluate expressions. Works with GitHub Copilot, Cline, Cursor, and any MCP-compatible assistant. Supports Python, JavaScript/TypeScript, Java, C#, C++, Go, Rust, PHP, and Ruby.
📢 Beta Version Notice: This is a beta version of DebugMCP 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.
Install from VS Code Marketplace or use the direct link:
No comments yet. Be the first to share your thoughts!
vscode:extension/ozzafar.debugmcpextensionDebugMCP 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.
| Tool | Description | Parameters |
|------|-------------|------------|
| get_debug_instructions | Get the debugging guide with best practices and workflow instructions | None |
| start_debugging | Start a debug session for a source code file | fileFullPath (required)workingDirectory (required)testName (optional)configurationName (optional) |
| stop_debugging | Stop the current debug session | None |
| step_over | Execute the next line (step over function calls) | None |
| step_into | Step into function calls | None |
| step_out | Step out of the current function | None |
| continue_execution | Continue until next breakpoint | None |
| restart_debugging | Restart the current debug session | None |
| add_breakpoint | Add a breakpoint at a specific line | fileFullPath (required)lineContent (required) |
| remove_breakpoint | Remove a breakpoint from a specific line | fileFullPath (required)line (required) |
| clear_all_breakpoints | Remove all breakpoints at once | None |
| list_breakpoints | List all active breakpoints | None |
| get_variables_values | 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
get_debug_instructionstool is particularly useful for AI clients like GitHub Copilot that don't support MCP resources. It provides the same debugging guide content that is also available as an MCP resource.
DebugMCP follows systematic debugging practices for effective issue resolution:
Option 1: Direct Link (Fastest)
vscode:extension/ozzafar.debugmcpextensionOption 2: VS Code Marketplace
Option 3: Within VS Code
After installation, you should see:
📝 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.
DebugMCP supports debugging for the following languages with their respective VSCode extensions:
| Language | Extension Required | File Extensions | Status |
|----------|-------------------|-----------------|---------|
| Python | Python | .py | ✅ Fully Supported |
| JavaScript/TypeScript | Built-in / JS Debugger | .js, .ts, .jsx, .tsx | ✅ Fully Supported |
| Java | Extension Pack for Java | .java | ✅ Fully Supported |
| C/C++ | C/C++ | .c, .cpp, .cc | ✅ Fully Supported |
| Go | Go | .go | ✅ Fully Supported |
| Rust | rust-analyzer | .rs | ✅ Fully Supported |
| PHP | PHP Debug | .php | ✅ Fully Supported |
| Ruby | Ruby | .rb | ✅ Fully Supported |
| C#/.NET | C# | .cs | ✅ Fully Supported |
The extension runs an MCP server automatically. It will pop up a message to auto-register the MCP server in your AI assistant.
🔄 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.
Add to your Cline settings or cline_mcp_settings.json:
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - AI-powered debugging assistant"
}
}
}
Add to your VS Code settings (settings.json):
{
"mcp": {
"servers": {
"debugmcp": {
"type": "http",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Multi-language debugging support"
}
}
}
}
Add to Cursor's MCP settings:
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Debugging tools for AI assistants"
}
}
}
Configure DebugMCP behavior in VSCode settings:
{
"debugmcp.serverPort": 3001,
"debugmcp.timeoutInSeconds": 180
}
| Setting | Default | Description |
|---------|---------|-------------|
| debugmcp.serverPort | 3001 | Port number for the MCP server |
| debugmcp.timeoutInSeconds | 180 | Timeout for debugging operations |
DebugMCP works with any MCP-compatible AI assistant, including GitHub Copilot, Cline, Cursor, Roo Code, Windsurf, and others. If your assistant supports the Model Context Protocol, it can use DebugMCP.
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.
No. DebugMCP automatically generates appropriate debug configurations based on the file's language/extension. If you have a launch.json, it will use matching configurations from there