You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL Ubuntu环境下VS Code无法启动MCP服务器求助

解决WSL Ubuntu下VS Code连接MCP服务器时的Error spawn npx ENOENT错误

问题背景

近期MCP服务器正式发布后,在WSL Ubuntu环境的VS Code中尝试连接多台MCP服务器时,遇到错误:

2025-07-18 14:25:50.616 [info] Connection state: Error spawn npx ENOENT

已完成以下排查但问题未解决:

  • 确认Shell配置正确
  • npx已安装且终端中可正常访问
  • 拥有命令执行权限
  • 修改VS Code settings.json配置,确保Shell加载~/.bashrc并将nvm管理的Node路径加入环境变量
  • 使用包装脚本~/run-npx.sh加载nvm后执行npx
  • 通过sudo apt install node npm全局安装Node.js和npm

相关配置

  1. VS Code settings.json调整内容:
"terminal.integrated.profiles.linux": {
    "bash": {
      "path": "bash",
      "args": ["-c", "source ~/.bashrc; exec bash"]
    }
  },
  "terminal.integrated.defaultProfile.linux": "bash",
  "terminal.integrated.env.linux": {
    "PATH": "/home/{user}/.nvm/versions/node/v24.2.0/bin:${env:PATH}",
    "NVM_DIR": "/home/{user}/.nvm"
  },
  1. mcp.json示例配置:
{
  "servers": {
    "context7": {
            "type": "stdio",
            "command": "~/run-npx.sh",
            "args": [
                "-y",
                "@upstash/context7-mcp@latest"
            ],
            "gallery": true
        }
    }
}

可能的解决方案

1. 让MCP扩展读取正确的环境变量

VS Code终端集成的环境变量和扩展进程的环境变量是分离的,你修改的terminal.integrated.env.linux仅作用于内置终端。可在settings.json中添加自动化Shell配置,让扩展进程加载登录Shell的环境变量:

"terminal.integrated.automationShell.linux": "/bin/bash",
"terminal.integrated.automationShellArgs.linux": ["-l", "-c"]

-l参数会让bash以登录Shell模式启动,自动加载~/.bashrc或~/.profile中的环境变量配置。

2. 使用npx绝对路径替代相对路径

直接在mcp.json中使用npx的绝对路径,避免路径解析问题:

  • 先在WSL终端执行which npx获取绝对路径,比如输出/home/{user}/.nvm/versions/node/v24.2.0/bin/npx
  • 修改mcp.json的command字段为该绝对路径:
"command": "/home/{user}/.nvm/versions/node/v24.2.0/bin/npx"

3. 修复包装脚本的权限与路径

确保run-npx.sh有可执行权限:

chmod +x ~/run-npx.sh

脚本内容需正确加载nvm并转发参数,示例:

#!/bin/bash
source ~/.nvm/nvm.sh
npx "$@"

同时避免使用~/路径前缀,改用绝对路径配置到mcp.json:

"command": "/home/{user}/run-npx.sh"

4. 重启VS Code与WSL会话

环境变量修改可能需要重启生效:

  • 完全关闭VS Code(包括所有窗口)
  • 在WSL终端执行wsl --shutdown重启会话,再重新打开VS Code尝试连接

5. 检查Node.js版本兼容性

确认@upstash/context7-mcp支持当前Node.js v24.2.0版本,可尝试切换到LTS版本(如v20.x):

nvm install 20
nvm use 20

同步更新settings.json中的PATH路径为v20版本的路径后重试。

内容的提问来源于stack exchange,提问作者spencerready

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 16:35:09