Skip to main content
Glama

MCP Debugger Tools

by davidfirst
README.md7.77 kB
# MCP Debugger Tools VSCode extension that exposes debugging capabilities via Model Context Protocol (MCP), enabling AI agents to programmatically control VSCode's debugger. ## Features The extension provides the following 4 MCP tools: 1. **add_breakpoint** - Add a breakpoint to a specific file and line number 2. **remove_breakpoint** - Remove a breakpoint from a specific file and line number 3. **start_debugging** - Start debugging with a specific configuration 4. **stop_debugging** - Stop the current debugging session ## Installation & Setup 1. **Clone and build the extension:** ```bash git clone <repository-url> cd vscode-mcp-debugger npm install npm run compile ``` 2. **Install the extension in VSCode:** - Press `F5` to run in Extension Development Host, or - Package as VSIX: `vsce package` and install manually 3. **Verify the MCP server is available:** - Open VSCode Command Palette (`Cmd+Shift+P`) - Run "MCP: List Servers" - You should see "MCP Debugger Tools" listed 4. **Enable in AI Chat:** - Open AI Chat in VSCode - Click the tools icon or type `/` to see available tools - You should see the 4 debugging tools available ## Usage with AI Agents Once installed, AI agents can use these tools to: - **Set breakpoints** in your code at specific lines - **Start debugging sessions** using your launch configurations - **Remove breakpoints** when no longer needed - **Stop debugging** to clean up resources ### Communication Architecture The extension uses a unique architecture to bridge the MCP protocol with VSCode's debugging APIs: ``` AI Agent → MCP Server → Temp File IPC → VSCode Extension → VSCode Debug API ↑ ↓ JSON Response ← Response File ← Debug API Result ``` **How it works:** 1. **AI Agent** calls MCP tools (add_breakpoint, start_debugging, etc.) 2. **MCP Server** (standalone Node.js process) receives the tool calls 3. **File-based IPC** - Server writes command requests to temporary files 4. **VSCode Extension** monitors temp directory and processes commands 5. **VSCode Debug API** - Extension uses native VSCode debugging capabilities 6. **Response cycle** - Results flow back through the same IPC mechanism This architecture ensures the MCP server runs independently while having full access to VSCode's debugging features. ### Example AI Agent Workflow ``` AI: I'll help you debug the issue in your calculator function. 1. First, let me add a breakpoint at the start of the function: [Uses add_breakpoint tool with filePath and lineNumber] 2. Now I'll start debugging with your launch configuration: [Uses start_debugging tool] 3. After analyzing the execution, I'll clean up: [Uses remove_breakpoint and stop_debugging tools] ``` ## MCP Tools Reference ### add_breakpoint **Description:** Add a breakpoint to a specific file and line number **Parameters:** - `filePath` (string, required): Absolute path to the file - `lineNumber` (number, required): Line number (1-based) - `condition` (string, optional): Conditional expression for the breakpoint **Example:** ```json { "filePath": "/path/to/your/file.js", "lineNumber": 25, "condition": "x > 10" } ``` ### remove_breakpoint **Description:** Remove a breakpoint from a specific file and line number **Parameters:** - `filePath` (string, required): Absolute path to the file - `lineNumber` (number, required): Line number (1-based) **Example:** ```json { "filePath": "/path/to/your/file.js", "lineNumber": 25 } ``` ### start_debugging **Description:** Start debugging with a specific configuration **Parameters:** - `configurationName` (string, optional): Name of the debug configuration to use - `workspaceFolderPath` (string, optional): Path to the workspace folder **Example:** ```json { "configurationName": "Launch Node.js Program", "workspaceFolderPath": "/path/to/workspace" } ``` ### stop_debugging **Description:** Stop the current debugging session **Parameters:** - `sessionId` (string, optional): Optional session ID to stop a specific session **Example:** ```json { "sessionId": "debug-session-123" } ``` ## Requirements - **VSCode** with MCP support (latest version recommended) - **Node.js** (v18+ for running the MCP server) - **Project workspace** with debug configurations in `.vscode/launch.json` - **Extension Development Host** (for development/testing) ## Supported Platforms - ✅ **macOS** - Fully tested and supported - ✅ **Linux** - Compatible with file-based IPC - ✅ **Windows** - Should work with standard temp directory - ⚠️ **WSL** - May require additional configuration for file permissions ## Debug Configuration Setup Create a `.vscode/launch.json` file in your project: ```json { "version": "0.2.0", "configurations": [ { "name": "Launch Node.js Program", "type": "node", "request": "launch", "program": "${workspaceFolder}/src/index.js", "console": "integratedTerminal" } ] } ``` ## Development ### Building from Source - **Install dependencies:** `npm install` - **Compile TypeScript:** `npm run compile` - **Watch for changes:** `npm run watch` for automatic compilation - **Testing:** Use the Extension Development Host (F5) - **Debugging:** Set breakpoints in the extension code itself ### Project Structure ``` src/ ├── extension.ts # Main extension entry point & MCP registration ├── debugBridge.ts # VSCode Debug API wrapper ├── mcpServer.ts # Standalone MCP server (stdio transport) ├── integratedMcpServer.ts # Alternative integrated server implementation └── vscodeDebuggerMcp.ts # Legacy server implementation ``` ### Key Components - **Extension.ts**: Registers MCP server definition, monitors IPC files - **DebugBridge.ts**: Provides clean interface to VSCode debugging APIs - **mcpServer.ts**: Standalone MCP server that communicates via file IPC - **IPC System**: File-based communication between processes ### Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Test with Extension Development Host 5. Submit a pull request Please ensure all tools work correctly and add appropriate error handling. ## Troubleshooting ### Common Issues 1. **Tools not visible:** - Check that MCP server is running via "MCP: List Servers" - Verify the extension is active in Extension Development Host - Look for "MCP Debugger Tools" in the MCP servers list 2. **Breakpoints not working:** - Ensure file paths are absolute and files exist - Check that the file is currently open or can be opened in VSCode - Verify the line number is valid (1-based indexing) 3. **Debug config errors:** - Verify `.vscode/launch.json` exists and is valid - Ensure the specified configuration name exists - Check that the workspace folder is correctly detected 4. **IPC communication issues:** - Check VSCode Developer Console for error messages - Verify temp directory permissions (the extension uses OS temp directory) - Look for MCP server stderr output in "MCP: List Servers" → Show Output ### Debug Mode Enable detailed logging by checking the MCP server output: 1. Open Command Palette (`Cmd+Shift+P`) 2. Run "MCP: List Servers" 3. Select "MCP Debugger Tools" 4. Click "Show Output" to see server logs ### Technical Details - **MCP Server Process**: Runs as standalone Node.js process via stdio transport - **Extension Process**: Runs within VSCode extension host - **IPC Mechanism**: Temporary JSON files in OS temp directory - **Response Timeout**: 10 seconds (configurable in source code) - **File Cleanup**: Automatic cleanup of temporary IPC files ## License MIT

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/davidfirst/vscode-mcp-debugger'

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