PyCharm 2025.3 Help

MCP 服务器

2025.2 版本开始, PyCharm 自带集成的 MCP 服务器 ,允许 Claude Desktop、Cursor、VS Code 等外部客户端访问由 IDE 提供的工具。 这使用户无需离开其首选应用即可控制并与 JetBrains IDE 交互。

外部客户端设置

对于 Claude CodeClaude DesktopCursorVS CodeWindsurf 等外部客户端,可以自动执行配置:

  1. 在主菜单中,转到 设置 | 工具 | MCP 服务器

  2. 点击 启用 MCP 服务器

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

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

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

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

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

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

无需确认执行操作

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

要启用此模式:

  1. 在主菜单中,转到 设置 | 工具 | MCP 服务器

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

  3. 点击 应用

支持的工具

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

execute_run_configuration

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

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

参数:

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

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

  • maxLinesCount :返回的最大行数。

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

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

get_run_configurations

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

在可用时,该工具还会提供命令行、工作目录和环境变量等附加信息。

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

参数:

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

get_file_problems

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

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

参数:

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

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

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

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

get_project_dependencies

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

参数:

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

get_project_modules

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

参数:

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

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

get_symbol_info

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

如果该位置引用某个符号,工具将返回带有该符号声明的代码片段(如果可用)。 使用此工具了解符号的声明、语义和位置。

参数:

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

  • line :从 1 开始的行号。

  • column :从 1 开始的列号。

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

rename_refactoring

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

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

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

参数:

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

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

  • newName :符号的新名称,需精确匹配并区分大小写(例如, fetchUserData)。

  • 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_repositories

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

参数:

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

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