前言
如果嫌前言啰嗦,可以直接跳转到后文“改用 Powershell ”部分
我没有使用 CMD,哪怕我后面验证发现在 Powershell 中启动 Mcp 服务器,实际上也是在 CMD 中启动的
因为我个人更喜欢更现代的 Powershell 而非 CMD
我一开始是在我的 MacBook 上面使用 Mcp 的,说实话并没有碰到什么奇怪的问题,我只需要配置好必要的终端环境,比如 Nodejs 或者 Python 环境什么的,然后找到自己想用的 Mcp,比如我自己常用的是我们佬友写的 Codelf (个人觉得真的很好用,感谢这位佬友的工作,让我找到了用 Mcp 的动力,不然我可能不会去使用 Mcp 的,非引流),找到一个类似以下形式的 JSON 内容:
{
"mcpServers": {
"codelf": {
"command": "npx",
"args": ["codelf"]
}
}
}
在此引用一下前文提到的 Codelf Mcp 配置文件,仅作为解释使用,如果需要正确使用该 Mcp,请点击前文链接去原帖和项目地址查阅
然后将其中的核心配置文件,也就是:
"codelf": {
"command": "npx",
"args": [
"codelf"
]
}
部分,然后粘贴到我的 Cursor 或者 Roocode 的 Mcp 配置文件中去。稍等片刻(网络通畅情况下,嗯哼,你知道的,有时候启动不成功可能不是你的问题也不是命令的问题 ^_^),就可以看到工作指示灯变成绿色:
然后我就可以愉快地在我的 MacBook 上使用 Mcp 给我带来的便利了……
尝试用 CMD 启动 Mcp
但是有一天,我心血来潮,打算在我的 Windows 电脑上进行 Mcp 的使用。我也在我的 Windows 上配置好了 Nodejs 环境和 Python 环境,然后我还是按照在 Mac 上的逻辑,直接复制粘贴一气呵成,然后就……失败了
我尝试通过搜索引擎得到解决方案(没有用 AI 是因为我不太习惯……):
第一个第二个写的文章感觉起来还不错,然后我依葫芦画瓢,都试了一次:
我已通过
npm install -g codelf
命令全局安装了佬友的包
我的 Windows 电脑上的 Cursor 版本为 0.49.6,Roocode 版本为 v3.15.5,Windows 版本为 11 24H2
Nodejs 通过 Fnm(v1.38.1) 管理,Node 版本为 v20.19.0,npm 版本为 v10.8.2
- 第一篇文章的思路:
{
"mcpServers": {
"codelf": {
"command": "cmd /c npx",
"args": [
"codelf"
]
}
}
}
嗯……失败了:
- 第二篇文章的思路:
{
"mcpServers": {
"codelf": {
"command": "cmd",
"args": [
"/c",
"npx",
"codelf"
]
}
}
}
还是失败了,报错是一样的,而且说实话,我感觉这两个都是同一个命令(其实还有一个版本,是在第二篇的思路的 “/c” 和 “npx” 中间加上一个 “-y” 但是还是不行)
然后我就纳闷了,怎么回事儿
我就自己打开一个 cmd 窗口,试了一下:
好家伙,原来是没有设置好环境变量,怪不得启动不成功
那么到这里其实已经知道了原因了,可是我不用 CMD 的啊,我的开发工具也好,终端的默认启动也好都是 Powershell,而且我看 L 站里面有人说,每次启动 Mcp 服务器会出现一个黑框框?好像是 CMD 的那个进程框框,我也不喜欢……
改用 Powershell
Cursor 配置 Mcp
我已通过(重声明一次,便于跳看文章的佬友理解)
npm install -g codelf
命令全局安装了佬友的包
我的 Windows 电脑上的 Cursor 版本为 0.49.6,Roocode 版本为 v3.15.5,Windows 版本为 11 24H2,Powershell 版本为 v7.5.1(通过 Winget 命令参考官方文档安装的)
Nodejs 通过 Fnm(v1.38.1) 管理,Node 版本为 v20.19.0,npm 版本为 v10.8.2
我们重新审视一下前文最后提及的两个思路的配置文件内容:
// 第一种思路(JSON中不允许有注释,我这里只是方便解释)
{
"mcpServers": {
"codelf": {
"command": "cmd /c npx",
"args": [
"codelf"
]
}
}
}
// 第二种思路(JSON中不允许有注释,我这里只是方便解释)
{
"mcpServers": {
"codelf": {
"command": "cmd",
"args": [
"/c",
"npx",
"codelf"
]
}
}
}
我们可以写出以下配置文件:
{
"mcpServers": {
"codelf": {
"command": "cmd /c pwsh",
"args": [
"-c",
"npx",
"codelf"
]
}
}
}
或者如下形式
{
"mcpServers": {
"codelf": {
"command": "cmd",
"args": [
"/c",
"pwsh",
"-c",
"npx",
"codelf"
]
}
}
}
任选其一粘贴到 Cursor 的 Mcp 配置文件中后刷新:
启动成功,检测是否生效:
成功生效。同时,我并没有弹出什么黑窗口,我不知道是不是我通过 CMD 启动 Powershell 的原因,总之,这很好
Roocode 配置 Mcp
但是在 Roocode 中需要注意一下,似乎第一种形式的写法是不会生效的,总之我复制到 Roocode 的配置文件中后,等待许久都不见加载成功,也没有看到报错
而采用第二种形式,则可以生效:
验证一下:
至此,便成功使用 Powershell 启动本地 Mcp 服务器
其他 Mcp 添加尝试
添加 Context 7
官方 JSON 配置:
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
修改为:
{
"mcpServers": {
"context7": {
"command": "pwsh",
"args": [
"-c",
"npx",
"@upstash/context7-mcp@latest"
]
}
}
}
即可在 Cursor 中正常生效:
Roocode 似乎不可以采用上面的写法,会出现问题:
采用如下写法即可:
{
"mcpServers": {
"context7": {
"command": "cmd",
"args": [
"/c",
"pwsh",
"-c",
"npx",
"@upstash/context7-mcp@latest"
]
}
}
}
我猜测是因为我的 Cursor 已经设置好了启动的终端为我的 Powershell:
所以可以正确识别 pwsh
命令(仅仅个人猜测,没有验证)
但是 Roocode 似乎没有?
总之不是很影响,如果不想出现这样的问题,可以统一采用第二种写法也就是 Roocode 可以识别的写法即可
结语
以上就是我自己在 Windows 上面配置和使用 Mcp 的经验
限于时间和精力,以及我自己的使用情况,我仅仅粗略地分享了两种 Mcp 服务的配置方式,至于其他的,比如使用 uvx
的,我便没有尝试了,但是我个人觉得,方式应该是差不多的
然后补充一下我启动 Mcp 的时候没有出现黑框框,我不知道是不是个例,但是确实没有任何窗口弹出……反而用 CMD 命令的时候确实弹出来了,但是因为加载环境失败直接自己关闭了……总之没有弹出额外的窗口确实挺好的
再次感谢开发 Codelf 的佬友(非引流,无利益关系,纯引用),谢谢你的开源让我能够用上这个 Mcp,我很喜欢这个(因为 Cursor 有时候降智和卡上下文让我很无语……这个工具让 Cursor 的回答和改动至少像那么一回事儿了)
最后限于个人水平,文章内容如有不妥或者缺漏或者其他问题,欢迎佬友们的指正
为什么我找不到那个看起来像是喝酒的小表情???
我觉得那个表情好有趣诶!
找不到算了……粘一张截图放到最后嘿嘿