PyCharm 2026.2 Help

MCP 服务器

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

启用 MCP 服务器插件

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

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

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

外部客户端设置

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

  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 服务器 | Exposed Tools 查看和管理所有可用工具的完整列表。 您可以在此页面根据工作流和偏好启用或禁用特定工具。

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

分析工具

build_project

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

编辑后需使用此工具以验证编辑内容是否有效。

参数:

  • 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 agent 保证严格的只读访问,请使用权限受限(只读)的数据库用户,并将数据源配置为使用该用户。

get_database_object_description

检索特定架构中数据库对象(列、类型、键、索引)的结构,并以分层文本形式表示。

发生歧义时,返回所有相关对象的定义。

参数:

  • 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 工具

find_lock_requirement_usages

分析位于文本光标处方法的读/写锁用法。 还会分析部分深度的调用路径。 使用此工具识别可能的读/写锁要求用法。 返回带有调用路径的锁要求列表。

参数:

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

  • line :光标所在的行。

  • column :光标所在的列。

  • timeout :超时时间(毫秒)。

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

find_threading_requirements_usages

分析位于文本光标处方法的线程约束用法(即该方法是否需要在 UI 线程或后台线程运行)。 还会分析部分深度的调用路径。 使用此工具识别可能的线程要求用法。 返回带有调用路径的线程要求列表。

参数:

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

  • line :光标所在的行。

  • column :光标所在的列。

  • timeout :超时时间(毫秒)。

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

执行工具

execute_run_configuration

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

可选的启动重写参数(programArgumentsworkingDirectoryenvs )仅针对本次运行应用,且不会被持久化。 除非确需更改本次运行的启动配置值,否则请勿传递这些重写参数。 缺失/空值的重写参数会保持现有运行配置值不变。 对于字符串重写(programArgumentsworkingDirectory ),缺失/空值或空字符串("" )保持现有值不变。 传递仅包含空白字符的字符串,如 " " ,可清除此启动的现有值。

传递 configurationName ,或与 line 一同传递 filePath。 这些模式互斥。

行为:

  • 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

supportsDynamicLaunchOverrides 是一次性启动重写(programArgumentsworkingDirectoryenvs )在 execute_run_configuration xdebug_start_debugger_session 中的唯一能力标志。 只有当该标志为 true 时,才可为所选配置传递这些重写参数。

指定 filePath 时,此工具会发现该文件中的可执行入口(运行点),如测试方法、主方法或 IDE 显示运行按钮的其他可执行入口。 结果包含 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 中重新格式化指定文件。 使用此工具对指定路径的文件应用代码格式化。

参数:

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

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

检查生成器 MCP 工具

validate_inspection_kts

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

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

返回整体成功、每个示例结果及统计汇总。

参数:

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

  • pathToSpecification :包含样例规范的路径,用于校验。

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

检查 KTS MCP 工具

generate_inspection_kts_api

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

参数:

  • language :目标语言:“Java” 或 “Kotlin”。

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

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

generate_inspection_kts_examples

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

参数:

  • language :目标语言:“Java” 或 “Kotlin”。

  • includeAdditionalExamples :如为 true,除了模板还包含其他精选示例。

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

generate_psi_tree

为给定 Java 或 Kotlin 代码创建 PSI 树,并返回缩进文本。 使用此工具可帮助了解编写检查时代码片段的 PSI 结构。 输出展示元素类型及其层次结构,并指示何时需要 node.children()

参数:

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

  • language :目标语言:“Java” 或 “Kotlin”。

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

run_inspection_kts

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

参数:

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

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

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

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

单仓库开发者套件 MCP 工具

get_project_status

检查项目是否已准备好进行代码分析操作。 返回索引和扫描状态。 在执行如 lint_filesget_file_problems 这类繁重操作前使用,以避免超时。

参数:

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

读取工具

read_file

读取项目目录或任何项目依赖或其他项目源根中的文件。 可以读取 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_columnend 排除端点; end_line 默认为 start_line)。

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

  • indentation 使用 start_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 :offsets 模式的基于 0 的起始偏移量(需指定 end_offset)。

  • end_offset :offsets 模式的基于 0 的结束偏移量(排除端点)。

  • context_lines :要在区间每一侧包含的上下文行数。

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

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

  • include_header :缩进模式:包含锚点正上方的头部注释/注解。

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

重构工具

rename_refactoring

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

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

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

参数:

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

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

  • newName :符号的新名称。

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

运行 Notebook 工具

runNotebookCell

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

搜索工具

search_file

在项目中通过全局模式搜索文件。 需要使用全局语法匹配文件路径时请使用此工具。

全局模式相对于项目根目录。

示例:

  • "**/*.kt"

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

  • "build.gradle.kts"

不包含 '/' 的模式视为 "**/pattern"paths 是相对于项目根目录的可选额外全局筛选器。

参数:

  • q :要搜索的 glob 模式。

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

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

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

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

search_regex

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

路径是相对于项目根目录的全局模式。

示例:

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

  • ["**/*.kt"]

  • ["foo/"]

参数:

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

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

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

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

search_symbol

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

路径是相对于项目根目录的全局模式。

默认仅搜索项目符号。 如果没有找到合适的结果,请使用 include_external=true 重新尝试,以同时搜索 SDK 和库符号。

参数:

  • q :符号查询文本。

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

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

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

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

search_text

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

路径是相对于项目根目录的全局模式。

示例:

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

  • ["**/*.kt"]

  • ["foo/"]

参数:

  • q :要搜索的文本。

  • paths :可选的项目相对全局模式列表,用于筛选结果。 支持 ! 排除。 结尾的 / 会扩展为 **。 不包含 / 的模式视为 **/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日