JDB-MCP:Java调试器MCP服务器
JDB-MCP是基于Java调试接口(JDI)的模型上下文协议(MCP)服务器。它使AI代理(如Claude、Cline、Trae)能够对Java应用程序进行深度运行时调试。
演示
关键能力
- 多运输支持:支持两者
stdio(标准VSCode集成)和http(用于远程/curl调试)。 - 全功能调试(仅连接模式):
- 附加到正在运行的进程(debug_attach)-支持启用JDWP的任何Java应用程序(SpringBoot、Maven、Gradle等)。 - 断点管理(debug_set_breakpoint, debug_set_watchpoint) - 流量控制(跨步、进入、退出、恢复) - 状态检查(堆栈跟踪检查、深度结构化变量遍历) - 螺纹和等级检查(debug_list_threads, debug_list_classes) - 动态修改(在运行时更改变量值)
- 简化设计:目前专注于单会话调试,不需要复杂的
sessionId管理。 - 需要手动调试模式:必须在启用JDWP选项的情况下手动启动目标Java应用程序。
- 实时感知:利用MCP通知,当遇到断点时,AI代理会立即收到通知。
安装和建造
先决条件
- JDK 17+(带JDI模块)
构建fatJAR
# Build all modules and generate JARs in the `release/` directory
mvn clean package
# Or build for a specific JDK version:
# For JDK 17+ (Recommended)
mvn clean package -pl jdb-mcp-jdk17 -am
# For JDK 7 (Legacy Support)
mvn clean package -pl jdb-mcp-jdk7 -am可执行的JAR文件将位于 release/ 目录:
release/jdb-mcp.jar(JDK 17+)release/jdb-mcp-jdk7.jar(JDK 7)
配置和使用
启动选项
--transport:设置传输模式(默认值:stdio).--notifications:启用实时AI通知(默认值:true).
有关详细的刀具参数分析,请参阅 参数指南.
VSCode中的用法(Cline/Claude Dev)
将以下配置添加到MCP设置中:
{
"mcpServers": {
"jdb-debugger": {
"command": "java",
"args": [
"-jar",
"path/to/jdb-mcp.jar"
]
}
}
}如何调试(附加模式)
重要:您必须在启用JDWP的情况下手动启动目标Java应用程序。
- 开始您的项目:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar your-app.jar- 在AI聊天中,请求:
Attach to localhost:5005 and debug...
刀具清单
debug_attach:通过Socket连接到现有的调试端口。debug_list_threads:列出所有线程及其状态。debug_list_classes:使用可选筛选列出加载的类。debug_list_methods:列出特定类中的方法。debug_source:检索类的源代码(需要源代码根)。debug_set_method_breakpoint:在方法条目处设置断点。debug_set_method_entry:监视方法条目事件。debug_set_method_exit:监视方法退出事件。debug_list_vars:列出变量(支持threadName,frameIndex和scope过滤器)。debug_get_var:获取特定变量的详细信息。debug_set_var:修改运行时变量(支持threadName和frameIndex).- …以及更多(参见
tools/list).
待办事项列表
- \[ \] 实施
debug_launch:通过允许用户直接通过MCP启动和调试Java程序,实现“开箱即用”的体验。 - \[ \] 实施
debug_calc:支持在调试上下文中评估任意Java表达式(表达式评估)。 - \[ \] 多会话支持:重构以允许一个MCP实例同时管理和调试多个目标程序。
- \[ \] 包前缀筛选:支持按包前缀过滤(例如。,
com.example.*)用于方法入口/出口和断点。 - \[ \] 批处理类筛选:支持一次传递多个类名或通配符模式以过滤事件。
- \[ \] 增强的断点控制:支持条件断点和线程过滤,以实现更精确的调试中断。
- \[ \] 待添加:更多基于社区反馈的功能。
许可证
开源在 MIT许可证.

