Let AI agents debug your code inside VS Code - set breakpoints, step through execution, inspect variables, and evaluate expressions. Works with , , , , , , , and any MCP-compatible assistant.
概览
Let AI agents debug your code inside VS Code - set breakpoints, step through execution, inspect variables, and evaluate expressions. Works with , , , , , , , and any MCP-compatible assistant.
README
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 [email protected] and [email protected]. 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.2.0
/debug-liveAgent Skill — DebugMCP now ships a companion Agent Skill that is auto-installed into each configured harness’s personal skills directory (e.g.~/.copilot/skills/debug-live/). Invoke it with/debug-livein 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_debuggingwith atestNamenow 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. - Concurrent debugging - supports multiple concurrent debug sessions, allowing effective parallel agentic debugging.
🚀 Quick Install
Install from VS Code Marketplace or use the direct link: vscode:extension/ozzafar.debugmcpextension
Table of Contents
- Overview
- Features
- Installation
- Quick Start
- Supported AI Assistants
- Supported Languages
- Configuration
- FAQ
- Troubleshooting
- How It Works
- Contributing
- License
Overview
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.
Features
🔧 Tools
| Tool | Description | Parameters |
|---|---|---|
| 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 (optionally conditional) | fileFullPath (required)lineContent (required)condition (optional) |
| 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 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
Installation
Quick Install Options
Option 1: Direct Link (Fastest)
- Click this link: vscode:extension/ozzafar.debugmcpextension
- Or copy and paste in your browser:
vscode:extension/ozzafar.debugmcpextension
Option 2: VS Code Marketplace
- Visit: https://marketplace.visualstudio.com/items?itemName=ozzafar.debugmcpextension
- Click “Install”
Option 3: Within VS Code
- Open VSCode
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for “DebugMCP”
- Click Install
- 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.
Quick Start
- Install the extension (see Installation)
- Open your project in VSCode
- Ask your AI to debug - it can now set breakpoints, start debugging, and analyze your code!
Supported AI Assistants
DebugMCP works with any MCP-compatible AI assistant. It auto-detects and offers to register itself with:
| Assistant | Auto-Registration | Manual Config |
|---|---|---|
| GitHub Copilot | ✅ | See config |
| GitHub Copilot CLI | ✅ | See config |
| Cline | ✅ | See config |
| Cursor | ✅ | See config |
| Codex | ✅ | See config |
| Windsurf | ✅ | See config |
| Roo Code | ✅ | See config |
| Antigravity | ✅ | See config |
| Any MCP-compatible assistant | — | See manual setup |
Supported Languages
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, .csproj |
✅ Fully Supported |
Configuration
MCP Server Configuration (Recommended)
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:
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - AI-powered debugging assistant"
}
}
}
GitHub Copilot
Add to your VS Code settings (settings.json):
{
"mcp": {
"servers": {
"debugmcp": {
"type": "http",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Multi-language debugging support"
}
}
}
}
GitHub Copilot CLI
Add to ~/.copilot/mcp-config.json (${COPILOT_HOME}/mcp-config.json if COPILOT_HOME is set):
{
"mcpServers": {
"debugmcp": {
"type": "http",
"url": "http://localhost:3001/mcp",
"tools": ["*"]
}
}
}
Cursor
Add to Cursor’s MCP settings:
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Debugging tools for AI assistants"
}
}
}
Codex
Register DebugMCP with Codex:
codex mcp add debugmcp --url http://localhost:3001/mcp
Or add the equivalent configuration to ~/.codex/config.toml (${CODEX_HOME}/config.toml if CODEX_HOME is set):
[mcp_servers.debugmcp]
url = "http://localhost:3001/mcp"
Windsurf
Add to Windsurf’s MCP settings (~/.windsurf/mcp_settings.json or workspace .windsurf/mcp_settings.json):
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Debugging tools for AI assistants"
}
}
}
Roo Code
Add to Roo Code’s MCP settings:
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Debugging tools for AI assistants"
}
}
}
Antigravity
Add to Antigravity’s MCP settings:
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - Debugging tools for AI assistants"
}
}
}
Extension Settings
Configure DebugMCP behavior in VSCode settings:
{
"debugmcp.serverPort": 3001,
"debugmcp.timeoutInSeconds": 180,
"debugmcp.bindHost": ["127.0.0.1", "::1"]
}
| Setting | Default | Description |
|---|---|---|
debugmcp.serverPort |
3001 |
Port number for the MCP server |
debugmcp.timeoutInSeconds |
180 |
Timeout for debugging operations |
debugmcp.bindHost |
["127.0.0.1", "::1"] |
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.1and::1) by default, so other hosts on your network cannot reachhttp://:3001/mcp. Binding both families ensures clients that resolvelocalhostto either family connect successfully. Thedebugmcp.bindHostsetting (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 at0.0.0.0or a LAN address on an untrusted network. - Host / Origin header validation. Every request must carry a
Hostheader naming a loopback address (localhost,127.0.0.1, or[::1]); any port suffix in theHostmust also match the server’s listening port. Requests with any otherHost— including those that arrive via DNS rebinding from a malicious webpage — are rejected with HTTP 403. The same loopback check is applied to theOriginheader when present.
FAQ
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 Popupfrom the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) - Manually add the configuration (see Manual MCP Server Registration)
- Run
How It Works
Architecture
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.jsonfile exists, it will:- Search for a relevant configuration
- Honor
configurationNamewhen explicitly provided by the agent - Support JSONC (JSON with comments and trailing commas)
-
Default Configuration: If
configurationNameis 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:
- Python: Python extension for
.pyfiles - JavaScript/TypeScript: Built-in Node.js debugger or JavaScript Debugger extension
- Java: Extension Pack for Java
- C#/.NET: C# extension
- C/C++: C/C++ extension
- Go: Go extension
- Rust: rust-analyzer extension
- PHP: PHP Debug extension
- Ruby: Ruby extension with debug support
- Python: Python extension for
- MCP-compatible AI assistant (Copilot, Cline, Cursor, Codex, Windsurf, Roo Code, etc.)
Development
To build the extension:
npm install
npm run compile
To run linting:
npm run lint
To run tests:
npm test
Contributing
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.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Security
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.
Star History
License
MIT License - See LICENSE for details
This extension was created by Oz Zafar, Ori Bar-Ilan and Karin Brisker.
安装
This server does not publish a one-line install command.
Open the repository installation guide配置
{
"mcpServers": {
"debugmcp": {
"type": "streamableHttp",
"url": "http://localhost:3001/mcp",
"description": "DebugMCP - AI-powered debugging assistant"
}
}
}