将JetBrains IDE的项目导航、重构、运行配置、调试器接入Claude Code等MCP客户端,减少AI因信息不足产生的误判和重复读取。
在大型代码库上使用 Claude Code,同时打开 JetBrains IDE?让 Agent 访问 IDE 早已掌握的信息。Explyt MCP 将 Claude Code、Codex、Cursor、OpenCode 和其他 MCP 客户端连接到 IDE 导航、重构、运行配置和调试器。Agent 可以直接从 IDE 获取项目信息,而无需通过额外的文件读取、grep 结果和终端日志来重建这些信息。这样可以减少 token 消耗、缩短工具链调用次数,并减少因错误符号或过时的运行时假设而行动的机会。
JetBrains 也提供了 MCP 服务器,但其公开的工具集不包括几项 Explyt 操作:原生的 Move 和 Delete、独立的 Find Usages 命令,以及 IntelliJ IDEA Ultimate 以外的调试器访问。Explyt MCP 将这些能力添加到你现有的外部 Agent 中。
以多模块 Java 项目中的重命名为例。Agent 必须识别目标声明、找到其引用、执行重构并验证结果。
公开的 AgentLens Java 编码 Agent 排行榜提供了基于相同模型的对比。使用 Opus 4.7,Explyt 记录的中间运行时间为 256 秒,生成了 15621 个 token;而 Claude Code 为 312 秒,生成了 16534 个 token。两种配置都达到了 81.2 的形式化验证分数。此对比评估的是完整的 Agent 配置,因此不能将 IDE 工具作为唯一原因隔离出来。但它确实展示了本文背后的实践模式:在此对比中,具备 IDE 原生操作的 Agent 以更少的时间和更少的生成 token 完成了公开的 Java 任务集。
从符号开始,而非字符串
假设任务是重命名 PaymentService.process。对 process 进行文本搜索会返回注释、配置值、生成的 文件,以及具有相同名称的不相关方法。Agent 可以对这些匹配结果进行排序,但排序无法确定任务指的是哪个声明。
JetBrains IDE 拥有索引和程序结构接口(PSI)。通过访问这些服务,Agent 可以将 PaymentService.process 识别为代码符号,并检查其所在类、模块、类型信息以及在层级中的位置。
当多个模块定义了 process 方法时,文本搜索返回候选结果;而符号解析可以识别每个引用指向的声明。
跟踪解析后的引用
解析 PaymentService.process 后,Agent 需要查看依赖它的内容。直接调用和测试引用可能跨越多个模块。接口声明或重写可能会进一步扩大变更范围。
IDE 中的 Find Usages 跟踪的是解析后的引用,而非收集标识符的每个出现。这为 Agent 提供了更好的基础来估计重命名的影响范围。

静态分析仍有边界。反射、基于字符串的查找、生成的代码、模板、配置文件和外部系统可能引用旧名称,但不会创建 IDE 可以解析的引用。结果还取决于完成的索引以及语言或框架支持。
干净的 Find Usages 结果仅意味着当前 IDE 项目模型中不再有解析后的引用;运行时查找可能仍在使用旧名称。
让 IDE 执行重构
一旦了解影响范围,Agent 应该为解析后的符号调用原生的 JetBrains 重构操作。Explyt 支持三种此类操作:Rename、Move 和 Delete。

Rename 更新对所选代码符号的引用,并可包括 IDE 识别的相关元素。通过重构引擎移动类或文件可以更新其包、导入和解析后的引用。在 Delete 删除实体之前,IDE 会检查其用法,以便 Agent 可以看到仍依赖它的内容。
在应用任何这些操作之前,Explyt 可以显示受影响的元素、文件、引用、相关变更以及 IDE 报告的冲突。对于 PaymentService.process,开发者应该能够检查该范围,并在操作影响到意外模块或遗漏他们已知依赖项时拒绝该操作。
Rename 之后,diff 应该包含与所选声明关联的编辑,而非替换每个 process 字符串。同样检查 Move 和 Delete 结果:反射、生成的代码、配置引用、索引状态和语言支持都可能限制 IDE 的检测范围。
使用项目配置进行编译
重命名可能通过重构引擎但仍然破坏构建。生成的源、模块配置或框架处理器可能只在编译期间暴露错误。
Agent 应该使用项目的构建或运行配置,而不是凭空构造一个近似的 shell 命令。其报告必须识别所选配置、模块和每个编译器错误的源位置;否则,"构建通过"难以评估。
成功的构建并不能证明重命名后的方法仍然实现了所需的行为。
运行测试并检查 IDE 问题
Explyt 可以与 JetBrains 运行配置配合使用,而无需从终端会话重建测试命令。对于 PaymentService.process 重命名,Agent 可以在 IDE 中启动相关测试配置,并在项目上下文中接收实际结果。报告应命名配置、执行的测试、失败和跳过的检查。
内置的 Explyt Agent 还可以调用 IDE 检查。它们识别未解析的符号、可空性问题、不可达代码、API 误用和框架特定问题,并为每个发现提供源位置。

通过的测试仅覆盖编码在这些测试中的路径和需求。
如果变更涉及运行时状态,Explyt 可以继续通过 JetBrains 调试器进行:启动现有配置、在断点处停止,并检查调用栈和变量。这是一个带有明确假设的独立实验,不是编译和针对性测试的替代品。

内置 Explyt Agent 还是外部 MCP 客户端?
内置 Explyt Agent 在其自己的动作循环中选择并排序 IDE 操作。Explyt MCP 向外部客户端暴露已启用的工具组,外部客户端保留其模型和对话上下文,并决定何时调用每个工具。检查 MCP 日志、选定的运行配置、重构预览和最终 diff,以查看外部 Agent 实际使用了什么。
JetBrains MCP 与 Explyt MCP 对比
JetBrains 文档记录了 get_symbol_info、search_symbol、rename_refactoring、build_project、execute_run_configuration 和 get_file_problems。Explyt MCP 添加了:
Move 和 Delete:与 Rename 并列的原生效成 IDE 重构。
Find Usages:所选符号的解析后引用。
更广泛的调试器可用性:支持 JetBrains IDE 的调试器工具;JetBrains 为 IntelliJ IDEA Ultimate 记录了其 MCP 调试器命令。
Explyt MCP 免费提供。你可以继续使用 Claude Code 或其他 MCP 客户端,将其连接到打开的 JetBrains 项目,并测试这些操作,而无需购买 Explyt 订阅。
用你已知的任务尝试
给 Agent 一个你已经理解的重构任务,然后观察它如何工作。
它是否花费数分钟组装 sed 命令、脚本和文本替换,还是直接调用 IDE 重构?
它是否解析符号、获取其用法,并在更改代码之前预览受影响的文件和冲突?
它是否运行配置的构建或测试任务并返回带源链接的错误,还是凭空构造一个 shell 命令让你搜索其日志?
如果失败取决于运行时状态,它能否设置断点并检查实际的调用栈和变量?
你能否在运行后检查 MCP 调用、参数、结果和失败?
记录耗时、生成的 token、触及的文件、手动修正和最终验证结果。将它们与上面的 AgentLens 数据进行比较,然后判断这种差异是否适用于你的代码库和 IDE。
Explyt 发布说明:Explyt 5.17: IDE 重构和面向外部 Agent 的 MCP 服务器。
Explyt 文档:Explyt 5.17: IDE 重构和面向外部 Agent 的 MCP 服务器。
Explyt 对比:Cursor Just Entered JetBrains IDEs. Can It Finally See What the IDE Sees?
AgentLens:Java 编码 Agent 排行榜。
JetBrains 文档:MCP Server。