Windows powershell 下安装mcp工具遇到问题

Windows 下安装 iflow-mcp chrome-devtools 的注意事项

在 Windows 系统中安装 chrome-devtools 时,如果使用 PowerShell 可能会遇到以下错误:

iflow mcp add-json -s user 'chrome-devtools' "{\"command\":\"npx\",\"args\":[\"-y\",\"@iflow-mcp/chrome-devtools-mcp\"]}"

Error: Unknown argument: command:\npx,\args:[-y,@iflow-mcp/chrome-devtools-mcp]}

原因说明

这是因为 PowerShell 对引号和特殊字符的处理机制与 CMD 不同。PowerShell 使用更严格的参数解析规则,导致 JSON 字符串无法被正确解析。

解决方案

方案一:修改字符串

感谢用户@Albert_Lsk​:collision: 投稿,二编:

原因是使用了双引号 (") 来包裹 JSON 字符串:

“{"command":"npx","args":["-y","@iflow-mcp/fetch@1.0.2"]}”

解析字符串的时候对"的转译产生混乱,混淆特殊字符。

因此在输入时需要使用单引号 ,删除转义符\

iflow mcp add-json -s user 'fetch' '{"command":"npx","args":["-y","@iflow-mcp/fetch@1.0.2"]}'

方案二:切换安装方式

方式1:使用 CMD

  1. 按 Win + R,输入 cmd 打开命令提示符
  2. 执行以下命令:
iflow mcp add-json -s user "chrome-devtools" "{\"command\":\"npx\",\"args\":[\"-y\",\"@iflow-mcp/chrome-devtools-mcp\"]}"

方式2:使用 WSL

  1. 打开 WSL 终端
  2. 执行相同的命令:
iflow mcp add-json -s user "chrome-devtools" "{\"command\":\"npx\",\"args\":[\"-y\",\"@iflow-mcp/chrome-devtools-mcp\"]}"

以上两种方式都可以正常完成安装。选择你习惯的方式即可。

温馨提示

  • 如果你之前没有安装过 WSL,可以直接使用 CMD 方式
  • 确保已经全局安装了 iflow-mcp
  • 命令执行完成后,可以使用 iflow mcp list 确认是否安装成功

希望这个解决方案能帮助到遇到同样问题的用户!

2 个赞

遇到这个情况了,后面使用wsl解决了这个问题。但耐不住钻牛角尖,一定要使用powershell来配置mcp。

以下是尝试过程,太长不想看可以看总结版。

总结(兼太长不看版本)

  1. 使用 winget install --id Microsoft.PowerShell --source winget 升级到PS 7
  2. 使用单引号 iflow mcp add-json -s user 'fetch' '{"command":"npx","args":["-y","@iflow-mcp/fetch@1.0.2"]}' 进行mcp安装

第一次尝试

我们可以看到 PowerShell 5.1 在处理 “引号嵌套” 时的一个经典问题。 当 PowerShell 5.1 看到这串命令时,它试图自己去解析你内部用来转义的 \" 符号,但在把这个参数传递给外部程序 iflow.exe (一个 Node.js 应用) 时,这个解析过程彻底搞砸了

所以,iflow 工具最终收到的不是一个干净的 JSON 字符串 {"command":...},而是报错里显示的那堆被反斜杠污染的乱码:Unknown argument: command\:\npx\,\args...,它当然不认识。

联想到之前在群里看到有说 PowerShell 开发会遇到乱码, 因为 GBKUTF-8 编码不统一的问题。

第二次尝试

我决定升级一下 PowerShell。

首先先使用$PSVersionTable看一下目前的版本号

发现是 5.1 版本,立马着手升级

在 PS(PowerShell) 里面输入

winget install --id Microsoft.PowerShell --source winget

完成升级之后,按win键,搜索 powershell 7

继续使用心流MCP市场上提供的配置

发现还是不行?!

第三次尝试

后面想到了单引号, 单引号会告诉 PowerShell:“不要解析我里面的任何东西,原封不动地把它交出去。

然后把转义符都去掉了。

iflow mcp add-json -s user 'fetch' '{"command":"npx","args":["-y","@iflow-mcp/fetch@1.0.2"]}'

成功使用 PS 安装 MCP:tada:

2 个赞

我这个iflow mcp add-json -s user 'fetch' '{"command":"npx","args":["-y","@iflow-mcp/fetch@1.0.2"]}'是根据fetch的示例改的呀,请朋友们根据自己需要的mcp来改。

:cow_face:!写这么好确实应该单开一篇了

1 个赞