使用说明
项目简介
'shell-command-mcp' 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于提供 shell 命令执行 功能。它允许 MCP 客户端(如 LLM 应用)通过标准化的 MCP 协议,安全地调用服务器端执行预设的 shell 命令,从而扩展 LLM 的能力边界,使其能够与底层操作系统进行交互,完成例如文件操作、系统信息查询等任务。
主要功能点
- Shell 命令执行: 提供了 'execute_command' 工具,客户端可以调用此工具并指定要执行的 shell 命令。
- 命令白名单机制: 通过 'ALLOWED_COMMANDS' 环境变量,服务器管理员可以配置允许执行的 shell 命令白名单,增强安全性。支持使用 '*' 通配符允许所有命令,但强烈建议仅在信任的环境中使用。
- 标准 Stdio 传输: 使用标准的 stdio (标准输入/输出) 作为 MCP 服务器的传输协议,简化部署和集成。
- 详细执行结果: 执行命令后,服务器会返回详细的结果,包括命令的退出代码、标准输出 (stdout) 和标准错误 (stderr),方便客户端进行后续处理。
安装步骤
该项目无需复杂的安装步骤。由于它是一个 Node.js 项目,您可以通过 'npx' 命令直接运行,无需全局安装。
服务器配置
为了让 MCP 客户端能够连接并使用 'shell-command-mcp' 服务器,客户端需要进行如下配置。配置信息通常以 JSON 格式提供给 MCP 客户端,用于描述可用的 MCP 服务器。
{ "mcpServers": { "shell-command": { "command": "npx", "args": ["-y", "shell-command-mcp"], "env": { "ALLOWED_COMMANDS": "ls,pwd,echo" // 可选:配置允许执行的命令白名单,用逗号分隔。例如 "ls,pwd,echo"。 谨慎使用 "*",允许所有命令,存在安全风险。 } } } }
配置参数说明:
- 'server name' (JSON key): 'shell-command',服务器名称,客户端用此名称引用该服务器。
- 'command': 'npx',启动服务器的命令。'npx' 允许您运行未全局安装的 npm 包。
- 'args': '["-y", "shell-command-mcp"]',传递给 'npx' 命令的参数。'-y' 参数用于跳过 'npx' 的安装确认提示,'shell-command-mcp' 是要执行的 npm 包名。
- 'env': 环境变量配置。
- 'ALLOWED_COMMANDS': 重要安全配置,用于设置允许执行的 shell 命令白名单。请根据实际需要配置允许的命令,并用逗号分隔。例如,'"ls,pwd,echo"' 只允许 'ls', 'pwd', 'echo' 这三个命令。 如果需要允许所有命令,可以设置为 '"*"', 但这会带来安全风险,请谨慎使用。 如果不设置此环境变量,默认情况下可能不允许任何命令 (具体行为请参考服务器代码)。
请注意: 'ALLOWED_COMMANDS' 的配置至关重要,它直接关系到服务器的安全性。请务必仔细配置允许执行的命令,避免开放不必要的命令执行权限。
基本使用方法
配置完成后,MCP 客户端可以通过 MCP 协议向 'shell-command-mcp' 服务器发送请求,调用 'execute_command' 工具来执行 shell 命令。客户端需要提供 'command' 参数,指定要执行的具体命令,例如:
{ "jsonrpc": "2.0", "method": "tool/invoke", "params": { "tool_name": "execute_command", "arguments": { "command": "ls -l" } }, "id": "1" }
服务器会执行 'ls -l' 命令,并将执行结果以 MCP 响应的形式返回给客户端。
信息
分类
桌面与硬件