DataGrip 2026.2 Help

MCP 服务器

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

启用 MCP 服务器插件

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

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

  2. 打开 已安装 选项卡,找到 MCP Server 插件,并选中插件名称旁边的复选框。

外部客户端设置

对于 Claude Code、 Claude Desktop、 光标、 VS Code、 Codex 和 Windsurf 等外部客户端,可自动完成配置:

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

  2. 点击 启用 MCP Server。

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

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

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

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

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

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

无需确认执行操作

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

要启用此模式:

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

  2. 在 命令执行 部分,启用 在无需确认的情况下运行 Shell 命令或运行配置(勇敢模式) 设置。

  3. 点击 Apply。

支持的工具

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

您可以在 设置 | 工具 | MCP Server | Exposed Tools 查看并管理可用工具的完整列表。 在此页面,您可以根据工作流和偏好启用或禁用特定工具。

以下是 MCP 服务器提供的工具列表。

特定数据库工具

要确保 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。

其他工具},{

其他支持的工具如下:

分析工具

构建项目

触发项目或指定文件的构建,等待完成,并返回构建错误。 使用该工具构建项目或编译文件,并获取有关编译错误和警告的详细信息。

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

参数:

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

开发者套件 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 )进行操作。

可选的启动重写(programArguments、 workingDirectory、 envs )仅适用于本次运行,不会被持久化。 除非需要更改此运行的启动值,否则不要传递这些重写参数。 缺失/null 的重写参数会保持现有运行配置值不变。 对于字符串重写(programArguments、 workingDirectory ),如果缺失/null 或为空字符串("" ),将保留现有值不变。 传递仅包含空白的字符串,如 " " ,以清除本次启动的现有值。

可传递 configurationName 或 filePath 与 line 一起。 这些模式互斥。

行为:

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

get_run_configurations

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

未提供 filePath 时,该工具会列出项目中现有的运行配置。 结果包括配置名称以及(如有)程序参数、工作目录、环境变量和 supportsDynamicLaunchOverrides 等启动详情。

supportsDynamicLaunchOverrides 是 execute_run_configuration 和 xdebug_start_debugger_session 中一次性启动重写(programArguments、 workingDirectory、 envs )的事实来源能力标志。 仅当该标志在所选配置下为 true 时,才传递这些重写参数。

带有 filePath 时,该工具会在该文件中发现可执行入口点(运行点),如测试方法、main 方法或 IDE 显示运行标记的其他可执行入口点。 结果包含 filePath 和 runPoints ;使用返回的行号和 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 实用工具。 使用此工具浏览目录或整个项目的内容。 列出目录时,优先使用此工具,而非 ls 或 dir 等命令行实用工具。

参数:

  • 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

返回目标语言的 Inspection KTS API 文档。 提供可在编写 inspection.kts 文件时使用的类和函数。

参数:

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

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

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

生成检查 kts 示例

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

参数:

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

参数:

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

读取工具

读取文件

读取项目目录中的文件,或来自任意项目依赖项或其他项目源根的文件。 可读取 Jar/Jrt 文件内的源代码,并可反编译 Jar/Jrt 文件或磁盘上的 Java 类文件。 以文本形式返回带编号的行(以 1 为起始索引)。

模式:

  • slice

  • lines

  • line_columns

  • offsets

  • indentation

模式详情:

  • slice 使用 start_line 和 max_lines。

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

  • line_columns 使用 start_line/start_column 以及 end_line/end_column (end 为不包含; end_line 默认为 start_line)。

  • offsets 使用 start_offset/end_offset (end 为不包含端点)。

  • indentation 使用 start_line ,并带有 max_levels/include_*。

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

参数:

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

  • mode :读取模式: slice、 lines、 line_columns、 offsets 或 indentation。

  • start_line :以 1 为基准的起始读取行号。

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

  • end_line: lines/line_columns 模式下以 1 为起始索引的结束行(lines 为包含, line_columns 为不包含)。

  • start_column: line_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日