JVM调试服务

通过JDWP协议为Java/Kotlin应用程序提供调试服务,支持断点设置、多线程控制和变量检查。

  • by Riku-KANO
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Riku-KANO/jvm-debug-mcp

使用说明

JVM调试MCP

MCP服务器,用于通过JDWP(Java调试线协议)调试Java/Kotlin应用程序。

使AI助手(Claude等)能够设置断点、遍历代码、检查变量和控制多线程Java/Kotlin应用程序——所有这些都是通过 模型上下文协议.

文件(英文) | 文档

特性

  • 断点调试 --按类和行设置断点,跳过/进入/退出,继续
  • 多线程支持 --每个线程挂起、恢复和单步执行(独立线程控制)
  • 计量检验 --局部变量、对象字段、数组元素、字符串值
  • 17个MCP工具 --从连接到变量检查的完整调试工作流程

先决条件

  • Node.js 18+
  • Java JDK 11+(针对目标应用)

设置

git clone https://github.com/Riku-KANO/jvm-debug-mcp.git
cd jvm-debug-mcp
pnpm install

pnpm install 通过自动运行构建 prepare 脚本。

MCP客户端配置

克劳德桌面版

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "jvm-debug": {
      "command": "node",
      "args": ["/absolute/path/to/jvm-debug-mcp/dist/index.js"]
    }
  }
}

克劳德代码

添加 .mcp.json 在您的项目或 ~/.claude/.mcp.json 全球地:

{
  "mcpServers": {
    "jvm-debug": {
      "command": "node",
      "args": ["/absolute/path/to/jvm-debug-mcp/dist/index.js"]
    }
  }
}

其他MCP客户端

任何兼容MCP的客户端都可以使用此服务器。将命令设置为 node 以及关于绝对路径的论证 dist/index.js.

快速开始

启用JDWP启动应用程序:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar app.jar

然后通过MCP工具进行连接和调试:

1. connect({ host: "localhost", port: 5005 })
2. set_breakpoint({ className: "com.example.MyClass", line: 25 })
3. get_stack_trace({})
4. get_variables({})

MCP工具

类别 工具
连接 connect, disconnect
断点 set_breakpoint, remove_breakpoint, list_breakpoints
执行 resume, pause, step_over, step_into, step_out
检查 get_stack_trace, get_variables, inspect_object, inspect_array, get_threads
状态 get_events, status

发展

pnpm run check    # TypeScript + ESLint + Prettier + Vitest
pnpm run lint     # ESLint only
pnpm run test     # Vitest only
pnpm run build    # TypeScript compile

建筑

AI Assistant  ←── MCP (stdio) ──→  JVM Debug MCP Server  ←── JDWP (TCP) ──→  Target JVM

服务器直接通过TCP实现JDWP(不依赖于JDI),在纯Node.js中运行。

许可证

麻省理工学院