Skip to main content
Glama
microsoft

DebugMCP

Official
by microsoft

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. Supports Python, JavaScript/TypeScript, Java, C#, C++, Go, Rust, PHP, and Ruby.

License: MIT VS Code Version VS Marketplace

If you find DebugMCP useful, please star the repo on GitHub! It helps others discover the project and motivates continued development.

🎬 Watch DebugMCP in action — your AI assistant autonomously sets breakpoints, steps through code, and inspects variables directly in VS Code.

📢 Developers Notice: This extension is maintained by ozzafar@microsoft.com and orbarila@microsoft.com. We welcome feedback and contributions to help improve this extension.

🚀 Quick Install

Install from VS Code Marketplace or use the direct link: vscode:extension/ozzafar.debugmcpextension

Table of Contents

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

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_instructions tool 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.

🎯 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)

Option 2: VS Code Marketplace

Option 3: Within VS Code

  1. Open VSCode

  2. Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)

  3. Search for "DebugMCP"

  4. Click Install

  5. 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

  1. Install the extension (see Installation)

  2. Open your project in VSCode

  3. 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

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
}

Setting

Default

Description

debugmcp.serverPort

3001

Port number for the MCP server

debugmcp.timeoutInSeconds

180

Timeout for debugging operations

FAQ

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.

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 automatically pick the most relevant configuration.

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.

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.

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.

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.

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)

    • Manually add the configuration (see Manual MCP Server Registration)

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.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

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 opencode@microsoft.com 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 DebugMCP on GitHub

Star History

License

MIT License - See LICENSE for details

This extension was created by Oz Zafar, Ori Bar-Ilan and Karin Brisker.

A
license - permissive license
-
quality - not tested
F
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/microsoft/DebugMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server