项目简介

'mcp-debugger' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为AI代理提供强大的多语言调试能力。它将复杂的调试操作(如设置断点、单步执行、检查变量等)封装为结构化的API工具,允许AI代理通过标准化的JSON-RPC请求进行调用,从而赋予AI代理“调试超能力”。当前主要支持Python语言的调试,并通过Debug Adapter Protocol (DAP) 实现与底层调试器的通信。

主要功能点

  • 多语言调试支持: 通过灵活的适配器模式,可扩展支持多种编程语言的调试(当前已支持Python和Mock测试)。
  • 标准化工具接口: 暴露调试操作为MCP工具,LLM客户端可通过JSON-RPC协议调用,实现断点设置、程序启动、单步执行、变量检查、堆栈追踪等功能。
  • 多种传输协议: 支持STDIO和SSE (Server-Sent Events) 两种传输模式,兼容各类MCP客户端环境。
  • AI友好设计: 提供结构化的JSON响应,方便AI代理解析和理解调试信息。
  • 会话管理: 允许AI代理创建、管理和关闭多个独立的调试会话,实现并行调试不同代码的能力。
  • 代码上下文感知: 支持智能断点放置和获取代码上下文,帮助AI理解代码逻辑。

安装步骤

'mcp-debugger' 可以通过npm或Docker进行安装和运行。

使用npm安装(推荐):

  1. 安装Node.js: 确保您的系统已安装Node.js (LTS版本)。
  2. 全局安装: 打开终端,运行以下命令:
    npm install -g @debugmcp/mcp-debugger
  3. 验证安装: 运行 'mcp-debugger --help' 查看可用命令和选项。

使用Docker运行:

  1. 安装Docker: 确保您的系统已安装Docker。
  2. 运行容器: 在终端中,导航到您希望调试代码的目录,然后运行以下命令。这将启动MCP服务器,并将当前目录挂载到容器内的'/workspace',以便调试器可以访问您的代码。
    docker run -v $(pwd):/workspace debugmcp/mcp-debugger:latest

服务器配置

MCP客户端(如Claude Desktop或其他兼容LLM前端)需要配置启动'mcp-debugger'服务器的命令和参数。以下是JSON格式的配置示例,您需要根据实际安装路径进行调整:

  • 如果通过npm全局安装:

    {
      "mcpServers": {
        "mcp-debugger": {
          "command": "mcp-debugger",
          "args": ["stdio", "--log-level", "info", "--log-file", "/path/to/your/logs/debug-mcp-server.log"],
          "disabled": false,
          "autoApprove": ["create_debug_session", "set_breakpoint", "get_variables"]
        }
      }
    }
    • 'command': 'mcp-debugger' (因为是全局安装,可以直接执行)
    • 'args':
      • 'stdio': 指定使用Stdio传输协议。
      • '--log-level info': 设置日志级别为信息。可选值:'error', 'warn', 'info', 'debug'。
      • '--log-file /path/to/your/logs/debug-mcp-server.log': 指定日志文件的路径,请替换为您的实际路径。
    • 'autoApprove': (可选)配置自动批准的工具调用,方便AI代理使用。
  • 如果通过Docker运行:

    {
      "mcpServers": {
        "mcp-debugger": {
          "command": "docker",
          "args": ["run", "--rm", "-i", "-v", "${workspace_folder}:/workspace", "debugmcp/mcp-debugger:latest", "stdio", "--log-level", "info"],
          "disabled": false,
          "autoApprove": ["create_debug_session", "set_breakpoint", "get_variables"]
        }
      }
    }
    • 'command': 'docker'
    • 'args':
      • 'run --rm -i': 运行一个临时容器,并保持标准输入/输出流打开。
      • '-v "${workspace_folder}:/workspace"': 将MCP客户端的当前工作目录挂载到容器的'/workspace'目录,'"${workspace_folder}"'通常由MCP客户端自动替换为实际路径。
      • 'debugmcp/mcp-debugger:latest': 指定要运行的Docker镜像。
      • 'stdio': 告诉容器内的MCP服务器使用Stdio传输协议。
      • '--log-level info': 设置日志级别。
  • 如果MCP客户端需要SSE传输(通常用于浏览器或桌面应用):

    {
      "mcpServers": {
        "mcp-debugger": {
          "command": "mcp-debugger",
          "args": ["sse", "--port", "3001", "--log-level", "info", "--log-file", "/path/to/your/logs/debug-mcp-server-sse.log"],
          "disabled": false,
          "autoApprove": ["create_debug_session", "set_breakpoint", "get_variables"]
        }
      }
    }
    • 'command': 'mcp-debugger'
    • 'args':
      • 'sse': 指定使用SSE传输协议。
      • '--port 3001': 服务器监听的端口号。
      • '--log-level info': 设置日志级别。
      • '--log-file /path/to/your/logs/debug-mcp-server-sse.log': 指定日志文件路径。

基本使用方法

AI代理通过向MCP服务器发送JSON-RPC请求来调用调试工具。以下是一些关键工具的用途:

  1. 'create_debug_session': 创建一个新的调试会话。您需要指定编程语言(例如'python')和会话名称。
    • 示例请求参数:'{"language": "python", "name": "My Python Debug Session"}'
  2. 'set_breakpoint': 在指定文件的特定行设置断点。
    • 示例请求参数:'{"sessionId": "your-session-id", "file": "your_script.py", "line": 15, "condition": "x > 10"}'
  3. 'start_debugging': 启动一个脚本的调试。
    • 示例请求参数:'{"sessionId": "your-session-id", "scriptPath": "your_script.py", "args": ["--verbose"]}'
  4. 'get_variables': 获取当前作用域的变量信息。
    • 示例请求参数:'{"sessionId": "your-session-id", "scope": 5}' (其中'scope'值通过'get_scopes'获取)
  5. 'step_over' / 'step_into' / 'step_out': 执行单步操作。
    • 示例请求参数:'{"sessionId": "your-session-id"}'
  6. 'continue_execution': 让程序继续运行,直到下一个断点或结束。
    • 示例请求参数:'{"sessionId": "your-session-id"}'
  7. 'close_debug_session': 关闭一个调试会话并清理资源。
    • 示例请求参数:'{"sessionId": "your-session-id"}'

AI代理将解析这些工具的JSON响应来获取调试状态、变量值、错误信息等,并据此做出进一步的调试决策。

信息

分类

开发者工具