调试器MCP服务器
](https://plugins.jetbrains.com/plugin/29233) ](https://plugins.jetbrains.com/plugin/29233)
一个JetBrains IDE插件,它公开了一个 MCP(模型上下文协议)服务器,为AI编码助手提供对调试器的完全编程控制。设置断点、遍历代码、检查变量和计算表达式——所有这些都由您的AI助手自主驱动。
经过全面测试:IntelliJ IDEA、PyCharm、WebStorm、GoLand、RustRover、安卓工作室、PhpStorm 可能有效 (未经测试):RubyMine、CLion、DataGraph

调试器MCP服务器 通过模型上下文协议(MCP),AI编码助手可以完全控制IDE的调试器。让你的AI助手自主调试代码——从设置断点到检查变量,再到逐步执行。
特性
调试会话管理
- 启动/停止会话 -在调试模式下启动任何运行配置
- 富裕状态 -在一次调用中获取全面的状态(变量、堆栈、源上下文)
- 多会话支持 -管理多个并发调试会话
断点管理
- 线路断点 -在任何有效位置设置断点
- 条件断点 -添加必须为真才能暂停的条件
- 追踪点 -在不暂停执行的情况下记录消息
执行控制
- 跨过/进入/退出 -逐行浏览代码
- 恢复和暂停 -控制执行流程
- 跑向终点线 -继续执行,直到出现特定行
计量检验
- 查看变量 -检查局部变量、参数和对象字段
- 修改值 -在调试过程中更改变量值
表达式求值
- 计算表达式 -在当前上下文中运行任意表达式
- 代码片段 -执行多行代码片段
堆栈和线程导航
- 堆栈跟踪 -查看包含源位置的完整调用堆栈
- 显示所选帧 -将上下文切换到任何堆栈帧
- 线程列表 -查看所有线程及其状态
同伴技能
- AI调试指南 -捆绑的同伴技能教会AI代理最佳的调试器工具使用
- 一键安装 -安装到
.claude/skills/或出口为.skill/.zip
为什么要使用这个插件?
与手动调试不同,此插件支持:
- 自主AI调试 -您的AI助手可以在没有人为干预的情况下调试代码
- 单次通话中的丰富上下文 -在一个请求中获取变量、堆栈和源代码
- 程序化断点控制 -使用复杂表达式设置条件断点
- 跨IDE兼容性 -适用于任何支持XDebugger的JetBrains IDE
- 22个综合工具 -通过MCP实现完全调试能力
- 可配置服务器 -具有可定制主机绑定的IDE特定端口
非常适合人工智能辅助开发工作流程,您希望助手自主调查错误、验证修复或探索代码行为。
目录
安装
使用IDE内置插件系统
设置/首选项 > 插件 > 市场 > 搜索“调试器MCP服务器” > 安装
使用JetBrains市场
首选 JetBrains市场 并通过单击安装 安装到。.. 按钮。
手动安装
下载 最新版本 并手动安装: 设置/首选项 > 插件 > ⚙️ > 从磁盘安装插件。..
快速开始
- 安装插件 并重新启动JetBrains IDE
- 打开项目 -MCP服务器在IDE特定端口上自动启动
- 查找您的IDE端口: 设置 > 工具 > 调试器MCP服务器 (每个IDE都有一个唯一的默认端口,例如IntelliJ IDEA的29190)
- 配置您的AI助手 使用服务器URL:
http://127.0.0.1:{PORT}/debugger-mcp/streamable-http - 使用工具窗口 (底部面板:“调试器MCP服务器”)用于复制配置或监视命令
使用“在编码代理上安装”按钮
配置AI助手的最简单方法:
- 打开“调试器MCP服务器”工具窗口(底部面板)
- 点击突出的 “在编码代理上安装” 工具栏右侧的按钮
- 出现一个包含三个部分的弹出窗口:
- 立即安装 -对于Claude Code CLI和Codex CLI:自动运行安装命令 - 复制配置 -对于其他客户端(Gemini CLI、Cursor等):将JSON配置复制到剪贴板 - 通用MCP配置 -任何MCP客户端的可流式HTTP或传统SSE配置
- 对于“复制配置”客户端,将配置粘贴到相应的配置文件中
工作流示例
告诉你的AI助手:
调试calculateTotal函数——在第42行设置断点,在调试模式下运行测试,并在暂停时显示变量值
或者对于更复杂的调试:
UserService中有一个错误。在第42行设置一个断点,在调试模式下运行测试,当它中断时,向我显示堆栈跟踪和所有局部变量
客户端配置
克劳德代码(CLI)
最简单的方法是使用 “在编码代理上安装” IDE工具窗口中的按钮——它使用IDE特定的服务器名称和端口生成正确的命令。
或者在终端中手动运行此命令(替换 -debugger 并使用IDE的值进行移植):
claude mcp add --transport http intellij-debugger http://127.0.0.1:29190/debugger-mcp/streamable-http --scope userIDE特定的服务器名称和默认端口:
| IDE | 服务器名称 | 默认端口 |
|---|---|---|
| IntelliJ IDEA | intellij-debugger | 29190 |
| 安卓工作室 | android-studio-debugger | 29191 |
| PyCharm | pycharm-debugger | 29192 |
| WebStorm | webstorm-debugger | 29193 |
| GoLand | goland-debugger | 29194 |
| 暴风雪 | phpstorm-debugger | 29195 |
| RubyMine | rubymine-debugger | 29196 |
| CLion | clion-debugger | 29197 |
| RustRover | rustrover-debugger | 29198 |
| 数据夹 | datagrip-debugger | 29199 |
| Aqua | aqua-debugger | 29200 |
| DataSpell | dataspell-debugger | 29201 |
| 骑手 | rider-debugger | 29202 |
选项:
--scope user-为所有项目添加全局--scope project-仅添加到当前项目
要删除: claude mcp remove intellij-debugger (使用IDE的名称)
Codex 命令行界面
最简单的方法是使用 “在编码代理上安装” IDE工具窗口中的按钮——它使用IDE特定的服务器名称和端口生成正确的命令。
或者在终端中手动运行此命令(替换 -debugger 并使用IDE的值进行移植):
codex mcp add intellij-debugger --url http://127.0.0.1:29190/debugger-mcp/streamable-http要删除: codex mcp remove intellij-debugger (使用IDE的名称)
双子星命令行工具
添加 ~/.gemini/settings.json:
{
"mcpServers": {
"intellij-debugger": {
"httpUrl": "http://127.0.0.1:29190/debugger-mcp/streamable-http"
}
}
}光标
添加 .cursor/mcp.json 在您的项目根目录中或 ~/.cursor/mcp.json 全球地:
{
"mcpServers": {
"intellij-debugger": {
"url": "http://127.0.0.1:29190/debugger-mcp/streamable-http"
}
}
}帆板运动
添加 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"intellij-debugger": {
"serverUrl": "http://127.0.0.1:29190/debugger-mcp/streamable-http"
}
}
}VS代码(通用MCP)
{
"mcp.servers": {
"intellij-debugger": {
"url": "http://127.0.0.1:29190/debugger-mcp/streamable-http"
}
}
}备注:替换 intellij-debugger 以及带有IDE服务器名称和默认端口的端口(见上表)。备注:端口可以在中更改 设置 > 工具 > 调试器MCP服务器.
可用工具
该插件提供 22个MCP工具 按类别组织:
运行配置工具
| 工具 | 说明 |
|---|---|
list_run_configurations | 列出项目中所有可用的运行配置 |
execute_run_configuration | 在调试或运行模式下执行运行配置 |
调试会话工具
| 工具 | 说明 |
|---|---|
list_debug_sessions | 列出所有活动的调试会话及其状态和元数据 |
start_debug_session | 为运行配置启动新的调试会话 |
stop_debug_session | 停止/终止调试会话 |
get_debug_session_status | 在一次调用中获取全面的状态(变量、堆栈、源代码) |
断点工具
| 工具 | 说明 |
|---|---|
list_breakpoints | 列出所有具有可选过滤功能的断点 |
set_breakpoint | 使用条件、日志消息、挂起策略设置行断点 |
remove_breakpoint | 按ID或位置删除断点 |
执行控制工具
| 工具 | 说明 |
|---|---|
resume_execution | 恢复暂停的执行 |
pause_execution | 暂停运行执行 |
step_over | 跳到下一行(不输入方法) |
step_into | 进入方法调用 |
step_out | 退出当前方法 |
run_to_line | 继续执行,直到出现特定行 |
堆栈和线程工具
| 工具 | 说明 |
|---|---|
get_stack_trace | 使用文件/行/方法信息获取当前调用堆栈 |
select_stack_frame | 将调试器上下文更改为其他堆栈帧 |
list_threads | 列出所有具有状态信息的线程 |
可变工具
| 工具 | 说明 |
|---|---|
get_variables | 获取当前堆栈帧中可见的所有变量 |
set_variable | 在调试过程中修改变量的值 |
导航工具
| 工具 | 说明 |
|---|---|
get_source_context | 获取当前执行点附近的源代码 |
评价工具
| 工具 | 说明 |
|---|---|
evaluate_expression | 在调试上下文中计算表达式或代码片段 |
备注:有关包含参数、示例和响应格式的详细工具文档,请参阅 用法.md.
多项目支持
当在单个IDE窗口中打开多个项目时,您必须指定要与哪个项目一起使用 project_path 参数:
{
"name": "set_breakpoint",
"arguments": {
"project_path": "/Users/dev/myproject",
"file_path": "/Users/dev/myproject/src/Main.java",
"line": 42
}
}如果 project_path 省略:
- 单个项目打开:该项目将自动使用
- 多个项目打开:返回可用项目列表时出错
工具窗口
该插件添加了一个“调试器MCP服务器”工具窗口(底部面板),显示:
- 服务器状态:带有服务器URL和端口的运行指示器
- 代理规则提示:为AI代理的配置复制一条规则,以选择调试器MCP工具
- 项目名称:当前正在进行的项目
- 命令历史记录:所有MCP工具调用的日志,包括:
- 时间戳 - 工具名称 - 状态(成功/错误/待定) - 参数和结果(可扩展) - 执行持续时间
- 过滤器:按工具名称、状态或搜索文本筛选历史记录
工具窗口操作
| 动作 | 描述 |
|---|---|
| 刷新 | 刷新服务器状态和命令历史记录 |
| 复制URL | 将MCP服务器URL复制到剪贴板 |
| 清除历史记录 | 清除命令历史记录 |
| 导出历史记录 | 将历史记录导出到JSON文件 |
| 更改端口 | 打开设置以配置服务器端口和主机 |
| 星/报告问题 | 链接到GitHub存储库 |
| 尝试IDE索引MCP服务器 | 链接到配套插件 |
| 给我买杯咖啡 | 支持开发者 |
| 获得陪伴技能 | 安装或导出配套的AI技能,以增强调试指导 |
| 在编码代理上安装 | 在AI助手上安装MCP服务器(右侧突出按钮) |
错误代码
JSON-RPC标准错误
| 代码 | 名称 | 描述 |
|---|---|---|
| -32700 | 分析错误 | 无法解析JSON-RPC请求 |
| -32600 | 无效请求 | JSON-RPC请求格式无效 |
| -32601 | 找不到方法 | 未知方法名称 |
| -32602 | 参数无效 | 参数无效或缺失 |
| -32603 | 内部错误 | 意外内部错误 |
自定义MCP错误
| 代码 | 名称 | 描述 |
|---|---|---|
| -32001 | 未找到会话 | 未找到调试会话 |
| -32002 | 找不到文件 | 指定的文件不存在 |
| -32003 | 未暂停 | 操作需要暂停会话 |
| -32004 | 断点错误 | 设置/删除断点失败 |
| -32005 | 计算错误 | 表达式计算失败 |
设置
在以下位置配置插件 设置 > 工具 > 调试器MCP服务器:
| 设置 | 默认值 | 说明 |
|---|---|---|
| 服务器主机 | 127.0.0.1 | MCP服务器的绑定地址。使用 127.0.0.1 仅适用于本地主机, 0.0.0.0 对于所有接口,或自定义IP |
| 服务器端口 | 特定于IDE | 每个IDE都有一个唯一的默认端口(例如,IntelliJ为29190,PyCharm为29192)。范围:1024-65535 |
| 最大历史记录大小 | 1000 | 历史记录中要保留的最大命令数 |
需求
- JetBrains集成开发环境 2025.1或更高版本(基于IntelliJ平台的任何IDE)
- 虚拟机 21或以后
- MCP协议 2025-03-26(流式HTTP,主要)和2024-11-05(SSE,传统)回退
支持的IDE
经过全面测试:IntelliJ IDEA、PyCharm、WebStorm、GoLand、RustRover、安卓工作室、PhpStorm 可能有效 (未经测试):RubyMine、CLion、DataChip、Aqua、DataPell、Rider
建筑
该插件在IDE特定端口上运行嵌入式Ktor CIO服务器,并支持 三个MCP传输:
流式HTTP传输(主,MCP 2025-03-26)
AI Assistant ──────► POST /debugger-mcp/streamable-http (JSON-RPC with Mcp-Session-Id header)
◄── JSON-RPC response (immediate HTTP response)
──────► DELETE /debugger-mcp/streamable-http (session termination)传统苏格兰和南方能源运输(MCP 2024-11-05)
AI Assistant ──────► GET /debugger-mcp/sse (establish SSE stream)
◄── event: endpoint (receive POST URL with sessionId)
──────► POST /debugger-mcp?sessionId=x (JSON-RPC requests)
◄── HTTP 202 Accepted
◄── event: message (JSON-RPC response via SSE)无状态HTTP(方便)
AI Assistant ──────► POST /debugger-mcp (JSON-RPC requests, no session)
◄── JSON-RPC response (immediate HTTP response)这种方法:
- 现代客户 -符合MCP 2025-03-26规范的流式HTTP会话管理
- 传统客户 -根据MCP 2024-11-05规范进行完整的SSE传输
- 简单的客户端 -无状态HTTP,无需会话即可快速请求/响应
- 每个IDE都有一个唯一的默认端口,以避免多个IDE同时运行时发生冲突
- 适用于任何MCP兼容客户端
- 支持基于浏览器的客户端的CORS
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行测试:
./gradlew test - 提交拉取请求
开发环境
# Build the plugin
./gradlew build
# Run IDE with plugin installed
./gradlew runIde
# Run tests
./gradlew test
# Run plugin verification
./gradlew runPluginVerifier许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
基于插件 IntelliJ平台插件模板.
