一个安全的模型上下文协议(MCP)服务器实现,用于执行受控的命令行操作,具备全面的安全特性。
该 MCP 服务器支持安全的命令行执行,具备强大的安全措施,包括命令白名单、路径验证和执行控制。非常适合为 LLM 应用程序提供受控的 CLI 访问,同时保持安全性。
使用环境变量配置服务器:
变量 | 描述 | 默认值 |
---|---|---|
ALLOWED_DIR |
命令执行的基础目录(必需) | 无(必需) |
ALLOWED_COMMANDS |
允许的命令列表,以逗号分隔,或 'all' | ls,cat,pwd |
ALLOWED_FLAGS |
允许的标志列表,以逗号分隔,或 'all' | -l,-a,--help |
MAX_COMMAND_LENGTH |
命令字符串的最大长度 | 1024 |
COMMAND_TIMEOUT |
命令执行超时时间(秒) | 30 |
ALLOW_SHELL_OPERATORS |
允许 Shell 操作符(&&, ||, |, > 等) | false |
注意:将 ALLOWED_COMMANDS
或 ALLOWED_FLAGS
设置为 'all' 将允许任何命令或标志。
通过 Smithery 自动为 Claude Desktop 安装 CLI MCP 服务器:
npx @smithery/cli install cli-mcp-server --client claude
在允许的目录内执行白名单中的 CLI 命令。
输入模式:
{
"command": {
"type": "string",
"description": "要执行的单个命令(例如 'ls -l' 或 'cat file.txt')"
}
}

安全说明:
ALLOW_SHELL_OPERATORS=true
启用ALLOWED_COMMANDS='all'
ALLOWED_FLAGS='all'
ALLOWED_DIR
内进行验证显示当前的安全配置和限制,包括:
添加到 ~/Library/Application\ Support/Claude/claude_desktop_config.json
:
开发/未发布服务器配置
{
"mcpServers": {
"cli-mcp-server": {
"command": "uv",
"args": [
"--directory",
"<path/to/the/repo>/cli-mcp-server",
"run",
"cli-mcp-server"
],
"env": {
"ALLOWED_DIR": "</your/desired/dir>",
"ALLOWED_COMMANDS": "ls,cat,pwd,echo",
"ALLOWED_FLAGS": "-l,-a,--help,--version",
"MAX_COMMAND_LENGTH": "1024",
"COMMAND_TIMEOUT": "30",
"ALLOW_SHELL_OPERATORS": "false"
}
}
}
}

已发布服务器配置
{
"mcpServers": {
"cli-mcp-server": {
"command": "uvx",
"args": [
"cli-mcp-server"
],
"env": {
"ALLOWED_DIR": "</your/desired/dir>",
"ALLOWED_COMMANDS": "ls,cat,pwd,echo",
"ALLOWED_FLAGS": "-l,-a,--help,--version",
"MAX_COMMAND_LENGTH": "1024",
"COMMAND_TIMEOUT": "30",
"ALLOW_SHELL_OPERATORS": "false"
}
}
}
}

如果无法工作或在 UI 中不显示,请通过
uv clean
清除缓存。
ALLOW_SHELL_OPERATORS=true
选择启用)服务器提供详细的错误信息,包括:
准备分发包:
同步依赖并更新锁文件:
uv sync

构建包分发:
uv build
这将在
dist/
目录中创建源代码和 wheel 分发。
发布到 PyPI:
uv publish --token {{YOUR_PYPI_API_TOKEN}}
由于 MCP 服务器通过 stdio 运行,调试可能具有挑战性。为了获得最佳调试体验,强烈建议使用 MCP 检查器。
您可以通过 npm
使用以下命令启动 MCP 检查器:
npx @modelcontextprotocol/inspector uv --directory {{your source code local directory}}/cli-mcp-server run cli-mcp-server

启动后,检查器将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。
本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
如需更多信息或支持,请在项目仓库中提交问题。