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 installpnpm 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中运行。
许可证
麻省理工学院
