RubyMine 2025.3 Help

MCP 服务器

2025.2 版本开始,RubyMine 默认集成了 MCP server ,允许 Claude Desktop、Cursor、Codex、VS Code 等外部客户端访问 IDE 提供的工具。 这使用户能够在不离开其首选应用程序的情况下控制并与 JetBrains IDE 交互。

外部客户端设置

对于 Claude CodeClaude DesktopCursorVS CodeCodexWindsurf 等外部客户端,可自动完成配置:

  1. 在主菜单中,进入 设置 | 工具 | MCP Server.

  2. 点击 启用 MCP Server

  3. 客户端自动配置 部分中,为希望与 MCP server 一同使用的每个客户端点击 自动配置。 这会自动更新其 JSON 配置。

    MCP 服务器设置
  4. 请重新启动客户端以使配置生效。

如果想从其他客户端连接到 MCP server,您需要进行手动配置:

  1. 手动客户端配置 部分中,根据连接类型点击 复制 SSE 配置复制 Stdio 配置

    MCP 服务器手动配置
  2. 将复制的配置粘贴到客户端的设置或配置文件中。

  3. 请重新启动客户端以使配置生效。

执行操作时无需确认

MCP server 允许已连接的外部客户端在不提示用户确认的情况下执行终端命令或运行配置。

要启用此模式:

  1. 在主菜单中,进入 设置 | 工具 | MCP Server.

  2. 命令执行 部分,启用 运行 shell 命令或运行配置,无需确认(勇敢模式) 设置。

  3. 点击 Apply

支持的工具

以下是 MCP server 提供的工具列表:

执行特定的运行配置

在当前项目中运行特定的运行配置,并等待其在指定超时时间内完成。 使用此工具执行通过 获取运行配置 工具检索到的运行配置。

返回执行结果,包括退出代码、输出和成功状态。

参数:

  • configurationName :要执行的运行配置名称。

  • timeout :超时,单位为毫秒。

  • maxLinesCount :要返回的最大行数。

  • truncateMode :文本截断方式:从开头、中间、结尾截断,或不截断。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取运行配置

返回当前项目的运行配置列表。 运行配置定义了如何从源代码运行应用程序、任务或测试套件。

该工具还会在可用情况下提供其他信息,如命令行、工作目录和环境变量。

使用此工具查询当前项目中可用的运行配置列表。

参数:

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取文件问题

使用 IntelliJ 检查分析指定文件中的错误和警告。 使用此工具识别特定文件中的编码问题、语法错误及其他问题。

返回问题列表,包括严重程度、描述和位置信息。

参数:

  • filePath :相对于项目根目录的路径。

  • errorsOnly :是仅包含错误,还是同时包含错误和警告。

  • timeout :超时,单位为毫秒。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取项目依赖

返回项目中定义的所有依赖项列表。 提供有关库名称的结构化信息。

参数:

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取项目模块

返回项目中所有模块及其类型的列表。 提供有关每个模块的结构化信息,包括其名称和类型。

参数:

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

创建新文件

在项目目录中指定路径下创建一个新文件。 可选地将提供的文本写入文件中。

参数:

  • pathInProject :要创建文件的路径,相对于项目根目录。

  • text (可选):要写入新文件的内容。

  • overwrite :是否覆盖已有文件。 如果设置为 false ,则在发生冲突时抛出异常。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

按 glob 模式查找文件

搜索项目中所有相对路径匹配指定 glob 模式的文件。 搜索将在项目目录或指定子目录的所有子目录中递归执行。 使用此工具按 glob 模式查找文件(例如: **/*.txt)。

参数:

  • globPattern :要搜索的 glob 模式。 该模式必须相对于项目根目录。 示例: src/**/*.java

  • subDirectoryRelativePath (可选):相对于项目的子目录,用于搜索。

  • addExcluded :是否将排除/忽略的文件包含在搜索结果中。 文件可能被用户或忽略规则排除。

  • fileCountLimit :最多返回的文件数量。

  • timeout :超时,单位为毫秒。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

按名称关键字查找文件

搜索项目中名称包含指定关键字(区分大小写)的所有文件。 使用此工具在知道部分文件名时定位文件。

参数:

  • nameKeyword :要在文件名中搜索的子字符串。

  • fileCountLimit :最多返回的文件数量。

  • timeout :超时,单位为毫秒。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取所有打开的文件路径

返回当前活动编辑器或其他打开的编辑器中打开进行编辑的所有文件的路径,相对于项目根目录。 使用此工具查看当前打开的编辑器。

参数:

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

列出目录树

以伪图形格式提供指定目录的树形表示,类似于 tree 工具。 使用此工具查看目录或整个项目的内容。 建议使用此工具而非如 lsdir 等命令行工具进行目录列表。

参数:

  • directoryPath :相对于项目根目录的路径。

  • maxDepth :最大递归深度。

  • timeout :超时,单位为毫秒。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

在编辑器中打开文件

在 JetBrains IDE 编辑器中打开指定文件。 需要一个包含要打开的文件路径的 filePath 参数。 文件路径可以是绝对路径,也可以是相对于项目根目录的路径。

参数:

  • filePath :相对于项目根目录的路径。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

重新格式化文件

在 JetBrains IDE 中重新格式化指定文件。 使用此工具为通过路径确定的文件应用代码格式化。

参数:

  • path :相对于项目根目录的路径。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

按路径获取文件文本

使用相对于项目根目录的路径检索文件的文本内容。 当您拥有文件的项目相对路径时,可使用此工具读取文件内容。

参数:

  • pathInProject :要创建文件的路径,相对于项目根目录。

  • truncateMode :文本截断方式:从开头、中间、结尾截断,或不截断。

  • maxLinesCount :要返回的最大行数。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

替换文件中的文本

使用此工具以灵活的查找与替换选项修改文件中的文本内容。 使用此工具进行有针对性的更改,而无需替换整个文件内容。 当您知道要替换的精确文本时,这是进行文件修改最有效的工具。

返回以下响应之一:

  • ok—— 替换成功。

  • project dir not found—— 无法确定项目目录。

  • file not found—— 指定的文件不存在。

  • could not get document—— 无法访问文件内容。

  • no occurrences found—— 文件中未找到要替换的文本。

参数:

  • pathInProject :目标文件相对于项目根目录的路径。

  • oldText :要被替换的文本。

  • newText :替换文本。

  • replaceAll :是否替换所有匹配项。

  • caseSensitive :搜索是否区分大小写。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

通过正则表达式在文件中搜索

使用 IntelliJ 的搜索引擎在项目中的所有文件内查找正则表达式模式。 建议优先使用此工具而不是通过命令行工具读取文件,因为其速度更快。

结果中出现的匹配项将通过 || 字符进行高亮显示。 例如: some text ||substring|| text

参数:

  • regexPattern :要搜索的正则表达式模式。

  • directoryToSearch :要搜索的目录,相对于项目根目录。 如果未指定,则搜索整个项目。

  • fileMask :要搜索的文件掩码。 如未指定,将搜索所有文件。 示例: *.java

  • caseSensitive :搜索是否区分大小写。

  • maxUsageCount :返回的最大结果条目数。

  • timeout :超时,单位为毫秒。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

通过文本在文件中搜索

使用 IntelliJ 的搜索引擎在项目中的所有文件中查找文本子串。 建议优先使用此工具而不是通过命令行工具读取文件,因为其速度更快。

结果中出现的匹配项将通过 || 字符进行高亮显示。 例如 some text ||substring|| text

参数:

  • searchText :要搜索的文本子串。

  • directoryToSearch :要搜索的目录,相对于项目根目录。 如果未指定,则搜索整个项目。

  • fileMask :要搜索的文件掩码。 如未指定,将搜索所有文件。 示例: *.java

  • caseSensitive :搜索是否区分大小写。

  • maxUsageCount :返回的最大结果条目数。

  • timeout :超时,单位为毫秒。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取符号信息

检索指定文件中指定位置的符号信息。 提供与 IntelliJ IDEA 的 快速文档 功能相同的信息。 根据编程语言不同,信息可能包括符号的名称、签名、类型、文档及其他详细信息。

如果位置引用的是符号,工具将返回包含该符号声明的代码片段(如果有可用)。 使用此工具理解符号的声明、语义及位置。

参数:

  • filePath :相对于项目根目录的路径。

  • line :基于 1 的行号。

  • column :基于 1 的列号。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

重命名重构

重命名指定文件中的符号(变量、函数、类等)。 使用此工具执行重命名重构操作。

与简单的文本查找替换不同, 重命名重构 工具是具备上下文感知能力的实用工具,能够理解代码结构。 它会智能地更新项目中所有对指定符号的引用,确保代码完整性并防止引用断裂。 此方法始终是程序符号重命名的优选方案。

如果重命名操作成功,工具将返回成功消息;如果文件或符号无法找到,或重命名失败,将返回错误消息。

参数:

  • pathInProject :相对于项目根目录的路径。

  • symbolName :要重命名的现有符号的精确名称,区分大小写(例如: getUserData)。

  • newName :符号的新名称,区分大小写(例如: fetchUserData)。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

执行终端命令

在 IDE 内置终端中执行指定的 shell 命令。 使用此工具在 IDE 环境中运行终端命令。

重要功能及限制:

  • 在收集输出之前检查进程是否正在运行。

  • 输出限制为最多 2000 行(多余部分将被截断)。

  • 在达到指定超时时间后终止,并显示通知。

  • 除非在设置中启用 Brave Mode ,否则需要用户确认。

返回可能的响应:

  • 终端输出(若超过 2000 行则被截断)。

  • 如果命令超时,将返回包含中断提示的输出。

  • 各种失败情况下的错误信息。

参数:

  • command :要执行的 shell 命令。

  • executeInShell :是否在用户的默认 shell(如 bash、zsh 等)中执行命令。 如果命令是 shell 脚本,或需要保留用户终端的真实环境,则此选项很有用。 如果设置为 false ,则命令将作为进程启动。

  • reuseExistingTerminalWindow :是否复用现有的终端窗口以避免创建多个终端。

  • timeout :超时,单位为毫秒。

  • maxLinesCount :要返回的最大行数。

  • truncateMode :文本截断方式:从开头、中间、结尾截断,或不截断。

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

获取仓库

检索项目中的 VCS 根目录列表。 使用此工具识别多仓库项目中的所有版本库。

参数:

  • projectPath :项目路径。 如果已知该值,请务必提供,以减少调用的歧义性。 如果只知道当前工作目录,可以将其用作项目路径。

Rails 专用工具

这些工具是专为 Ruby on Rails 项目设计的。

get_rails_routes

检索项目中的 Rails 路由。 结果以分页列表返回,并根据包含/排除的路径、操作、目录与 HTTP 方法进行筛选。

建议使用此工具而非手动代码检查,因为它可对 Rails 路由执行深度分析。

参数:

  • 页面 :用于分页的页码。

  • page_size :每页显示的项数。

  • included_route_path_filters :要包含的路由路径模式列表。

  • excluded_route_path_filters :要排除的路由路径模式列表。

  • included_action_fqn_filters :要包含的完整限定操作名称列表。

  • excluded_action_fqn_filters :要排除的完整限定操作名称列表。

  • included_action_directory_filters :要包含的操作目录列表。

  • excluded_action_directory_filters :要排除的操作目录列表。

  • min_action_count :每条路由必须包含的最少操作数。

  • max_action_count :每条路由最多包含的操作数。

  • included_http_method_filters :要包含的 HTTP 方法列表(GET、POST 等)。

  • excluded_http_method_filters :要排除的 HTTP 方法列表。

get_rails_models

检索项目中的 Rails model。 结果按页分页,可按 FQN、目录以及是否存在对应控制器进行筛选。

参数:

  • 页面 :用于分页的页码。

  • page_size :每页显示的项数。

  • included_fqn_filters :要包含的 FQN 模式列表。

  • excluded_fqn_filters :要排除的 FQN 模式列表。

  • included_directory_filters :要包含的目录列表。

  • excluded_directory_filters :要排除的目录列表。

  • controller_filter :仅包含具有或不具有对应控制器的 model 的筛选器。

get_rails_controllers

检索项目中的 Rails 控制器。 结果按页分页,可按 FQN、目录、视图、抽象状态以及是否存在对应 model 进行筛选。

参数:

  • 页面 :用于分页的页码。

  • page_size :每页显示的项数。

  • included_fqn_filters :要包含的 FQN 模式列表。

  • excluded_fqn_filters :要排除的 FQN 模式列表。

  • included_directory_filters :要包含的目录列表。

  • excluded_directory_filters :要排除的目录列表。

  • included_view_filters :要包含的视图筛选器列表。

  • excluded_view_filters :要排除的视图筛选器列表。

  • abstract_filter :仅包含抽象、非抽象或全部控制器的筛选器。

  • model_filter :仅包含具有或不具有对应 model 的控制器的筛选器。

get_rails_helpers

检索项目中的 Rails 帮助程序。 结果按页分页,可按 FQN 和目录进行筛选。

参数:

  • 页面 :用于分页的页码。

  • page_size :每页显示的项数。

  • included_fqn_filters :要包含的 FQN 模式列表。

  • excluded_fqn_filters :要排除的 FQN 模式列表。

  • included_directory_filters :要包含的目录列表。

  • excluded_directory_filters :要排除的目录列表。

get_rails_views

检索项目中的 Rails 视图。 结果按页分页,可按部分性、布局、控制器关联、路径和控制器目录/FQN 进行筛选。

参数:

  • 页面 :用于分页的页码。

  • page_size :每页显示的项数。

  • partiality_filter :筛选器,仅包含部分视图、非部分视图或全部视图。

  • layout_filter :筛选器,仅包含布局视图、非布局视图或全部视图。

  • controller_filter :筛选器,仅包含具有相关控制器的视图。

  • included_path_filters :要包含的视图路径列表。

  • excluded_path_filters :要排除的视图路径列表。

  • included_controller_fqn_filters :要包含的控制器 FQN 列表。

  • excluded_controller_fqn_filters :要排除的控制器 FQN 列表。

  • included_controller_directory_filters :要包含的控制器目录列表。

  • excluded_controller_directory_filters :要排除的控制器目录列表。

get_rails_mailers

检索项目中的 Rails 邮件程序。 结果按页分页,可按 FQN 和目录进行筛选。

参数:

  • 页面 :用于分页的页码。

  • page_size :每页显示的项数。

  • included_fqn_filters :要包含的 FQN 模式列表。

  • excluded_fqn_filters :要排除的 FQN 模式列表。

  • included_directory_filters :要包含的目录列表。

  • excluded_directory_filters :要排除的目录列表。

最后修改日期: 2025年 12月 5日