MCP 服务器
从版本 2025.2 起,PyCharm 集成了 MCP server ,允许 Claude Desktop、Cursor、VS Code 等外部客户端访问 IDE 提供的工具。 这使用户能够在不离开所选应用程序的情况下控制并与 JetBrains IDE 进行交互。
外部客户端设置
对于 Claude Code、 Claude Desktop、 Cursor、 VS Code 和 Windsurf 等外部客户端,可自动完成配置:
在主菜单中,转到 。
点击 启用 MCP Server。
在 客户端自动配置 部分中,为每个要配置用于 MCP server 的客户端点击 自动配置。 此操作将自动更新其 JSON 配置。

重新启动客户端以使配置生效。
如果您希望从其他客户端连接到 MCP server,您需要进行手动配置:
在 手动客户端配置 部分,根据连接类型点击 复制 SSE 配置 或 复制 Stdio 配置。

将复制的配置粘贴到客户端的设置或配置文件中。
重新启动客户端以使配置生效。
无需确认直接执行操作
MCP server 允许已连接的外部客户端在 IDE 中执行终端命令或运行配置,而无需每次都请求用户确认。
要启用此模式:
在主菜单中,转到 。
在 命令执行 部分,启用 运行 shell 命令或运行配置而无需确认(勇敢模式) 设置。
点击 应用。
支持的工具
以下是 MCP server 提供的工具列表:
- 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工具。 使用此工具浏览目录或整个项目的内容。 优先使用此工具,而不是如ls或dir等命令行工具进行目录列出。参数:
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:项目路径。 如果已知该值,请务必提供,以减少调用歧义。 如果仅知道当前工作目录,您可以将其用作项目路径。