返回市场
深度探索-mcp

深度探索-mcp

作者:dwisiswant019 星标更新:2025-03-28

项目介绍

delve-mcp

用于Delve调试器集成的MCP服务器

这是一个基于TypeScript的MCP服务器,它提供了与Go程序的Delve调试器完全交互的接口。通过MCP工具实现了所有主要的Delve命令和功能。

特性

资源

  • 通过delve://URI列表并访问调试会话
  • 每个会话都有关于其类型、目标和端口的元数据
  • 会话详细信息和状态的JSON表示

工具

使用以下工具对Go程序进行调试、跟踪和分析:

  • 调试命令(debugattachexectest
  • 核心转储分析
  • 程序跟踪
  • 使用rr进行回放调试
  • 支持DAP服务器
  • 带条件的断点管理
  • 执行控制(continuestepnext
  • 变量检查和评估
  • 后端选择(nativelldbrr
  • 日志配置
  • 会话管理

环境设置

该服务器需要:

  • 安装了Delve的Go(go install github.com/go-delve/delve/cmd/dlv@latest
  • 对于回放功能:Mozilla rrhttps://github.com/mozilla/rr)
  • Node.js 和 npm

安装

要安装Delve MCP服务器:

npm install @dwisiswant0/delve-mcp

开发

安装依赖项:

npm install

构建服务器:

npm run build

开发时自动重建:

npm run watch

配置

要在Claude Desktop中使用,请添加服务器配置:

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

可用工具

调试命令

  • debug - 调试当前目录或指定包中的Go包
  • attach - 通过PID附加到正在运行的进程
  • exec - 执行并调试预编译的二进制文件
  • test - 调试当前包或指定包中的测试
  • core - 使用关联的可执行文件检查核心转储文件
  • dap - 启动调试适配器协议(DAP)服务器
  • replay - 回放rr跟踪记录
  • trace - 使用函数匹配跟踪程序执行

控制命令

  • setBreakpoint - 设置带可选条件的断点
  • removeBreakpoint - 移除现有断点
  • continue - 继续程序执行
  • next - 跳过到下一行
  • step- 进入函数调用
  • stepout - 退出当前函数
  • variables - 列出当前作用域内的局部变量
  • evaluate - 在当前作用域内求值表达式

配置命令

  • version - 获取Delve版本信息
  • setBackend - 配置调试后端(nativelldbrr
  • configureLogging - 配置调试日志组件

使用示例

启动调试会话

// 调试当前包
{ name: "debug" }

// 使用特定包和构建标志进行调试
{
  name: "debug",
  arguments: {
    package: "./cmd/myapp",
    buildFlags: "-tags=integration"
  }
}

管理断点

// 设置断点
{
  name: "setBreakpoint",
  arguments: {
    sessionId: "abc123",
    file: "main.go",
    line: 42,
    condition: "count > 5"
  }
}

检查状态

// 列出变量
{
  name: "variables",
  arguments: {
    sessionId: "abc123"
  }
}

// 求值表达式
{
  name: "evaluate",
  arguments: {
    sessionId: "abc123",
    expr: "myVar.Field"
  }
}

许可证

MIT。