mcp-server-commands 是一个 Model Context Protocol(MCP)服务器,其核心用途是让大语言模型能够在主机上运行命令和脚本。
主要能力:
- 提供 runProcess 工具,用于运行进程。目前只有一个命令工具。
- 支持两种互斥的调用方式:
- command_line(字符串):通过系统默认 shell 执行,类似在 bash、fish、pwsh 等中手动输入,支持管道、重定向、变量展开等 shell 特性。
- argv(字符串数组):直接调用可执行文件,argv[0] 是可执行文件,其余是参数,不进行 shell 解释。 两者不能同时传递,工具会根据提供的参数推断是否使用 shell。
- 返回 STDOUT 和 STDERR 文本。
- 可选 stdin 参数:模型可以通过 STDIN 向 fish、bash、zsh、python 等命令传递脚本,也可以通过 cat >> foo/bar.txt 从 stdin 文本创建文件。
使用方式:
- 该服务器通过 STDIO 传输实现。若需要 HTTP,可使用 mcpo 提供兼容 OpenAPI 的 Web 服务器接口,并可与 Open-WebUI 配合。
- 与 Claude Desktop 配合时,需在配置文件中添加服务器配置:MacOS 路径为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 路径为 %APPDATA%/Claude/claude_desktop_config.json。Groq Desktop(beta,macOS)使用 ~/Library/Application Support/groq-desktop-app/settings.json。
- 可使用已发布的 npm 包 mcp-server-commands,也可使用本地构建(仓库检出),本地构建需运行 npm run build。
- 开发时支持自动重建。
- 模型可能不会主动认为自己可以运行命令,可使用系统提示词或提示模板引导模型遵循用户请求,包括直接使用 runProcess 而无需反复确认。
- 若希望模型使用特定 shell,建议在系统提示词中列出,因为模型更关注系统提示中的示例。
- 本地运行模型的场景可考虑使用 Ollama(配合 Open-WebUI)。
- 调试方面,由于 MCP 服务器通过 stdio 通信,调试可能较困难,推荐使用 MCP Inspector(可通过包脚本使用),它会提供 URL 以在浏览器中访问调试工具。
- 日志方面,Claude Desktop 将日志写入 ~/Library/Logs/Claude/mcp-server-mcp-server-commands.log;默认只记录重要消息(如错误),如需更多消息可在配置服务器时向 args 添加 --verbose。日志写入 STDERR,因为 Claude Desktop 会将其路由到日志文件。
适用场景:
- 让 LLM 在主机上执行命令,如 hostname、ls -al、echo "hello world" 等。
- 通过 STDIN 传递脚本给 shell 或 python 执行。
- 通过 stdin 内容创建文件。
- 已测试 Claude Sonnet 3.5 能智能使用 run_process;初步测试显示 Groq Desktop 配合 MCP 与 llama4 模型也有不错结果。
限制与注意事项:
- 这是一个学习性质的练习,本质上是一种“用户请求的工具调用”模板,用于运行命令并将输出传给模型。
- 安全警告:需谨慎对待让该服务器运行的命令。权限由运行服务器的用户决定,不要使用 sudo 运行。在 Claude Desktop 应用中,建议使用 Approve Once(而不是 Allow for This Chat)以便逐条审核命令,若不信任命令则使用 Deny。
- 使用 mcpo 与 open-webui 时需自行审查安全隐患。
- 文档未提供具体的安装命令、构建命令细节、收费或价格信息,暂未提供。