Token导航 LogoToken导航TokenDH.com
MCP Mac Setup logo
开发工具未说明官方级别未说明来源级核验

MCP Mac Setup

MCP Server

用于修复在macOS上使用nvm或fnm管理Node/pnpm时,VS Code MCP服务器stdio启动失败的路径问题。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
JavaScriptVS CodemacOS工具VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kylebrodeur

提供方

kylebrodeur

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp-mac设置

修复当Node/pnpm通过以下方式管理时,VS Code MCP服务器stdio在macOS上启动的问题 非易失性存储器fnm.

](https://www.npmjs.com/package/@kylebrodeur/mcp-mac-setup) ![license](LICENSE)

______________________________________________________________________

问题

当您从GUI(Dock、Spotlight、Finder)启动VS Code时,它会作为一个进程启动 环境是从 launchd --不是从你的交互式shell。这意味着不存在任何PATH修改 ~/.zshrc, ~/.bash_profile,或应用类似文件。

工具如 非易失性存储器fnm 在登录时将自己注入到shell会话中:

# typical ~/.zshrc entry for nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

这将写入活动节点版本的 bin/ 目录(例如。 ~/.nvm/versions/node/v22.19.0/bin)上 PATH当VS Code打开一个常规终端时,它会获取你的rc文件,一切正常。但是当VS代码生成一个 MCP服务器作为子stdio进程 确实如此 获取任何shell配置——二进制文件只是 exec()d直接。

结果: pnpm (甚至 node)找不到,并且每个stdio MCP服务器都无法以加密启动 spawn pnpm ENOENTcommand not found 错误。

为什么这通常是一个难以解决的问题

  • 出于安全和可重复性的原因,macOS有意将GUI启动的应用程序环境保持在最低限度。
  • VS代码 不获取shell配置文件 生成非终端子进程时(仅集成 *终端* 通过shell登录技巧完成此操作)。
  • npm管理的全局工具(如 pnpm dlx)依靠a PATH-常驻二进制文件,因此硬代码没有稳定的“默认”位置。
  • 的绝对路径 pnpm 每次使用nvm/fnm切换节点版本时,二进制文件都会发生变化(例如。 ~/.nvm/versions/node/v20.x.x/bin/pnpm~/.nvm/versions/node/v22.x.x/bin/pnpm).

这是整个社区中一个有据可查的痛点:

  • microsoft/vcode#70248 --“终端:shell集成应源于shell配置文件”
  • MCP服务器仓库中用户报告的数十个GitHub问题 spawn pnpm ENOENT 在macOS上使用nvm
  • VS代码文档 MCP服务器 请注意,您可能需要确保运行时在PATH上,但不要为版本管理器用户提供具体的修复

垫片方法

因为路径是特定于版本的,并且会随着时间的推移而变化,所以一次性硬编码是不够的。正确的解决方案是 读取当前nvm/fnm状态、解析实际绝对路径并将其直接写入的脚本 mcp.json --然后,每当切换节点版本时,都会重新运行它。

mcp-mac-setup 正是这样做的:

  1. 检测您的节点版本管理器(fnm、nvm或 PNPM_HOME 回退)。
  2. 解析活动的绝对路径 pnpm 二进制及其 bin/ 目录。
  3. 重写每一个 stdio 服务器入口 ~/.../Code/User/mcp.json 以便:

- command 是通往的绝对路径 pnpm - env.PATH 是一个硬编码字符串,包含活动 bin/ 目录优先

______________________________________________________________________

快速开始

pnpm dlx @kylebrodeur/mcp-mac-setup

然后重新加载VS代码:

Cmd+Shift+P → Developer: Reload Window

用户级别的所有stdio MCP服务器 mcp.json 更新。HTTP/SSE服务器保持不变。

______________________________________________________________________

安装与使用

一次性(无需安装)

# fix all stdio servers
pnpm dlx @kylebrodeur/mcp-mac-setup

# fix a single server
pnpm dlx @kylebrodeur/mcp-mac-setup --server playwright

全局安装

pnpm add -g @kylebrodeur/mcp-mac-setup

# then run any time you switch Node versions
mcp-mac-setup

来源

git clone https://github.com/kylebrodeur/mcp-mac-setup.git
cd mcp-mac-setup
node scripts/resolve-pnpm.js

______________________________________________________________________

CLI选项

标志描述
_(无)_更新用户级别的所有stdio服务器 mcp.json
--server 仅更新单个命名服务器
`--target
`写入自定义文件而不是默认文件 mcp.json
`--workspace
`还可以从工作区读取服务器定义 mcp.json
--install-task安装VS代码 tasks.json 进入当前项目
`--task-dir
`结合 --install-task:针对特定对象 .vscode/ 目录

______________________________________________________________________

VS代码任务

您可以将VS Code任务安装到任何项目中,而不是手动运行CLI:

# adds a task to your current project's .vscode/tasks.json
pnpm dlx @kylebrodeur/mcp-mac-setup --install-task

然后用 Cmd+Shift+P → Tasks: Run Task → Fix MCP pnpm path.

该任务也将提供给直接克隆此仓库的项目(请参阅 .vscode/tasks.json).

______________________________________________________________________

何时重新运行

重新运行 mcp-mac-setup 之后:

  • 使用升级您的Node版本 nvm use / fnm use
  • 重新安装pnpm(例如通过 corepack enable pnpm)
  • 任何移动 pnpm 二进制到新的绝对路径

______________________________________________________________________

运作原理

~/.nvm/versions/node/v22.19.0/bin/
├── node       ← resolved by reading ~/.nvm/alias/default
└── pnpm       ← written into mcp.json as the absolute command

       ┌─────────────────────────────────────┐
       │  ~/.../Code/User/mcp.json (before)  │
       │  "command": "pnpm"                  │  ← not found in GUI PATH
       └─────────────────────────────────────┘
                         │ mcp-mac-setup
                         ▼
       ┌──────────────────────────────────────────────────────────┐
       │  ~/.../Code/User/mcp.json (after)                        │
       │  "command": "/Users/you/.nvm/versions/node/v22.19.0/     │
       │              bin/pnpm"                                    │
       │  "env": { "PATH": "/Users/you/.nvm/…/bin:~/Library/pnpm:│
       │            /usr/local/bin:/usr/bin:/bin" }                │
       └──────────────────────────────────────────────────────────┘

检测优先级:

  1. fnm --检查 ~/.local/share/fnm/aliases/default/bin/
  2. 非易失性存储器 --阅读 ~/.nvm/alias/default 获取活动版本
  3. PNPM_主页 / which pnpm --最后手段回退(使用时发出警告)

______________________________________________________________________

需求

  • macOS(支持Linux,但PATH问题在那里不太常见)
  • 节点≥18
  • nvm或fnm管理您的节点安装(回退适用于其他设置)
  • 支持MCP服务器的VS代码( 或 副驾驶聊天)

______________________________________________________________________

贡献

欢迎在 .

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

JavaScriptVS CodemacOS工具VSCode插件本地部署Node.js工具开发环境配置

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP