RubyMine 2026.2 Help

MCP 服务器

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

启用 MCP 服务器插件

此功能依赖于 MCP 服务器插件,该插件在 RubyMine 中默认捆绑并启用。 如果相关功能不可用,请确保您未禁用该插件。

  1. Ctrl+Alt+S 打开设置,然后选择 Plugins

  2. 打开 已安装 选项卡,找到 MCP 服务器 插件,然后选择插件名称旁边的复选框。

外部客户端设置

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

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

  2. 点击 启用 MCP Server

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

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

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

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

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

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

执行操作时无需确认

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

要启用此模式:

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

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

  3. 点击 Apply

支持的工具

MCP 服务器公开了一组工具,允许外部客户端与 IDE 和项目交互,例如分析代码、修改文件、运行配置或执行终端命令。

可在 设置 | 工具 | MCP 服务器 | Exposed 工具 中查看和管理所有可用工具列表。 在此页面,可以根据工作流和偏好设置启用或禁用特定工具。

下方可查阅 MCP 服务器提供的工具列表。

分析工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集分析工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集分析工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集分析工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具分析工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集工具组集分析工具

构建项目

触发器构建项目或指定文件,等待补全,并返回构建错误。 可用此工具构建项目或编译文件,并获取详细的编译错误和警告信息。

编辑后必须使用此工具验证更改是否有效。

参数:

  • rebuild :是否对项目进行完整重建。 默认为 false。 仅当未指定 filesToRebuild 时生效。

  • filesToRebuild :如已指定,仅编译指定路径下的文件。 路径相对于项目根目录。

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

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

获取文件问题

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

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

参数:

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

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

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

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

获取项目依赖

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

参数:

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

获取项目模块

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

参数:

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

代码洞察工具

获取符号信息

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

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

参数:

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

  • line :基于 1 的行号。

  • :基于 1 的列号。

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

特定数据库工具

为了确保 AI 代理严格只读访问,请使用具有适当受限(只读)权限的数据库用户,并将数据源配置为使用该用户。

获取数据库对象描述

获取特定架构下某一数据库对象(列、类型、密钥、索引等)的层级文本结构表示。

如有歧义,将返回所有适用对象的定义。

参数:

  • connectionId :唯一连接ID。

  • databaseName :架构所属数据库名。 如果DBMS只有架构而没有数据库,则可以为空。

  • schemaName :架构名称。

  • kind :将此参数设置为特定的对象类型编码,仅列出该类型的对象。 设置为null时,会检索架构中的所有对象。

  • objectName :指定类型对象的名称(如表名或视图名)。 不得为空。

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

list_database_connections

检索项目中已配置的数据库连接或数据源列表。 对于每个连接,返回其唯一 ID、名称、DBMS 和驱动程序名称。

test_database_connection

返回连接诊断信息:

  • 用于标识连接是否出现问题的标志:是、否或未知。

  • 关于数据库连接的详细信息,例如 DBMS 类型、版本及 JDBC 驱动。

  • 连接尝试结果摘要。 如出现失败,将包含DBMS提供的错误描述。

参数:

  • id :唯一连接ID。

list_database_schemas

检索指定数据库连接中的数据库架构列表。

对于每个架构,工具会返回其自身名称以及数据库名称(如不适用则为空)。

参数:

  • connectionId :唯一连接ID。

  • selectedOnly :如果只应列出数据库树中选中的架构,则为true;如果应列出所有架构,则为false。

list_schema_object_kinds

检索给定数据库连接支持的架构对象类型列表。 对于每种对象类型,返回对象类型唯一代码和可读名称。

参数:

  • connectionId :唯一连接ID。

list_schema_objects

检索给定架构中的数据库对象列表。 对于每个对象,返回架构中的对象名称及类型。

参数:

  • connectionId :唯一连接ID。

  • schemaName :架构名称。

  • databaseName :架构所属数据库名。 如果DBMS只有架构而没有数据库,则可以为空。

  • kind :将此参数设置为特定的对象类型编码,仅列出该类型的对象。 设置为null时,会检索架构中的所有对象。

list_recent_sql_queries

此功能在免费订阅方案中不可用。

检索给定数据库连接的最近(包括当前正在运行)查询列表。

对于每条查询,返回:

  • 查询会话的唯一ID。

  • 运行查询花费的时间(单位:毫秒)。

  • 查询的当前状态。 例如,运行中、取消中、已完成等。

  • 查询的完成状态。 例如,成功、错误完成、已取消等。

  • 查询文本。

参数:

  • connectionId :唯一连接ID。

cancel_sql_query

使用唯一ID取消正在运行的查询。

参数:

  • sessionId :查询会话ID。

execute_sql_query

针对给定的数据库连接执行SQL查询。

工具会报告执行状态:成功或错误。 如出错,还会提供错误描述。

如果查询返回数据,将以 CSV 格式附加到工具响应中。

参数:

  • connectionId :唯一连接ID。

  • queryText :需要执行的SQL查询。

preview_table_data

返回指定数据库连接下表、视图、物化视图或其他类表对象的预览数据。

工具以CSV格式返回表内容。

参数:

  • connectionId :唯一连接ID。

  • schemaName :架构名称。

  • databaseName :架构所属数据库名。 如果DBMS只有架构而没有数据库,则可以为空。

  • tableName :表名。

  • maxRowCount :返回的最大行数。 默认值为 100

开发者套件 MCP 工具

查找锁要求用法

分析文本光标下方法的读写锁用法。 同时分析调用路径的部分深度。 可用此工具识别潜在读写锁要求的用法。 返回包含路径信息的锁要求列表。

参数:

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

  • line :光标所在的行。

  • :光标所在的列。

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

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

查找线程要求用法

分析文本光标下方法的线程约束(例如方法是否需在 UI 线程或后台线程运行)的用法。 同时分析调用路径的部分深度。 可用此工具识别潜在线程要求的用法。 返回包含路径信息的线程要求列表。

参数:

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

  • line :光标所在的行。

  • :光标所在的列。

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

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

执行工具

执行特定的运行配置

运行当前项目中,指定名称的已有运行配置或由代码位置(filePath + line )临时创建的运行配置,然后等待指定超时时间完成。 可用此工具,指定通过 获取运行配置 返回的配置名称,或使用由 get_run_configurations(filePath = ...) 返回的运行点(filePath + line)。

可选启动重写(programArgumentsworkingDirectoryenvs )仅对本次运行有效,不会持久保存。 除非确需更改本次运行的启动配置值,否则不要传递这些重写参数。 缺失或为 null 的重写参数会保持当前运行配置值不变。 对于字符串重写(programArgumentsworkingDirectory ),缺失、null 或空字符串("" )会保留当前值。 传递如 " " 这样的仅含空格的字符串以清除本次启动的现有值。

传递 configurationName ,或结合 filePathline。 这些模式互斥。

行为:

  • waitForExit=true 时,最多等待 timeout 毫秒以终止进程。 若超时,进程会在后台继续运行,并且结果中会省略 exitCode

  • waitForExit=false 时,仅等待进程启动,随后立即返回,不应用 timeout

  • fullOutputPath 指向包含完整原始输出的临时文件,同时只要进程未结束,该文件可能会继续增长。

返回执行结果,包括当前输出快照、可选退出码和可选 fullOutputPath

参数:

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

  • filePath :相对于项目根目录的文件路径。 需与 line 一同提供,以根据代码上下文创建并执行临时运行配置。

  • line :用于 filePath 的 1 起始的行号。 需与 filePath 一同提供,不可与 configurationName 组合。

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

  • waitForExit :是否等待进程终止。 若为 false,工具将在进程启动后立即返回并忽略 timeout

  • programArguments :仅对本次启动重写可选程序实参。 缺失、null 或空字符串时保留当前值,仅含空格的字符串将清空此值。

  • workingDirectory :本次启动可选工作目录重写。 缺失、null 或空字符串时保留当前值,仅含空格的字符串将清空此值。

  • envs :本次启动可选环境变量重写。 缺失/为 null 时,保持现有环境不变;如有设置,则值将覆盖现有环境。

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

获取运行配置

根据输入,返回项目运行配置或可执行文件代码位置。

filePath 时,此工具会列出项目现有运行配置。 结果包含配置名称,以及如有可用时,启动详情,如程序实参、工作目录、环境变量和 supportsDynamicLaunchOverrides

supportsDynamicLaunchOverrides执行运行配置 中一次性启动重写(programArgumentsworkingDirectoryenvs )的源可信能力标志。 仅当该标志对所选配置为 true 时,才传递这些重写参数。

filePath 时,此工具会发现该文件中的可执行文件入口点(运行点),如测试方法、主方法或 IDE 显示运行装订区域图标的其他可执行文件入口点。 结果包含 filePathrunPoints ,可配合 执行运行配置 返回的行号进行代码运行。

参数:

  • filePath :可选的相对于项目根目录的文件路径。 如有提供,则返回该文件中的运行点(可执行文件入口点),而不是项目范围的运行配置。

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

文件工具

创建新文件

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

参数:

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

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

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

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

按 glob 模式查找文件

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

参数:

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

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

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

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

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

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

按名称关键字查找文件

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

参数:

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

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

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

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

获取所有打开的文件路径

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

参数:

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

列出目录树

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

参数:

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

  • maxDepth :最大递归深度。

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

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

在编辑器中打开文件

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

参数:

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

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

格式设置工具

重新格式化文件

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

参数:

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

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

检查生成器 MCP 工具

验证检查 kts

根据规范示例验证 inspection.kts 脚本。 编译检查并对正例/负例进行运行。 返回编译状态和详细验证结果。

正例应触发检查(预期存在问题)。 负例不应触发检查(禁止行应无问题)。

返回整体成功、单例结果及聚合统计。

参数:

  • inspectionKtsCode :需要编译和验证的 inspection.kts 脚本内容。

  • pathToSpecification :带有要验证示例的规范路径。

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

检查 KTS MCP 工具

生成检查 kts api

返回目标语言的检查 KTS API 文档。 提供可用于编写 inspection.kts 文件的类及函数。

参数:

  • language :目标语言:'Java' 或 'Kotlin'。

  • wrapInTags :如为 true,则将 API 内容包裹在 <API><api.kt> 标记中。

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

生成检查 kts 示例

返回目标语言的示例 inspection.kts 模板,用于指导代码生成。 提供已包装 XML 的示例,展示如何使用 InspectionKts API 编写检查。

参数:

  • language :目标语言:'Java' 或 'Kotlin'。

  • includeAdditionalExamples :如为 true,还包括除模板外的额外精选示例。

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

生成 psi 树

为提供的 Java 或 Kotlin 代码创建 PSI 树,并以缩进文本形式返回。 可用此工具理解编写检查时代码段的 PSI 结构。 输出显示元素类型及其层次结构,并对何时需要 node.children() 给出提示。

参数:

  • code :要解析的源代码段。

  • language :目标语言:'Java' 或 'Kotlin'。

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

运行检查 kts

编译 inspection.kts 脚本并在目标文件上运行。 如有编译错误则返回,否则返回检查发现的问题列表。 请使用此工具在开发过程中测试 inspection.kts 脚本。

参数:

  • inspectionKtsCode :要编译和运行的 inspection.kts 脚本内容。

  • contextPath :项目中需分析的目标文件的相对路径(例如, src/my/package/Example.kt )。

  • targetFileContent :要分析的目标文件内容。 如果未提供,文件必须存在于项目中。

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

单仓库开发者套件 MCP 工具

获取项目状态

检查项目是否已准备好进行代码分析操作。 返回索引和扫描状态。 在进行如 lint_files获取文件问题 等重操作前使用该操作以避免超时。

参数:

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

读取工具

读取文件

读取项目目录中的文件,或来自任何项目依赖项或其他项目源根的文件。 可读取 Jar/Jrt 文件中的源代码,也可反编译 Jar/Jrt 文件内或磁盘上的 Java 类文件。 返回带编号(从 1 开始)的文本行。

模式:

  • slice

  • lines

  • line_columns

  • offsets

  • indentation

模式详情:

  • slice 使用 start_linemax_lines

  • lines 使用 start_line/end_line (包含端点)。

  • line_columns 使用 start_line/start_columnend_line/end_column结束 不包含在内; end_line 默认为 start_line)。

  • offsets 使用 start_offset/end_offset结束 不包含在内)。

  • indentationstart_line 配合 max_levels/include_* 使用。

max_lines 限制所有模式下的总输出量; context_lines 应用于区间模式(每侧)。

参数:

  • file_path :文件路径。 支持项目相对路径、包含 '..' 的路径、绝对路径、类似 /path/lib.jar!/pkg/Foo .class 的归档条目,以及如 file:// jar:// jrt:// 的 URL。 任何其他工具返回的路径均可直接传递(例如来自 search_* 工具的路径)。

  • mode :读取模式: slicelinesline_columnsoffsetsindentation

  • start_line :从第 1 行开始读取的行号。

  • max_lines :返回的最大行数(切片用作行计数;所有模式都会限制输出)。

  • end_linelines/line_columns 模式的 1 起始结束行(lines 为包含端点; line_columns 为不包含端点)。

  • start_columnline_columns 模式下,第 1 列起始列。

  • end_column :区间读取的第 1 结束列(不包含端点)。

  • start_offset :偏移模式下的 0 起始偏移量(需要 end_offset)。

  • end_offset :偏移模式下的 0 结束偏移量(不包含端点)。

  • context_lines :要在范围周围每侧包含的上下文行数。

  • max_levels :缩进模式:包含的最大缩进层级数(0 = 仅锚点块)。

  • include_siblings :缩进模式:包含同一缩进级别的同级块。

  • include_header :缩进模式:包含位于锚点正上方的页眉注释/注解。

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

重构工具

重命名重构

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

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

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

参数:

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

  • symbolName :要重命名的符号名称。

  • newName :符号的新名称。

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

运行 Notebook 工具

运行 Notebook 单元格

执行 Jupyter Notebook 的一个或全部单元。

示例:

  • {"file_path": "/abs/path/demo.ipynb", "cell_id": "13c5cec416369e19"}

  • {"file_path": "/abs/path/demo.ipynb"}

参数:

  • file_path .ipynb Notebook 的绝对路径。

  • cell_id :可选的 Jupyter 单元 ID。 如未指定,则执行全部单元。

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

搜索工具

搜索文件

通过 glob 模式在项目内搜索文件。 当需要使用 glob 语法匹配文件路径时,请使用此工具。

Glob 模式是相对于项目根目录的。

示例:

  • "**/*.kt"

  • "src/**/Foo*.java"

  • "build.gradle.kts"

没有 '/' 的模式将视为 "**/pattern"paths 为相对于项目根目录的可选附加 glob 筛选器。

参数:

  • q :要搜索的 glob 模式。

  • paths :用于筛选结果的可选项目相对 glob 模式列表。 支持 ! 排除项。 结尾处的 / 会扩展为 **。 没有 / 的模式将视为 **/pattern。 空字符串将被忽略。

  • includeExcluded :是否在结果中包含已排除/已忽略文件。

  • limit :返回的最大结果数。

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

搜索正则表达式

在项目文件内搜索正则表达式匹配。 需要代码段结果的正则表达式搜索时请使用此工具。 结果在可用时会包含匹配坐标(1 起始行/列,0 起始偏移量)。

路径为相对于项目根目录的 glob 模式。

示例:

  • ["src/**", "!**/test/**"]

  • ["**/*.kt"]

  • ["foo/"]

参数:

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

  • paths :用于筛选结果的可选项目相对 glob 模式列表。 支持 ! 排除项。 结尾处的 / 会扩展为 **。 没有 / 的模式将视为 **/pattern。 空字符串将被忽略。

  • limit :返回的最大结果数。

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

搜索符号

搜索符号(类、方法、字段)。 用于通过标识符片段进行语义查找时请使用此工具。 结果在可用时会包含匹配坐标(1 起始行/列,0 起始偏移量)。

路径为相对于项目根目录的 glob 模式。

默认仅搜索项目符号。 如果未找到合适结果,请用 include_external=true 再试一次以便同时搜索 SDK 和库符号。

参数:

  • q :符号查询文本。

  • paths :用于筛选结果的可选项目相对 glob 模式列表。 支持 ! 排除项。 结尾处的 / 会扩展为 **。 没有 / 的模式将视为 **/pattern。 空字符串将被忽略。

  • include_external :是否包含 SDK 和库符号。 默认禁用;如未找到合适项,请用 include_external=true 再试一次。

  • limit :返回的最大结果数。

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

搜索文本

在项目文件中搜索文本子字符串。 需要代码段结果的快速文本搜索时请使用此工具。 结果在可用时会包含匹配坐标(1 起始行/列,0 起始偏移量)。

路径为相对于项目根目录的 glob 模式。

示例:

  • ["src/**", "!**/test/**"]

  • ["**/*.kt"]

  • ["foo/"]

参数:

  • q :要搜索的文本。

  • paths :用于筛选结果的可选项目相对 glob 模式列表。 支持 ! 排除项。 结尾处的 / 会扩展为 **。 没有 / 的模式将视为 **/pattern。 空字符串将被忽略。

  • limit :返回的最大结果数。

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

终端工具

执行终端命令

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

重要功能及限制:

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

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

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

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

返回可能的响应:

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

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

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

参数:

  • command :要执行的 shell 命令。

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

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

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

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

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

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

文本工具

按路径获取文件文本

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

参数:

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

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

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

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

替换文件中的文本

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

返回以下响应之一:

  • 确定—— 替换成功。

  • 找不到项目目录—— 无法确定项目目录。

  • 找不到文件—— 指定的文件不存在。

  • 无法获取文档—— 无法访问文件内容。

  • 未找到匹配项—— 文件中未找到要替换的文本。

参数:

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

  • oldText :要被替换的文本。

  • newText :替换文本。

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

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

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

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

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

结果中的匹配内容会被 || 字符包围。 例如: 一些文本 ||子字符串|| 文本

参数:

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

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

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

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

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

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

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

通过文本在文件中搜索

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

结果中的匹配内容会被 || 字符包围。 例如 一些文本 ||子字符串|| 文本

参数:

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

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

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

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

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

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

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

VCS 工具

获取仓库

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

参数:

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

Rails 专用工具

get_rails_routes

检索项目中的 Rails 路由。 结果以分页列表返回,并可根据包含/排除的路径、操作(由完全限定名称或 FQN 指定)、目录和 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 :要排除的目录列表。

2026年 7月 14日