MCP ExplorerExplorer

Delve Mcp

@dwisiswant0on 9 months ago
17 MIT
FreeCommunity
AI Systems
MCP server for Delve debugger integration

Overview

What is Delve Mcp

delve-mcp is an MCP server designed for integrating the Delve debugger with Go programs. It provides a comprehensive interface for debugging and analyzing Go applications using TypeScript.

Use cases

Use cases for delve-mcp include debugging Go packages, attaching to running processes, executing precompiled binaries, and testing Go applications, making it suitable for both development and testing phases.

How to use

To use delve-mcp, install it via npm with the command npm install @dwisiswant0/delve-mcp. Configure it in your application settings, and ensure you have Go and Delve installed. You can then utilize various debug commands to manage your Go programs.

Key features

Key features of delve-mcp include session management via delve:// URIs, support for core dump analysis, program tracing, replay debugging, breakpoint management, variable inspection, and logging configuration.

Where to use

delve-mcp is primarily used in software development environments where Go applications are being developed and debugged, particularly in scenarios requiring in-depth analysis and debugging capabilities.

Content

delve-mcp

MCP server for Delve debugger integration

This is a TypeScript-based MCP server that provides a complete interface to the Delve debugger for Go programs. It implements all major Delve commands and capabilities through MCP tools.

Features

Resources

  • List and access debug sessions via delve:// URIs
  • Each session has metadata about its type, target, and port
  • JSON representation for session details and state

Tools

Debug, trace, and analyze Go programs with:

  • Debug commands (debug, attach, exec, test)
  • Core dump analysis
  • Program tracing
  • Replay debugging with rr
  • DAP server support
  • Breakpoint management with conditions
  • Execution control (continue, step, next)
  • Variable inspection and evaluation
  • Backend selection (native, lldb, rr)
  • Logging configuration
  • Session management

Environment Setup

The server requires:

  • Go installed with Delve (go install github.com/go-delve/delve/cmd/dlv@latest)
  • For replay functionality: Mozilla rr (https://github.com/mozilla/rr)
  • Node.js and npm

Installation

To install Delve MCP server:

npm install @dwisiswant0/delve-mcp

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Configuration

To use with Claude Desktop, add the server config:

  • On Linux: ~/.config/Claude/claude_desktop_config.json.
  • On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json.
  • On Windows: %APPDATA%/Claude/claude_desktop_config.json.
{
  "mcpServers": {
    "delve-mcp": {
      "command": "/path/to/delve-mcp/build/index.js"
    }
  }
}

Available Tools

Debug Commands

  • debug - Debug a Go package in current directory or specified package
  • attach - Attach to a running process by PID
  • exec - Execute and debug a precompiled binary
  • test - Debug tests in current package or specified package
  • core - Examine a core dump file with associated executable
  • dap - Start a Debug Adapter Protocol (DAP) server
  • replay - Replay an rr trace recording
  • trace - Trace program execution with function matching

Control Commands

  • setBreakpoint - Set a breakpoint with optional condition
  • removeBreakpoint - Remove an existing breakpoint
  • continue - Continue program execution
  • next - Step over to next line
  • step - Step into function call
  • stepout - Step out of current function
  • variables - List local variables in current scope
  • evaluate - Evaluate expression in current scope

Configuration Commands

  • version - Get Delve version information
  • setBackend - Configure debug backend (native, lldb, rr)
  • configureLogging - Configure debug logging components

Usage Examples

Starting a Debug Session

// Debug current package
{ name: "debug" }

// Debug with specific package and build flags
{
  name: "debug",
  arguments: {
    package: "./cmd/myapp",
    buildFlags: "-tags=integration"
  }
}

Managing Breakpoints

// Set a breakpoint
{
  name: "setBreakpoint",
  arguments: {
    sessionId: "abc123",
    file: "main.go",
    line: 42,
    condition: "count > 5"
  }
}

Inspecting State

// List variables
{
  name: "variables",
  arguments: {
    sessionId: "abc123"
  }
}

// Evaluate expression
{
  name: "evaluate",
  arguments: {
    sessionId: "abc123",
    expr: "myVar.Field"
  }
}

License

MIT.

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers