IDE索引MCP服务器
](https://plugins.jetbrains.com/plugin/29174-ide-index-mcp-server) ](https://plugins.jetbrains.com/plugin/29174-ide-index-mcp-server)
一个JetBrains IDE插件,它公开了一个 MCP(模型上下文协议)服务器,使Claude、Codex、Cursor和Windsurf等AI编码助手能够利用IDE强大的索引和重构功能。
经过全面测试:IntelliJ IDEA、PyCharm、WebStorm、GoLand、RustRover、安卓工作室、PhpStorm 可能有效 (未经测试):RubyMine、CLion、DataGraph

IDE索引MCP服务器 为AI编码助手提供通过模型上下文协议(MCP)访问IDE强大的代码智能功能的权限。
特性
多语言支持 高级工具基于可用插件跨多种语言工作:
- Java和Kotlin -IntelliJ IDEA,安卓工作室
- python -PyCharm(所有版本),带Python插件的IntelliJ
- JavaScript和TypeScript -WebStorm、IntelliJ Ultimate、PhpStorm
- 去 -GoLand,IntelliJ IDEA终极版,带Go插件
- PHP -PhpStorm、IntelliJ Ultimate和PHP插件
- 锈 -RustRover,IntelliJ IDEA旗舰版,带Rust插件,CLion
- 标记语言 -附带Markdown插件的IDE文件结构中的标题大纲
通用工具(所有支持的JetBrains IDE)
- 查找引用 -查找项目中任何符号的所有用法
- 转到定义 -导航到符号声明
- 代码诊断 -访问错误、警告和快速修复
- 索引状态 -检查代码智能是否就绪
- 同步文件 -外部文件更改后强制同步VFS/PSI缓存
- 建设项目 -使用结构化错误/警告输出触发IDE构建(默认禁用)
- 查找类 -通过camelCase匹配按名称快速搜索类/接口
- 查找文件 -使用IDE的文件索引按名称快速搜索文件
- 符号搜索 -使用IntelliJ Go to Symbol matching按名称查找代码符号(默认禁用)
- 搜索文本 -使用IDE预构建的单词索引进行文本搜索
- 读取文件 -按路径或限定名读取文件内容,包括库源(默认禁用)
- 打开文件 -在编辑器中使用可选导航打开文件(默认情况下禁用)
- 获取活动文件 -使用光标位置获取当前活动的编辑器文件(默认情况下禁用)
扩展工具(语言感知) 这些工具根据安装的语言插件激活:
- 类型层次 -探索类继承链
- 调用层次结构 -跟踪方法/函数调用关系
- 查找实现 -发现接口/抽象实现
- 寻找超级方法 -导航方法覆盖层次结构
- 文件结构 -查看分层文件结构,如IDE的结构视图,包括Markdown标题轮廓(默认禁用)
重构工具
- 更名重构 -使用自动相关元素重命名(getter/setter、重写方法)进行安全重命名-适用于所有语言,完全无头
- 重新格式化代码 -使用带有导入优化的项目代码样式重新格式化(默认禁用)
- 安全删除 -使用用法检查删除代码(仅限Java/Kotlin)
- Java到Kotlin的转换 -使用Intellij的内置转换器将Java转换为Kotlin(仅限Java)
为什么要使用这个插件?
与简单的基于文本的代码分析不同,此插件允许AI助手访问:
- 真正的语义理解 通过IDE的AST和索引
- 跨项目参考解决方案 跨文件和模块工作
- 多语言支持 -自动检测并使用特定语言的处理程序
- 安全的重构操作 具有自动引用更新和撤消支持
非常适合准确性和安全性很重要的人工智能辅助开发工作流程。
目录
安装
使用IDE内置插件系统
设置/首选项 > 插件 > 市场 > 搜索“IDE索引MCP服务器” > 安装
使用JetBrains市场
首选 JetBrains 应用市场 并通过单击安装 安装到。.. 按钮。
手动安装
下载 最新版本 并手动安装: 设置/首选项 > 插件 > ⚙️ > 从磁盘安装插件。..
快速开始
- 安装插件 并重新启动JetBrains IDE
- 打开项目 -MCP服务器以IDE特定的默认值自动启动:
- IntelliJ理念: intellij-index 在港口 29170 - PyCharm: pycharm-index 在港口 29172 - WebStorm: webstorm-index 在港口 29173 - 其他IDE:请参阅 IDE特定默认值
- 配置您的AI助手 使用“在编码代理上安装”按钮(最简单)或手动
- 使用工具窗口 (底部面板:“索引MCP服务器”)以复制配置或监视命令
- 更改端口 (可选):点击工具栏中的“更改端口,禁用工具”或转到 设置 > 工具 > 索引MCP服务器
使用“在编码代理上安装”按钮
配置AI助手的最简单方法:
- 打开“索引MCP服务器”工具窗口(底部面板)
- 点击突出的 “在编码代理上安装” 工具栏右侧的按钮
- 出现一个包含两个部分的弹出窗口:
- 立即安装 -对于Claude Code CLI和Codex CLI:自动运行安装命令 - 复制配置 -对于其他客户端:将JSON配置复制到剪贴板
- 对于“复制配置”客户端,将配置粘贴到相应的配置文件中
社区融合
- opencode喷气大脑指数 -使用此插件的OpenCode的第三方集成
免责声明:此存储库不是由我维护的。请使用它自己的问题跟踪器来解决特定于集成的问题和支持。
客户端配置
克劳德代码(CLI)
使用工具窗口中的“在编码代理上安装”按钮,或运行此命令(调整IDE的名称和端口):
# IntelliJ IDEA
claude mcp add --transport http --scope user intellij-index http://127.0.0.1:29170/index-mcp/streamable-http
# PyCharm
claude mcp add --transport http --scope user pycharm-index http://127.0.0.1:29172/index-mcp/streamable-http
# WebStorm
claude mcp add --transport http --scope user webstorm-index http://127.0.0.1:29173/index-mcp/streamable-http选项:
--scope user-为所有项目添加全局--scope project-仅添加到当前项目
要删除: claude mcp remove (例如。, claude mcp remove intellij-index)
Codex CLI
使用工具窗口中的“在编码代理上安装”按钮,或运行此命令(调整IDE的名称和端口):
# IntelliJ IDEA
codex mcp add intellij-index --url http://127.0.0.1:29170/index-mcp/streamable-http
# PyCharm
codex mcp add pycharm-index --url http://127.0.0.1:29172/index-mcp/streamable-http
# WebStorm
codex mcp add webstorm-index --url http://127.0.0.1:29173/index-mcp/streamable-http要删除: codex mcp remove (例如。, codex mcp remove intellij-index)
光标
添加 .cursor/mcp.json 在您的项目根目录中或 ~/.cursor/mcp.json 全局(调整IDE的名称和端口):
{
"mcpServers": {
"intellij-index": {
"url": "http://127.0.0.1:29170/index-mcp/streamable-http"
}
}
}帆板运动
添加 ~/.codeium/windsurf/mcp_config.json (调整IDE的名称和端口):
{
"mcpServers": {
"intellij-index": {
"serverUrl": "http://127.0.0.1:29170/index-mcp/streamable-http"
}
}
}VS代码(通用MCP)
{
"mcp.servers": {
"intellij-index": {
"url": "http://127.0.0.1:29170/index-mcp/streamable-http"
}
}
}备注:将服务器名称和端口替换为IDE的默认值。看 IDE特定默认值 在......下面
IDE特定默认值
每个JetBrains IDE都有一个唯一的默认端口和服务器名称,以允许同时运行多个IDE而不会发生冲突:
| IDE | 服务器名称 | 默认端口 |
|---|---|---|
| IntelliJ IDEA | intellij-index | 29170 |
| 安卓工作室 | android-studio-index | 29171 |
| PyCharm | pycharm-index | 29172 |
| WebStorm | webstorm-index | 29173 |
| GoLand | goland-index | 29174 |
| 暴风雪 | phpstorm-index | 29175 |
| RubyMine | rubymine-index | 29176 |
| CLion | clion-index | 29177 |
| RustRover | rustrover-index | 29178 |
| 数据夹 | datagrip-index | 29179 |
小贴士:使用工具窗口中的“在编码代理上安装”按钮-它会自动为您的IDE使用正确的服务器名称和端口。
可用工具
该插件提供 21个MCP工具 按可用性组织。标记的工具 *(默认情况下禁用)* 可以在中启用 设置 > 工具 > 索引MCP服务器.
通用工具
这些工具可以在所有支持的JetBrains IDE中工作。
| 工具 | 说明 |
|---|---|
ide_find_references | 查找整个项目中对符号的所有引用 |
ide_find_definition | 查找符号的定义/声明位置 |
ide_find_class | 使用camelCase/substring/通配符匹配按名称搜索类/接口 |
ide_find_file | 使用IDE的文件索引按名称搜索文件 |
ide_find_symbol | 使用IntelliJ按名称搜索符号(类、方法、字段、函数)转到符号匹配 *(默认情况下禁用)* |
ide_search_text | 使用IDE预构建的带有上下文过滤的单词索引进行文本搜索 |
ide_diagnostics | 使用打开文件的新编辑器诊断或关闭文件的公共批处理诊断以及可选的构建/测试结果分析文件问题;意图是最好的努力 |
ide_index_status | 检查IDE是处于哑模式还是智能模式 |
ide_sync_files | 强制将IDE的虚拟文件系统和PSI缓存与外部文件更改同步 |
ide_build_project | 使用带有结构化错误的IDE构建系统(JPS、Gradle、Maven)构建项目 *(默认情况下禁用)* |
ide_read_file | 按路径或限定名读取文件内容,包括库/jar源 *(默认情况下禁用)* |
ide_get_active_file | 使用光标位置获取编辑器中当前活动的文件 *(默认情况下禁用)* |
ide_open_file | 使用可选的行/列导航在编辑器中打开文件 *(默认情况下禁用)* |
ide_refactor_rename | 重命名符号并更新整个项目(所有语言)中的所有引用 |
ide_move_file | 将文件移动到新目录,当IDE提供语义移动后端时,应用语言感知引用/包更新 |
ide_reformat_code | 使用导入优化的项目代码样式重新格式化代码 *(默认情况下禁用)* |
扩展工具(语言感知)
这些工具根据可用的语言插件激活:
| 工具 | 描述 | 语言 |
|---|---|---|
ide_type_hierarchy | 获取完整的类型层次结构(超类型和子类型) | Java、Kotlin、Python、JS/TS、Go、PHP、Rust |
ide_call_hierarchy | 分析方法调用关系(调用者或被调用者) | Java、Kotlin、Python、JS/TS、Go、PHP、Rust |
ide_find_implementations | 查找接口或抽象方法的所有实现 | Java、Kotlin、Python、JS/TS、PHP、Rust |
ide_find_super_methods | 查找方法覆盖/实现的方法的完整继承层次结构 | Java、Kotlin、Python、JS/TS、PHP |
ide_file_structure | 获取分层文件结构(类似于IDE的结构视图) *(默认情况下禁用)* | Java、Kotlin、Python、JS/TS、Markdown |
Java专用重构工具
| 工具 | 说明 |
|---|---|
ide_convert_java_to_kotlin | 使用IntelliJ的内置转换器将Java文件转换为Kotlin *(默认情况下禁用,需要Java+Kotlin插件)* |
ide_refactor_safe_delete | 安全删除一个元素,先检查用法(仅限Java/Kotlin) |
备注:重构工具修改源文件。所有更改都支持通过以下方式撤消 Ctrl/Cmd+Z.
IDE工具可用性
完全测试:
| IDE | 通用 | 导航 | 重构 |
|---|---|---|---|
| IntelliJ IDEA | ✓ 14 工具 | ✓ 6 工具 | ✓ 重命名+重新格式化+安全删除+Java→Kotlin |
| 安卓工作室 | ✓ 14 工具 | ✓ 6 工具 | ✓ 重命名+重新格式化+安全删除+Java→Kotlin |
| PyCharm | ✓ 14 工具 | ✓ 6 工具 | ✓ 重命名+重新格式化 |
| WebStorm | ✓ 14 工具 | ✓ 6 工具 | ✓ 重命名+重新格式化 |
| GoLand | ✓ 14 工具 | ✓ 4 工具 | ✓ 重命名+重新格式化 |
| RustRover | ✓ 14 工具 | ✓ 5 工具 | ✓ 重命名+重新格式化 |
| 暴风雪 | ✓ 14 工具 | ✓ 6 工具 | ✓ 重命名+重新格式化 |
可能工作(未测试):
| IDE | 通用 | 导航 | 重构 |
|---|---|---|---|
| RubyMine | ✓ 14 工具 | ✓ 2 Markdown工具 | ✓ 重命名+重新格式化 |
| CLion | ✓ 14 工具 | ✓ 2 Markdown工具 | ✓ 重命名+重新格式化 |
| DataKip | ✓ 14 工具 | ✓ 2 Markdown工具 | ✓ 重命名+重新格式化 |
备注:当存在语言插件时,导航工具会激活。启用捆绑的Markdown插件后,Markdown添加了标题搜索和文件结构支持。Go和Rust不会暴露ide_find_super_methods由于语言语义的原因,Go没有公开ide_find_implementations重命名和重新格式化工具适用于所有语言。ide_convert_java_to_kotlin仅在IntelliJ IDEA和Android Studio中可用,需要Java和Kotlin插件,默认情况下禁用。
有关包含参数和示例的详细工具文档,请参阅 用法.md.
多项目支持
当在单个IDE窗口中打开多个项目时,您必须指定要与哪个项目一起使用 project_path 参数:
{
"name": "ide_find_references",
"arguments": {
"project_path": "/Users/dev/myproject",
"file": "src/Main.kt",
"line": 10,
"column": 5
}
}如果 project_path 省略:
- 单个项目打开:该项目将自动使用
- 多个项目打开:返回可用项目列表时出错
工作区项目
该插件支持 工作空间项目 其中单个IDE窗口包含多个子项目作为具有单独内容根的模块。这 project_path 参数接受:
- 这 工作区根目录 路径
- A. 子项目路径 (模块内容根)
- A. 子目录 任何开放项目
当发生错误时,响应将返回 available_projects默认情况下,这包括工作空间子项目,因此AI代理可以发现有效的模块内容根。如果你想要更小的错误载荷,请切换 错误响应中的项目列表 到 紧凑 在插件设置中,只返回顶级项目根。
工具窗口
该插件添加了一个“索引MCP服务器”工具窗口(底部面板),显示:
- 服务器状态:带有服务器URL和端口的运行指示器
- 项目名称:当前正在进行的项目
- 命令历史记录:所有MCP工具调用的日志,包括:
- 时间戳 - 工具名称 - 状态(成功/错误/待定) - 参数和结果(可扩展) - 执行持续时间
工具窗口操作
| 动作 | 描述 |
|---|---|
| 刷新 | 刷新服务器状态和命令历史记录 |
| 复制URL | 将MCP服务器URL复制到剪贴板 |
| 清除历史记录 | 清除命令历史记录 |
| 导出历史记录 | 将历史记录导出为JSON或CSV文件 |
| 在编码代理上安装 | 在AI助手上安装MCP服务器(右侧突出按钮) |
错误代码
JSON-RPC标准错误
| 代码 | 名称 | 描述 |
|---|---|---|
| -32700 | 分析错误 | 无法解析JSON-RPC请求 |
| -32600 | 无效请求 | JSON-RPC请求格式无效 |
| -32601 | 找不到方法 | 未知方法名称 |
| -32602 | 参数无效 | 参数无效或缺失 |
| -32603 | 内部错误 | 意外内部错误 |
自定义MCP错误
| 代码 | 名称 | 描述 |
|---|---|---|
| -32001 | 索引未就绪 | IDE处于哑模式(正在进行索引) |
| -32002 | 找不到文件 | 指定的文件不存在 |
| -32003 | 未找到符号 | 在指定位置未找到符号 |
| -32004 | 重构冲突 | 重构无法完成(例如,名称冲突) |
设置
在以下位置配置插件 设置 > 工具 > 索引MCP服务器:
| 设置 | 默认值 | 说明 |
|---|---|---|
| 服务器端口 | IDE特定 | MCP服务器端口(范围:1024-65535,更改时自动重启)。看 IDE特定默认值 |
| 服务器主机 | 127.0.0.1 | 倾听主持人。改为 0.0.0.0 用于远程/WSL访问 |
| 最大历史记录大小 | 100 | 历史记录中要保留的最大命令数 |
| 错误响应中的项目列表 | 展开 | 控件 available_projects 无效/缺失的详细信息 project_path 错误。 Expanded 包括工作空间子项目; Compact 仅返回顶级项目根 |
| 同步外部更改 | false | 操作前同步外部文件更改(警告:对性能有重大影响) |
| 禁用工具 | 7个工具 | 每个工具启用/禁用切换。默认情况下,某些工具被禁用以保持工具列表的焦点 |
需求
- JetBrains 集成开发环境 2025.1或更高版本(基于IntelliJ平台的任何IDE)
- Java虚拟机 21或以后
- MCP协议 2025-03-26(主要可流式HTTP),与2024-11-05传统SSE兼容
支持的IDE
完全测试:
- IntelliJ IDEA(社区/终极)
- 安卓工作室
- PyCharm(社区/专业)
- WebStorm
- GoLand
- RustRover
- 暴风雪
可能工作(未测试):
- RubyMine
- CLion
- 数据夹
该插件使用标准的IntelliJ平台API,应适用于任何基于IntelliJ的IDE,但仅在上面列出的IDE上进行了测试。
建筑
该插件运行一个 定制嵌入式Ktor CIO HTTP服务器 和 双MCP传输:
流式HTTP传输(主,MCP 2025-03-26)
AI Assistant ──────► POST /index-mcp/streamable-http (initialize or request)
◄── JSON-RPC response or HTTP 202 Accepted
──────► POST /index-mcp/streamable-http (follow-up requests/notifications)
◄── JSON-RPC response or HTTP 202 Accepted该插件使用无状态的Streamable HTTP作为主MCP传输。它没有 问题 Mcp-Session-Id headers,不需要会话恢复,也不需要 实现或宣传身份验证功能。
传统SSE传输(MCP检查员、老客户)
AI Assistant ──────► GET /index-mcp/sse (establish SSE stream)
◄── event: endpoint (receive POST URL with sessionId)
──────► POST /index-mcp?sessionId=x (JSON-RPC requests)
◄── HTTP 202 Accepted
◄── event: message (JSON-RPC response via SSE)这种双重方法:
- 主MCP传输 -每个MCP可流式传输HTTP
2025-03-26 - MCP检查器兼容 -每个MCP的传统SSE传输
2024-11-05 - 可配置端口 -IDE特定的默认端口,可在设置中更改
- 适用于任何MCP兼容客户端
- 跨所有打开的项目的单个服务器实例
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行测试:
./gradlew test - 提交拉取请求
开发设置
# Build the plugin
./gradlew build
# Run IDE with plugin installed
./gradlew runIde
# Run tests
./gradlew test
# Run plugin verification
./gradlew runPluginVerifier许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
基于插件 IntelliJ平台插件模板.
