CLI MCP 服务器
安全的模型上下文协议 (MCP) 服务器实现,用于执行具有全面安全功能的受控命令行操作。
目录
概述
此 MCP 服务器支持安全的命令行执行,并具备强大的安全措施,包括命令白名单、路径验证和执行控制。非常适合在保证安全性的同时,为 LLM 应用程序提供受控的 CLI 访问。
特征
- 🔒 通过严格验证来确保命令执行的安全
- ⚙️ 可配置命令和标志白名单,带有“全部”选项
- 🛡️ 路径遍历预防和验证
- 🚫 Shell 运算符注入保护
- ⏱️ 执行超时和长度限制
- 📝 详细的错误报告
- 🔄 异步操作支持
- 🎯 工作目录限制和验证
配置
使用环境变量配置服务器:
多变的 | 描述 | 默认 |
---|---|---|
ALLOWED_DIR | 命令执行的基本目录(必需) | 无(必填) |
ALLOWED_COMMANDS | 允许的命令的逗号分隔列表或“全部” | ls,cat,pwd |
ALLOWED_FLAGS | 允许标志的逗号分隔列表或“全部” | -l,-a,--help |
MAX_COMMAND_LENGTH | 最大命令字符串长度 | 1024 |
COMMAND_TIMEOUT | 命令执行超时(秒) | 30 |
ALLOW_SHELL_OPERATORS | 允许 shell 运算符(&&、 |
注意:将ALLOWED_COMMANDS
或ALLOWED_FLAGS
设置为“all”将分别允许任何命令或标志。
安装
要通过Smithery自动为 Claude Desktop 安装 CLI MCP 服务器:
可用工具
运行命令
在允许的目录内执行白名单中的 CLI 命令。
输入模式:
安全说明:
- Shell 运算符(&&、|、>、>>)默认不受支持,但可以通过
ALLOW_SHELL_OPERATORS=true
启用 - 除非 ALLOWED_COMMANDS='all',否则命令必须列入白名单
- 除非 ALLOWED_FLAGS='all',否则必须将标志列入白名单
- 所有路径均经过验证,位于 ALLOWED_DIR 范围内
显示安全规则
显示当前的安全配置和限制,包括:
- 工作目录
- 允许的命令
- 允许的标志
- 安全限制(最大命令长度和超时)
与 Claude Desktop 一起使用
添加到您的~/Library/Application\ Support/Claude/claude_desktop_config.json
:
开发/未发布的服务器配置
已发布的服务器配置
如果它不起作用或不显示在 UI 中,请通过
uv clean
清除缓存。
安全功能
- ✅ 使用“全部”选项执行白名单命令
- ✅ 使用“全部”选项标记验证
- ✅ 路径遍历预防和规范化
- ✅ Shell 操作员阻止(通过
ALLOW_SHELL_OPERATORS=true
选择加入支持) - ✅ 命令长度限制
- ✅ 执行超时
- ✅ 工作目录限制
- ✅ 符号链接解析和验证
错误处理
服务器提供以下详细的错误消息:
- 安全违规(CommandSecurityError)
- 命令超时(CommandTimeoutError)
- 无效的命令格式
- 路径安全违规
- 执行失败(CommandExecutionError)
- 常规命令错误(CommandError)
发展
先决条件
- Python 3.10+
- MCP 协议库
构建和发布
准备分发包:
- 同步依赖项并更新锁文件:
- 构建软件包分发版:
这将在
dist/
目录中创建源和轮子分布。 - 发布到 PyPI:
调试
由于 MCP 服务器通过 stdio 运行,调试起来可能比较困难。为了获得最佳调试体验,我们强烈建议使用MCP Inspector 。
您可以使用以下命令通过npm
启动 MCP Inspector:
启动后,检查器将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
如需更多信息或支持,请在项目存储库上打开一个问题。
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
具有安全执行和可定制安全策略的命令行界面
Related MCP Servers
- AsecurityAlicenseAqualityA secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.Last updated -174PythonMIT License
- AsecurityAlicenseAqualityA secure server for executing terminal commands within predefined paths, allowing safe interaction by Large Language Models with operating system environments.Last updated -1113JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that provides secure command-line access to Windows systems, allowing MCP clients like Claude Desktop to safely execute commands in PowerShell, CMD, and Git Bash shells with configurable security controls.Last updated -9350105JavaScriptMIT License
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -1121JavaScriptMIT License