一个具有全面安全特性的安全模型上下文协议(MCP)服务器实现,用于执行受控的命令行操作。
<a href="https://glama.ai/mcp/servers/q89277vzl1"><img width="380" height="200" src="https://gips0.baidu.com/it/u=2686029386,3011951680&fm=3081&app=3081&f=PNG?w=760&h=400" /></a>
此MCP服务器通过严格的验证措施实现了安全的命令行执行,包括命令白名单、路径验证和执行控制。非常适合为LLM应用程序提供受控的CLI访问同时保持安全性。
使用环境变量配置服务器:
| 变量 | 描述 | 默认值 |
|---|---|---|
ALLOWED_DIR | 命令执行的基本目录(必需) | None (必需) |
ALLOWED_COMMANDS | 允许的命令的逗号分隔列表或'all' | ls,cat,pwd |
ALLOWED_FLAGS | 允许的标志的逗号分隔列表或'all' | -l,-a,--help |
MAX_COMMAND_LENGTH | 最大命令字符串长度 | 1024 |
COMMAND_TIMEOUT | 命令执行超时(秒) | 30 |
ALLOW_SHELL_OPERATORS | 是否允许壳操作符(&&, ||, |, >等) | false |
注意:将ALLOWED_COMMANDS或ALLOWED_FLAGS设置为'all'将允许任何命令或标志。
通过Smithery自动安装CLI MCP Server到Claude Desktop:
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/目录下创建源码和轮子分布。
发布到PyPI:
uv publish --token {{YOUR_PYPI_API_TOKEN}}
由于MCP服务器通过标准I/O运行,调试可能会很困难。我们强烈建议使用MCP Inspector以获得最佳调试体验。
你可以通过以下命令使用npm启动MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory {{your source code local directory}}/cli-mcp-server run cli-mcp-server
启动后,Inspector会显示一个可以在浏览器中访问的URL以开始调试。
本项目根据MIT许可证授权 - 详情见LICENSE文件。
如需更多信息或支持,请在项目仓库中打开问题。