IDE Index MCP Server 是一个 JetBrains IDE 插件,它暴露一个 MCP(Model Context Protocol)服务器,使 Claude、Codex、Cursor、Windsurf 等 AI 编程助手能够利用 IDE 强大的索引和重构能力。
用途
让 AI 编程助手通过 MCP 访问 IDE 的代码智能功能,获得真正的语义理解、跨项目引用解析、多语言支持和安全重构操作,适用于对准确性和安全性有要求的 AI 辅助开发工作流。
主要能力
通用工具(所有支持的 JetBrains IDE)
- Find References:定位项目中任意符号的所有用法
- Go to Definition:跳转到符号声明
- Code Diagnostics:访问错误、警告和快速修复
- Index Status:检查代码智能是否就绪
- Sync Files:外部文件更改后强制同步 VFS/PSI 缓存
- Reload Project:依赖或构建文件更改后刷新关联的 Maven/Gradle 构建模型(默认禁用)
- Import Modules:导入外部 Maven 项目目录作为模块,实现跨项目代码智能与重构(默认禁用)
- Open Workspace:扫描根目录中的 Maven 项目,或提供 Maven 项目路径列表,在一个 IntelliJ 窗口中打开并实现完整跨项目代码智能(默认禁用)
- Build Project:触发 IDE 构建并输出结构化的错误/警告(默认禁用)
- Find Class:按名称快速搜索类/接口,支持驼峰匹配
- Find File:使用 IDE 文件索引按名称快速搜索文件
- Symbol Search:按名称查找代码符号,匹配 IntelliJ 的 Go to Symbol(默认禁用)
- Search Text:使用 IntelliJ 的 Find in Files 进行文本搜索(子串和正则匹配)
- Read File:按路径或限定名读取文件内容,包括库源码(默认禁用)
- Open File:在编辑器中打开文件并可选择导航(默认禁用)
- Get Active File:获取当前活动编辑器文件及光标位置(默认禁用)
扩展工具(语言感知)
根据已安装的语言插件激活:
- Type Hierarchy:探索类继承链
- Call Hierarchy:追踪方法/函数调用关系
- Find Implementations:发现接口/抽象实现
- Find Super Methods:导航方法重写层次
- File Structure:查看类似 IDE Structure 视图的层级文件结构,包括 PHP Structure View 树和 Markdown 标题大纲,显示每个元素的起始和结束行(默认禁用)
重构工具
- Rename Refactoring:安全重命名并自动重命名相关元素(getter/setter、重写方法),适用于所有语言,完全无头
- Move File:在支持的情况下移动文件并更新引用和包
- Reformat Code:按项目代码风格重新格式化并优化导入(默认禁用)
- Optimize Imports:移除未使用的导入并整理导入,不做重新格式化(默认禁用)
- Edit Member:用新内容替换整个成员声明(签名+主体)(Java/Kotlin,默认禁用)
- Insert Member:在结构位置插入新成员(Java/Kotlin,默认禁用)
- Replace Member:仅替换方法体或字段初始化器,保留签名(Java/Kotlin,默认禁用)
- Safe Delete:检查使用情况后删除代码(仅 Java/Kotlin)
- Java to Kotlin Conversion:使用 IntelliJ 内置转换器将 Java 转为 Kotlin(仅 Java)
项目生命周期管理
同时处理多个项目时,空闲项目会占用内存并保持编辑器打开。生命周期管理根据窗口焦点和 MCP 活动使项目休眠和唤醒,默认禁用,需在 Settings → Tools → Index MCP Server 中开启。自动休眠/唤醒状态为 active → background(开启省电)→ dormant(关闭编辑器标签页,释放 PSI 缓存)→ closed(完全卸载),下一次 MCP 调用时自动透明重开。 相关工具:
- ide_project_status:所有打开和受管理项目的组合快照
- ide_set_project_mode / ide_get_project_modes:显式模式控制
- ide_release_project:将项目从生命周期管理中移出
- ide_lifecycle_log:带触发原因的时间戳事件日志,用于诊断意外行为
使用方式
安装
- 通过 IDE 内置插件系统:Settings/Preferences > Plugins > Marketplace > 搜索 "IDE Index MCP Server" > Install
- 通过 JetBrains Marketplace:点击 Install to ... 按钮安装
- 手动安装:下载最新版本,Settings/Preferences > Plugins > ⚙️ > Install plugin from disk... 安装后重启 IDE,打开项目,MCP 服务器自动启动,并采用 IDE 特定默认值:IntelliJ IDEA 为 intellij-index 端口 29170,PyCharm 为 pycharm-index 端口 29172,WebStorm 为 webstorm-index 端口 29173。
配置 AI 助手
使用工具窗口中的 "Install on Coding Agents" 按钮最简便,也可手动配置。工具窗口位于底部面板 "Index MCP Server",可复制配置或监控命令。 "Install on Coding Agents" 按钮:点击后弹出两个区域——Install Now(用于 Claude Code CLI 和 Codex CLI,自动运行安装命令)和 Copy Configuration(用于其他客户端,复制 JSON 配置到剪贴板)。 客户端配置示例:
- Claude Code CLI:使用按钮或运行命令(需调整名称和端口),--scope user 为全局,--scope project 为仅当前项目;移除命令 claude mcp remove <server-name>。
- Codex CLI:移除命令 codex mcp remove <server-name>。
- Cursor:将配置添加到项目根目录的 .cursor/mcp.json 或全局的 ~/.cursor/mcp.json。
- Windsurf:将配置添加到 ~/.codeium/windsurf/mcp_config.json。
- VS Code(Generic MCP):注意替换服务器名称和端口。 每个 JetBrains IDE 有唯一的默认端口和服务器名称,可同时运行多个 IDE 而不冲突。
支持情况
- 已完全测试:IntelliJ IDEA、PyCharm、WebStorm、GoLand、RustRover、Android Studio、PhpStorm
- 可能有效(未测试):RubyMine、CLion、DataGrip
- 不支持:Rider(其 ReSharper 后端不暴露该插件依赖的 IntelliJ PSI API) 多语言支持:Java & Kotlin(IntelliJ IDEA、Android Studio)、Python(PyCharm 所有版本、带 Python 插件的 IntelliJ,包括基于符号的定义/引用查找)、JavaScript & TypeScript(WebStorm、IntelliJ Ultimate、PhpStorm)、Go(GoLand、带 Go 插件的 IntelliJ IDEA Ultimate)、PHP(PhpStorm、带 PHP 插件的 IntelliJ Ultimate)、Rust(RustRover、带 Rust 插件的 IntelliJ IDEA Ultimate、CLion)、Scala(带 Scala 插件的 IntelliJ IDEA,Scala 2 源码)、Markdown(在捆绑 Markdown 插件的 IDE 中提供标题大纲)。
限制
- 服务器绑定到 127.0.0.1 且无身份验证,任何本地进程都可以使用你的 IDE 文件访问权限调用其工具。在单用户开发机上,这与 shell 已有的信任边界相同;在共享机器上,启用写入工具前值得权衡。
- 部分工具默认禁用,需在 Settings > Tools > Index MCP Server > Exposed Tools 中启用。
- Go 和 Rust 由于语言语义不暴露 ide_find_super_methods。
- 应用重构会修改源文件,支持通过 Ctrl/Cmd+Z 撤销;dryRun: true 预览不会修改文件或创建撤销命令。
- 符号句柄与导航:类、符号、引用、实现和父方法搜索返回不透明 symbolId 句柄;缓存搜索页在 PSI 编辑后仍标记为 stale: true;已删除的声明以及来自其他项目或服务器会话的句柄会被拒绝。
- ide_file_structure 默认保留旧结构响应;使用 includeNodes=true 获取结构化声明,includeSymbolIds=true 获取精确句柄(隐含 includeNodes)。句柄分配可选,每次响应上限 100,可通过 maxSymbolIds(1–100)降低;大响应会报告 symbolIdsTruncated 和 symbolIdsOmitted。
- 层级分页:不提供 maxNodes 或 cursor 时,调用/类型层次保留嵌套树和旧限制;显式分页返回有界广度优先页。
- 第三方集成 opencode-jetbrains-index 由第三方维护,相关支持请使用其自己的问题追踪器。
- 其他细节(如完整工具列表、各 IDE 默认端口表等)在资料中未完整展开,暂未提供。