Craft 在安装 MCP 服务器的过程中,在终端下执行命令时可能会出现 “Shell Integration Unavailable” 的问题,即 shell 集成不可用的问题。本文将针对此类问题,提供问题排查指导,帮助您排查问题。
本文以 VS Code 为例进行介绍,您可以按照如下方法进行排查。
说明:
本文适用于 Windows、MacOS 和 Linux 操作系统。
问题排查一:配置正确的 shell
步骤1:更新 VS Code,确保使用的是最新版本的 VS Code
1. 打开 VS Code。
2. 按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows/Linux)。
3. 输入并选择 “检查更新” 或 “尝试更新” 。
4. 更新后重新启动 VS Code。
步骤2:在 VS Code 中配置使用正确的 shell
1. 打开 VS Code。
2. 按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows/Linux)。
3. 输入并选择“终端:选择默认配置文件”。

4. 选择其中一个支持的 shell,例如:zsh、bash、fish 或 PowerShell。
以 Windows 为例,建议选择 PowerShell 或 Git Bash。

说明:
这里 PowerShell 的版本要求 v7及以上。您可以:
输入并运行
$PSVersionTable.PSVersion
命令检查当前的 PowerShell 版本。如果您的版本低于 v7,请 更新 powershell v7。
默认情况下,出于安全原因,PowerShell 会限制脚本执行。因此,您可能还需要调整 PowerShell 执行策略,使用执行策略来确定哪些脚本可以在您的系统上运行。以下是最常见的策略:
Restricted
:无法运行 PowerShell 脚本(默认设置)。AllSigned
:所有脚本(包括本地脚本)都必须由受信任的发布者签名。RemoteSigned
:本地创建的脚本可以运行,但必须对从 Internet 下载的脚本进行签名。Unrestricted
:没有限制。任何脚本都可以运行,但在运行 Internet 下载的脚本之前,系统会警告您。更改执行策略的步骤:
4.1 以管理员身份打开 PowerShell:按下
Win+X
并选择 “Windows PowerShell(管理员)” 或 “Windows 终端(管理员)”。4.2 通过执行如下命令检查当前执行策略。如果不为
RemoteSigned
,则可以继续下一步进行更改。Get-ExecutionPolicy
4.3 通过执行如下命令,针对当前用户,更改执行策略。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
步骤3:重启 VS Code
重启 VS Code 后,重新开启新的 Craft 会话,或继续上一个会话并尝试再次运行命令,看是否能解决问题。当选择 PowerShell 时,如果问题仍然存在,则可以切换选择 Git Bash 再次尝试。
问题排查二:手动安装 shell 集成
如果您使用的是 PowerShell
1. 在终端中运行如下命令以打开您的 PowerShell 配置文件。
code $Profile
2. 在文件中添加如下内容。
if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --locate-shell-integration-path pwsh)" }
如果您使用的是 zsh
1. 在终端中运行如下命令以打开您的 zsh 配置文件。
code ~/.zshrc
2. 在文件中添加如下内容。
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)"
异常终端输出
如果您看到带有矩形、线条、转义序列或控制字符的异常输出,则可能与终端自定义工具有关,常见的包括:
Powerlevel10k:一个 zsh 主题,用于向提示符添加视觉元素。
Oh My Zsh:管理 zsh 配置的框架。
Fish shell themes。
您可以按照如下步骤进行排查解决:
1. 在 shell 配置文件中暂时禁用这些工具。例如:如果您在 Zsh 中使用 Powerlevel10k,则可以通过打开配置文件(
~/.zshrc
)注释掉文件中的相关行来禁用 Powerlevel10k。# Comment out the Powerlevel10k source line# source /path/to/powerlevel10k/powerlevel10k.zsh-theme
2. 如果问题解决,请逐个重新启用工具,以排查具体导致问题的工具,然后查找 VSCode 的 shell 集成功能兼容的替代工具。