IntelliJ IDEA 2026.2 Help

MCP 服务器

2025.2 版本起,IntelliJ IDEA 随附集成的 MCP 服务器 ,允许 Claude Desktop、光标、Codex、VS Code 等外部客户端访问 IDE 提供的工具。 这使用户无需离开其首选应用程序即可控制并与 JetBrains IDE 进行交互。

启用 MCP 服务器插件

此功能性依赖 MCP 服务器插件,该插件默认在 IntelliJ IDEA 中集成并启用。 如果相关功能不可用,请确保您没有禁用插件。

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

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

外部客户端设置

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

  1. 在主菜单中,前往 设置 | 工具 | MCP Server

  2. 点击 启用 MCP 服务器​

  3. 客户端自动配置 部分,为每个要与 MCP 服务器一起使用的客户端点击 自动配置。 这将自动更新其 JSON 配置。

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

如果您希望从其他任何客户端连接到 MCP 服务器,则需要执行手动配置:

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

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

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

无需确认执行操作

MCP 服务器允许已连接的外部客户端在 IDE 中执行终端命令或运行配置,而无需每次都提示用户确认。

要启用此模式:

  1. 在主菜单中,前往 设置 | 工具 | MCP Server

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

  3. 点击 应用

支持的工具

MCP 服务器对外提供一套工具,使外部客户端能够与 IDE 及项目交互,例如分析编码、修改文件、运行配置或执行终端命令。

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

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

分析工具

构建项目标题

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

编辑完成后,必须使用此工具验证编辑是否有效。

参数:

  • rebuild :是否执行项目的完整重建。 默认值为 false。 仅当未指定 filesToRebuild 时有效。

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

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

get_file_problems

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

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

参数:

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

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

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

get_project_dependencies

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

参数:

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

get_project_modules

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

参数:

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

代码洞察工具

get_symbol_info

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

如果该位置引用了某个符号,且声明可用,该工具将返回包含该符号声明的代码片段。 使用此工具了解符号的声明、语义及位置。

参数:

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

  • line :从 1 开始的行号。

  • column :从 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

调试器工具

为提升外部客户端使用 IDE 调试器工具的效果,可将 /ij-debugger 技能复制到其 skills 文件夹。 为此:

  1. 在主菜单中,转到 导航 | 全局搜索 ,或连续按两次 Shift 以打开搜索窗口。

  2. 输入 将调试器技能复制到智能体 并按 Enter

技能已复制到以下文件夹:

  • Claude Code

    %USERPROFILE%\.claude\skills\ij-debugger\

    ~/.claude/skills/ij-debugger/

    ~/.claude/skills/ij-debugger/

  • Codex

    %USERPROFILE%\.codex\skills\ij-debugger\

    ~/.codex/skills/ij-debugger/

    ~/.codex/skills/ij-debugger/

该技能是行为指南,指导外部客户端何时应用调试器工具,收集哪些运行时证据,以及如何管理断点和会话状态。

要在外部客户端中调用该技能,请使用 /ij-debugger ,或在合适时自动激活。

xdebug 控制会话

控制调试会话的执行。 用此工具可步进执行编码、恢复执行、暂停或停止调试会话。

前提条件:

  • 必须存在调试会话。

  • STEP_*RESUME 需要会话处于挂起状态。

操作:

  • STEP_INTO :步入下一个方法调用

  • STEP_OVER :步过当前行

  • STEP_OUT :步出当前方法

  • RESUME :恢复程序执行直到下一个断点

  • PAUSE :暂停程序执行

  • STOP :停止调试会话

  • WAIT_FOR_PAUSE :等待会话暂停(命中断点或手动暂停)

  • DRAIN_EVENTS :为会话排出跟踪点输出(所有操作都会排除断点错误)

重要说明:

  • 如果程序正在运行,应在 WAIT_FOR_PAUSEPAUSE 之后再进行 STEP_*/RESUME 操作。

  • 使用来自 xdebug_get_debugger_statusxdebug_启动_调试器_会话 的当前 sessionId。 如果会话停止、超时或消失,请在下次会话范围调用前刷新会话列表。

  • RESUME不会设置断点。 如果没有启用断点(或接下来不会命中任何断点),程序可能会运行到补全并且会话会在未暂停的情况下停止。

  • RESUME后,请调用 WAIT_FOR_PAUSE以确认下次暂停。 如 WAIT_FOR_PAUSE超时,请考虑 PAUSE并重新检查断点。

  • DRAIN_EVENTS同样需要存在会话;会话结束后请勿复用过期的 sessionId

下次调用:

结果中的状态值:

  • running :程序正在执行

  • paused :执行已挂起(断点、步进或手动暂停);暂停结果还包括 frameValues ,即当前帧的快照(如有则为 xdebug_get_frame_values(depth=0) 格式)

  • stopped :调试会话已终止

  • 任意操作都会返回 breakpointErrorsTail

  • tracepointOutputsTail 仅在 DRAIN_EVENTS 时返回

事件支持作用域:

  • 断点错误和跟踪点输出事件目前仅由基于 JVM 的调试器(Java、Kotlin 等)报告。

  • 在其他调试器后端,即使已配置断点/日志,这些事件尾部也可能为空。

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • action :要执行的操作: STEP_INTOSTEP_OVERSTEP_OUTRESUMEPAUSESTOPWAIT_FOR_PAUSEDRAIN_EVENTS。 事件排除目前仅由基于 JVM 的调试器(Java、Kotlin 等)生成。

  • timeout :等待操作补全的超时时间,单位为毫秒。 建议: STEP_*/PAUSE 通常 5000-15000; WAIT_FOR_PAUSE 通常 30000-120000,具体取决于工作负载与断点。 默认值:30000。

  • eventsLimit :每个事件列表最多排除的最新事件数量。 对于 DRAIN_EVENTS ,此限制分别作用于 breakpointErrorsTailtracepointOutputsTail。 默认值:100。

  • clearEventsAfterRead :兼容性标志。 返回的事件始终会从内部缓冲区中移除,无论此值为何。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 求值表达式

在当前堆栈帧上下文中评估表达式。 使用此工具可计算值、调用方法或在调试时检查表达式。

前提条件:

  • 会话必须处于挂起状态。

  • 所选帧/语言必须支持求值。

  • 表达式 必须为当前帧语言的有效表达式。

结果返回如下:

  • depth == 0 :仅为已求值表达式的展示

  • depth > 0 :展示及其子项的伪图形树,直至请求深度

输入规则:

  • 原样传递表达式文本,以便调试器求值器正确解析。

  • 请勿传递 JSON 转义负载或如 \\"text\\" 等文字转义序列。

下次调用:

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • frameIndex :堆栈帧索引,整数(0 为顶层帧)。 请从当前暂停的 xdebug_get_stack 结果获取,不要在 RESUMESTEP_*xdebug_run_to_line 或暂停位置发生变化后复用已缓存的帧索引。 如果为 null,则使用最顶层帧。 默认值:null。

  • 表达式 :在当前上下文中要计算的表达式。 需传递当前帧语言下的原始表达式文本,不要传递经过 JSON 转义的载荷或文字反斜杠转义的带引用文本。

  • depth :展开计算结果的子节点的最大深度(0 = 仅值,1 = 直接子节点,2 = 子节点及其子节点,依此类推)。 默认值:0。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 获取调试器状态

返回调试器的当前状态,包括所有活动的调试会话。 使用此工具可查看所有运行中的调试会话及其状态概览。

前提条件:

  • 无。

返回显式的 sessions[]activeSessionId

下次调用:

  • 如果没有会话正在运行,则调用 xdebug_启动_调试器_会话

  • 如有多个会话处于活动状态,在后续调用中请将返回的 id 用作 sessionId

参数:

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 获取帧值

以树结构返回指定堆栈帧中可见的值。 使用此工具可检查调用堆栈中特定点的局部变量、形参、字段或其它可用值。

前提条件:

  • 会话必须处于挂起状态。

  • 帧索引应来源于当前暂停的 xdebug_get_stack 结果(0 = 最顶层帧)。

设置格式:

  • 拥有子节点的节点会通过 + 进行标记。

下次调用:

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • frameIndex :堆栈帧索引,整数(0 为顶层帧)。 请从当前暂停的 xdebug_get_stack 结果获取,不要在 RESUMESTEP_*xdebug_run_to_line 或暂停位置发生变化后复用已缓存的帧索引。 如果为 null,则使用最顶层帧。 默认值:null。

  • depth :展开计算结果的子节点的最大深度(0 = 仅值,1 = 直接子节点,2 = 子节点及其子节点,依此类推)。 默认值:0。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 获取堆栈

返回调试会话中某线程的调用堆栈。 使用此工具可查看导致当前执行点的方法调用顺序。

前提条件:

  • 会话必须处于挂起状态。

行为:

  • threadId 应来自 xdebug_get_threads ,并与调试器线程显示名称一致(默认为活动线程)。

  • 即使源位置信息缺失,也会包含帧(file/line 可能为 null)。

分页:

  • offset/limit 在收集全栈后应用。

帧字段包括:

  • index

  • file

  • line

  • isCurrent

  • presentation

file 按调试器提供的方式报告(不进行路径规范化)。

下次调用:

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • threadId :需要获取堆栈的线程 ID。 该值应来自 xdebug_get_threads ,并与调试器线程显示名称一致,而非不透明的数字 ID。 如未指定,则使用当前/活动线程。 默认值:null。

  • limit :返回的最大帧数。 默认值:200。

  • offset :分页偏移。 默认值:0。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 获取线程

返回调试会话中的线程列表。 使用此工具可查看所有线程及其当前状态。

前提条件:

  • 会话必须处于挂起状态。

下次调用:

分页:

  • offset/limit 在收集所有堆栈后应用。

排序:

  • 活动线程优先。

  • 剩余线程按堆栈深度降序排列。

架构字段包括:

  • id

  • name

  • state

  • isCurrent

  • additionalInfo

  • additionalInfoTooltip

  • frameCount

additionalInfo/additionalInfoTooltip 在可用时使用额外的显示信息。

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • limit :分页大小。 默认值:50,最大值:200。

  • offset :分页偏移。 默认值:0。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 按路径获取值

通过属性名称路径获取嵌套对象的值。 使用此工具可深入复杂对象并检查其嵌套属性。

前提条件:

  • 会话必须处于挂起状态。

  • 路径不能为空,且需引用选中帧/对象中可见的名称。

结果返回如下:

  • depth == 0 :仅呈现指定路径处的值

  • depth > 0 :呈现值以及其子节点到请求深度的伪图形树

示例:

  • 要获取 obj.field.subField 的值,请使用 path = ["obj", "field", "subField"]

  • 对于数组/列表索引器,将索引符号作为普通路径元素(子节点名称)传递,例如 items[0].name-> path = ["items", "[0]", "name"]

  • 请使用当前暂停 xdebug_get_frame_values/ 上一次 xdebug_get_value_by_path 输出中的确切子节点名称,因为索引节点名称可能因语言/调试器不同而异(例如 "[0]""0")。

  • RESUMESTEP_*xdebug_run_to_line 或其它暂停位置变化后,需刷新 path 令牌。

下次调用:

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • frameIndex :堆栈帧索引,整数(0 为顶层帧)。 请从当前暂停的 xdebug_get_stack 结果获取,不要在 RESUMESTEP_*xdebug_run_to_line 或暂停位置发生变化后复用已缓存的帧索引。 如果为 null,则使用最顶层帧。 默认值:null。

  • path :需要遍历的子节点名称列表,例如 ['myObject', 'field', 'subField']['items', '[0]', 'name']。 请使用当前暂停 xdebug_get_frame_values/xdebug_get_value_by_path 输出中的确切节点名称,并在暂停位置变化后刷新已失效的路径令牌。

  • depth :展开计算结果的子节点的最大深度(0 = 仅值,1 = 直接子节点,2 = 子节点及其子节点,依此类推)。 默认值:0。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 列出断点

列出项目或指定文件中的所有断点。 使用此工具可查看当前已设置的所有断点及其属性。

行为:

  • 如果提供了 filePath ,仅返回该文件中的断点。

  • 为每个断点返回丰富的特性(id类型fileline已启用ownerconditionisLogMessageisLogStacktemporarysuspendPolicyhitCount)。

下次调用:

  • 如不存在合适的断点,则调用 xdebug_设置_断点

  • 然后继续执行 xdebug_control_session(action=RESUME)xdebug_control_session(action=WAIT_FOR_PAUSE)

参数:

  • filePath :可选文件路径,用于作为断点筛选器。 文件路径。 支持项目相对路径、带有 .. 的路径、绝对路径、如 /path/lib.jar!/pkg/Foo.class 的归档项及如 file:// jar:// jrt:// 等 URL。 可以直接传递其他工具返回的任何路径(例如,来自 search_* 工具的路径)。 如未指定,则返回所有断点。 默认值:null。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 移除断点

移除按拥有者和可选选择器筛选器筛选的断点。 使用此工具可移除之前设置的断点。

行为:

  • owner 默认值为 agent

  • 如仅提供 owner ,则移除该拥有者的所有断点。

  • 如果提供了 breakpointId ,则移除所选拥有者的匹配断点。

  • 如果提供了 filePath + line ,则移除所选拥有者的匹配行断点。

  • 如提供多个选择器,则全部合并(逻辑与)。

  • 幂等性:移除不存在的断点会返回 removed=false

  • 若要移除所有断点,无论拥有者如何,请调用两次:一次用 owner=user ,一次用 owner=agent

下次调用:

参数:

  • breakpointId :由 xdebug_设置_断点xdebug_列出_断点 返回的规范断点 ID。

  • filePath :可选文件路径,用于作为断点筛选器。 文件路径。 支持项目相对路径、带有 .. 的路径、绝对路径、如 /path/lib.jar!/pkg/Foo.class 的归档项及如 file:// jar:// jrt:// 等 URL。 可以直接传递其他工具返回的任何路径(例如,来自 search_* 工具的路径)。 如未指定,则返回所有断点。 默认值:null。

  • line :可选输入,移除断点的行号(从1开始)。

  • owner :断点拥有者筛选器。 默认值:agent。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug_run_to_line

恢复执行到目标行位置。 使用此工具可运行到指定源代码位置,无需手动步进。

前提条件:

  • 会话必须处于挂起状态。

  • 目标文件/行必须有效。

结果:

  • paused :会话在目标处或之后暂停。

  • stopped :会话在暂停前已终止。

  • timeout :在超时窗口内未暂停/停止。

下次调用:

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

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

  • line :目标行号(从1开始)。

  • timeout :等待暂停/停止结果的超时时间,单位为毫秒。 默认值:30000。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 设置断点

创建或更新断点。 使用此工具可设置行断点,通过 ID 更新现有断点,并控制跟踪点/日志行为。

目标模式:

  • 按位置:提供 filePath + line ,并省略 breakpointId (或传递 null)。 请勿使用如 """/""__omit__" 这样的占位符字符串。

  • 按 ID:提供由 xdebug_设置_断点xdebug_列出_断点 返回的现有不透明规范 breakpointId (可选 filePath/line 可移动行断点)。

验证:

  • 定位模式下, filePathline 均为必填项。

  • ID 模式下,断点必须存在并由 breakpointId 唯一标识。

  • 定位模式下, filePath 相对项目根目录, line 从 1 开始,且目标位置必须是可执行文件。

事件报告:

  • 无效的 condition 表达式会通过 xdebug_control_session(...).breakpointErrorsTail 异步报告。

  • 来自具有 isLogMessage 和/或 isLogStack 断点的跟踪点输出会通过 xdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail 进行收集。

  • 断点错误及跟踪点输出报告目前仅支持基于 JVM 的调试器(Java、Kotlin 等)。

  • 一次成功的 xdebug_设置_断点 响应并不保证 condition 或跟踪点表达式有效;请在依赖前检查后续 breakpointErrorsTail

  • 成功的行断点响应还会包含 lineText ,即当前断点所在实际源代码行的截取片段。 请在恢复前检查以确认断点位置。

应用语义:

  • 提供的字段会作为目标断点的结果状态应用。

  • condition=null 会清除现有条件。

  • isLogMessage=true 记录断点命中位置。

  • isLogStack=true 记录当前堆栈跟踪。

  • 如两个标志均为 true,则同时日志位置与堆栈。

  • isLogMessage/isLogStack + suspendPolicy=NONE 情况下,断点表现为跟踪点。

  • ID 模式下,若为行断点提供了 filePath/line ,则会在新位置重新定位(重建)该断点。

  • ID 模式下,对于非行断点, filePath/line 会被忽略并在 message 中报告。

  • 任一操作成功后,该断点会被标记为 agent 拥有(mcpBreakpointMarker)。

下次调用:

  • 请使用返回的 lineText 和/或 xdebug_列出_断点 验证断点位置。

  • 通过 xdebug_start_debugger_sessionxdebug_control_session(action=RESUME) 启动或继续执行。

参数:

  • breakpointId :由 xdebug_设置_断点xdebug_列出_断点 返回的规范断点 ID。

  • filePath :可选文件路径,用于作为断点筛选器。 文件路径。 支持项目相对路径、带有 .. 的路径、绝对路径、如 /path/lib.jar!/pkg/Foo.class 的归档项及如 file:// jar:// jrt:// 等 URL。 可以直接传递其他工具返回的任何路径(例如,来自 search_* 工具的路径)。 如未指定,则返回所有断点。 默认值:null。

  • line :从 1 开始的行号。 仅在定位模式下必需。 在 ID 模式下可选,用于重新定位行断点。

  • condition :可选条件表达式——仅当该表达式为 true 时断点触发器才会触发。 验证错误将通过 xdebug_control_session(...).breakpointErrorsTail (仅限基于 JVM 的调试器)异步报告。 默认值:null。

  • isLogMessage :到达断点时是否日志断点命中位置(源代码位置)。 在基于 JVM 的调试器中,可以通过 xdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail 获得输出。 默认值:false。

  • isLogStack :到达断点时是否日志堆栈跟踪。 在基于 JVM 的调试器中,可以通过 xdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail 获得输出。 默认值:false。

  • temporary :临时断点(首次命中后移除)。 默认值:false。

  • suspendPolicy :挂起策略: ALLTHREADNONE。 默认值: ALL

  • 已启用 :断点是否启用。 默认值:true。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug 设置变量

在选定的堆栈帧中通过路径修改变量值。 可通过本工具在调试过程中更改状态。

前提条件:

路径格式设置与 xdebug_get_value_by_path 相同。 newValue 必须是当前帧所用语言中的原始表达式,并且必须可由调试器/求值器赋给目标值。 请勿传递 JSON 转义的内容或如 \\"text\\" 这样的文字转义序列。

结果:

  • 返回 oldValue/newValue/applied

  • 不支持的变更将返回包含文本的出错消息。

下次调用:

参数:

  • sessionId :调试会话 ID。 请使用 xdebug_get_debugger_statusxdebug_启动_调试器_会话 返回的当前 ID。 如果会话停止、超时或消失,在复用旧 ID 前请刷新会话列表。 格式设置:默认以会话名称作为 ID;如有多个会话同名,ID 为 <sessionName>#<executionId>。 如为 null 且仅有一个活动会话,将自动选择该会话。 如有多个会话处于活动状态且未指定 sessionId ,调用将失败。 默认值:null。

  • frameIndex :堆栈帧索引,整数(0 为顶层帧)。 请从当前暂停的 xdebug_get_stack 结果获取,不要在 RESUMESTEP_*xdebug_run_to_line 或暂停位置发生变化后复用已缓存的帧索引。 如果为 null,则使用最顶层帧。 默认值:null。

  • path :目标值路径,格式设置与 xdebug_get_value_by_path 相同。 请使用当前暂停 xdebug_get_frame_values/xdebug_get_value_by_path 输出中的精确节点名称,并在暂停位置变化后刷新过期的路径标记。

  • newValue :要赋值的新值表达式。 请传递当前帧语言下的原始表达式文本,需可由调试器/求值器赋给目标值。 不要传递 JSON 转义内容或文字反斜杠转义的带引用文本。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

xdebug_start_debugger_session

为当前项目中现有的运行配置(按名称)或编码位置 filePath + line 启动调试器会话。 使用本工具可启动调试器会话。 可与现有运行配置名称或 filePath + line 一同使用本工具。 使用 filePath + line 时,runnable 方法行(如 main )、测试或其他可执行文件入口点基本都适用。 如不确定可用哪一行, get_run_configurations 可帮助发现文件中的 runnable 位置。 会话启动后,可用其他调试器工具来控制执行过程。

前提条件:

  • 使用 configurationName 时,需传递完整的现有运行配置名称;请勿传递测试方法名称或其他派生目标标识符。

  • 使用 filePath + line 时,请指向 runnable 编码位置,如 main 、测试或其他可执行文件入口点。

  • 请先设置至少一个断点,否则程序可能会直接运行到补全而不会暂停。

  • 只可传递 configurationName ,或 filePath 连同 line。 这些模式互斥。

行为:

  • 等待会话创建,最长 timeout

  • 会话开始后应用延迟等待(graceWaitMs )并返回已刷新状态。

  • 可选的启动参数重写(programArgumentsworkingDirectoryenvs )仅针对本次调试生效,不会持久保存。

  • get_run_configurations 为重写支持的权威来源:仅当所选运行配置报告 supportsDynamicLaunchOverrides=true 时才传递重写参数。

  • 仅在确实需要更改本次调试启动值时才传递这些覆写形参。

  • 缺省/空的覆写形参会保持现有运行配置值不变。

  • 对于字符串类重写(programArgumentsworkingDirectory ),缺省/空或空字符串("" )会保持现有值不变。

  • 如需清空本次调试的现有值,可传递仅包含空格的字符串,如 " "

下次调用:

返回带有调试器会话元数据的平面结果,还包含来自启动的执行快照字段:

  • sessionIdnamestatus ,以及可选的 runConfigurationName

  • output 预览和可选的 fullOutputPath

  • 进程已知终止时可选 exitCode

参数:

  • configurationName :要调试的现有运行配置名称。

  • filePath :相对于项目根目录的文件路径。 需与 line 一起提供,以便从编码位置开始调试。

  • linefilePath 的从 1 开始的行号。 需与 filePath 一起提供,勿与 configurationName 混用。

  • timeout :等待调试会话启动的超时毫秒数。 默认值:60000。

  • graceWaitMs :会话开始后用于刷新状态的延迟等待,单位为毫秒。 默认值:2000。

  • programArguments :本次启动可选的程序实参重写。 仅当所选运行配置在 get_run_configurations 中报告 supportsDynamicLaunchOverrides=true 时才可传递。 缺省/空或空字符串会保持现有值不变;仅空格字符串会清空该值。

  • workingDirectory :本次启动可选的工作目录重写。 仅当所选运行配置在 get_run_configurations 中报告 supportsDynamicLaunchOverrides=true 时才可传递。 缺省/空或空字符串会保持现有值不变;仅空格字符串会清空该值。

  • envs :仅本次启动的可选环境变量重写。 仅当所选运行配置在 get_run_configurations 中报告 supportsDynamicLaunchOverrides=true 时才可传递。 缺省/空将保持现有环境变量不变;如传递,则新值与现有环境合并。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

开发者工具包 MCP 工具

查找锁要求用法

分析文本光标所在方法的读写锁用法。 还分析一定深度的调用路径。 使用本工具可识别可能的读写锁要求用法。 返回包含调用路径的锁要求列表。

参数:

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

  • line :光标所在行。

  • column :光标所在列。

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

查找线程要求用法

分析文本光标所在方法的线程约束用法(即该方法是否需要在 UI 线程或后台线程运行)。 还分析一定深度的调用路径。 使用本工具可识别可能的线程要求用法。 返回包含调用路径的线程要求列表。

参数:

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

  • line :光标所在行。

  • column :光标所在列。

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

执行工具

execute_run_configuration

运行当前项目中按名称指定的现有运行配置或基于编码位置 filePath + line 创建的临时运行配置,并等待其在指定超时内执行完毕。 本工具可与 get_run_configurations 返回的配置名称或 get_run_configurations(filePath = ...) 返回的运行点(filePath + line )一同使用。

可选启动参数重写(programArgumentsworkingDirectoryenvs )仅对本次运行生效,且不会被持久保存。 仅在确实需要更改本次运行的配置形参或值时才传递这些覆写形参。 缺省/空的覆写形参会保持现有运行配置值不变。 对于字符串类重写(programArgumentsworkingDirectory ),缺省/空或空字符串("" )会保持现有值不变。 如需清空本次运行的现有值,可传递仅包含空格的字符串,如 " "

只可传递 configurationName ,或 filePath 连同 line。 这些模式互斥。

行为:

  • waitForExit=true 时,最多等待 timeout 毫秒以等待进程终止。 超时后,进程会继续在后台运行,结果中将不包含 exitCode

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

  • fullOutputPath 指向包含完整原始输出的临时文件,并且进程存活时该文件可能持续增长。

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

参数:

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

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

  • linefilePath 的从 1 开始的行号。 需与 filePath 一起提供,勿与 configurationName 混用。

  • timeout :超时(毫秒)。

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

  • programArguments :本次启动可选的程序实参重写。 缺省/空或空字符串会保持现有值不变;仅空格字符串会清空该值。

  • workingDirectory :本次启动可选的工作目录重写。 缺省/空或空字符串会保持现有值不变;仅空格字符串会清空该值。

  • envs :仅本次启动的可选环境变量重写。 缺省/空将保持现有环境变量不变;如传递,则新值与现有环境合并。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

get_run_configurations

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

未使用 filePath 时,此工具会列出项目中已有的运行配置。 结果包含配置名称,并在有可用信息时,包含如程序实参、工作目录、环境变量及 supportsDynamicLaunchOverrides 启动详情。

supportsDynamicLaunchOverridesexecute_run_configuration xdebug_start_debugger_session 中一次性启动重写(programArgumentsworkingDirectoryenvs )的权威功能标志。 仅当该标志为选定配置的 true 时,才传递这些覆写形参。

有了 filePath 后,该工具会在该文件内发现可执行文件入口点(运行点),如测试方法、main 方法或 IDE 显示 Run 装订区域图标的其它可执行文件入口点。 结果包含 filePathrunPoints ,可结合 execute_run_configuration 返回的行号从编码中运行。

参数:

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

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

文件工具

create_new_file

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

参数:

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

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

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

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

find_files_by_glob

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

参数:

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

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

  • addExcluded :是否将已排除/已忽略的文件添加到搜索结果。 文件可能被用户或忽略规则排除。

  • fileCountLimit :返回的最大文件数。

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

find_files_by_name_keyword

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

参数:

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

  • fileCountLimit :返回的最大文件数。

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

get_all_open_file_paths

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

参数:

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

list_directory_tree

以伪图形格式提供指定目录的树形表示,类似于 tree 实用工具。 使用此工具浏览目录或整个项目的内容。 列出目录时,优先使用此工具,而非 lsdir 等命令行实用工具。

参数:

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

  • maxDepth :最大递归深度。

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

open_file_in_editor

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

参数:

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

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

格式设置工具

reformat_file

在 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_filesget_file_problems 等耗时操作前使用,以避免超时。

参数:

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

读取工具

读取文件

读取项目目录中的文件,或项目依赖、其它项目源根中的文件。 可读取 Jar/Jrt 文件内的源文件,并反编译 Jar/Jrt 文件或磁盘上的 Java class 文件。 以编号(从 1 开始)的文本返回行内容。

模式:

  • slice

  • lines

  • line_columns

  • offsets

  • indentation

模式详情:

  • slice 会使用 start_linemax_lines

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

  • line_columns 会用 start_line/start_columnend_line/end_columnend 为排除端点, end_line 默认为 start_line)。

  • offsets 会使用 start_offset/end_offsetend 为排除端点)。

  • indentation 会结合 start_linemax_levels/include_* 使用。

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

参数:

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

  • 模式 :读取模式: 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 :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

重构工具

rename_refactoring

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

与简单的文本查找并替换不同, rename_refactoring 工具是理解代码结构的上下文感知型实用工具。 它会智能更新整个项目中对指定符号的所有引用,确保代码完整性并防止引用失效。 它始终是重命名编程符号的首选方法。

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

参数:

  • 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 :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

终端工具

execute_terminal_command

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

重要功能和限制:

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

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

  • 在指定的超时时间后超时,并发出通知。

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

返回的可能响应:

  • 终端输出(超过 2000 行时将被截断)。

  • 如果命令超时,输出将包含中断通知。

  • 针对各种失败情况的错误消息。

参数:

  • command :要执行的 shell 命令。

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

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

  • timeout :超时(毫秒)。

  • maxLinesCount :返回的最大行数。

  • truncateMode :如何截断文本:从开头、中间、末尾截断,或不截断。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

文本工具

get_file_text_by_path

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

参数:

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

  • truncateMode :如何截断文本:从开头、中间、末尾截断,或不截断。

  • maxLinesCount :返回的最大行数。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

replace_text_in_file

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

返回以下响应之一:

  • ok – 替换成功。

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

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

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

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

参数:

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

  • oldText :要替换的文本。

  • newText :替换文本。

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

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

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

search_in_files_by_regex

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

结果中的匹配项两侧会用 || 字符括起来。 例如: some text ||substring|| text

参数:

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

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

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

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

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

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

search_in_files_by_text

使用 IntelliJ 的搜索引擎在项目中的所有文件中搜索文本子字符串。 优先使用此工具,而非使用命令行工具读取文件,因为其速度更快。

结果中的匹配项两侧会用 || 字符括起来。 例如 some text ||substring|| text

参数:

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

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

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

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

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

  • timeout :超时(毫秒)。

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

VCS 工具

get_repositories

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

参数:

  • projectPath :项目路径。 如已知,请始终提供此值,以减少歧义调用。 如果仅知道当前工作目录,您可以将其用作项目路径。

2026年 7月 14日