README
🚀 CLI MCP 服务器
本项目是一个安全的模型上下文协议(MCP)服务器实现,专为通过模型上下文协议进行交互设计,可在具备全面安全功能的环境下执行命令。
🚀 快速开始
依赖项安装
使用以下命令安装项目依赖项:
pip install -r requirements.txt
启动服务器
要启动 MCP 服务器,请运行:
python cli_mcp_server.py
✨ 主要特性
- 命令白名单:允许指定可执行的命令及其支持的标志。
- 标志验证:确保使用的标志符合预期。
- 路径遍历预防:防止通过相对路径或符号链接进行恶意操作。
- shell 操作符阻止:禁止使用危险的 shell 操作符,如
;、&等。 - 命令长度限制:防止过长的命令导致的安全风险。
- 执行超时:设置命令的最大允许执行时间,防止长时间未响应的命令。
- 工作目录限制:将命令限制在指定的工作目录内,防止越界访问。
📦 安装指南
服务器可以通过以下环境变量进行配置:
| 环境变量 | 描述 | 默认值 |
|-------------------------|-----------------------------------|----------------------------|
| ALLOWED_COMMANDS | 允许执行的命令列表(逗号分隔) | echo,ls,-h |
| ALLOWED_FLAGS | 允许使用的标志列表(逗号分隔) | -l,-a,--help |
| MAX_COMMAND_LENGTH | 命令的最大允许长度 | 1024 |
| COMMAND_TIMEOUT | 命令的超时时间(秒) | 30 |
| WORKING_DIRECTORY | 默认的工作目录 | 当前工作目录 |
💻 使用示例
可用工具
1. run_command
用于在受控环境中执行命令。支持以下操作:
- 执行允许的命令。
- 验证标志的有效性。
- 确保路径的安全性。
输入格式
{
"command": "echo",
"args": ["hello", "world"],
"flags": ["-n"]
}
2. show_security_rules
显示当前服务器的安全策略配置,包括允许的命令、标志和工作目录限制。
与 Claude 桌面的使用
在 Claude 桌面环境中集成此服务器时,请按照以下步骤进行配置:
开发模式
{
"mcpServers": {
"cli-mcp-server": {
"command": "uv",
"args": ["run", "cli-mcp-server"],
"env": {
"ALLOWED_COMMANDS": "echo,ls,-h",
"ALLOWED_FLAGS": "-l,-a,--help,--version",
"MAX_COMMAND_LENGTH": "1024",
"COMMAND_TIMEOUT": "30"
}
}
}
}
发布模式
{
"mcpServers": {
"cli-mcp-server": {
"command": "uvx",
"args": ["cli-mcp-server"],
"env": {
"ALLOWED_COMMANDS": "echo,ls,-h",
"ALLOWED_FLAGS": "-l,-a,--help,--version",
"MAX_COMMAND_LENGTH": "1024",
"COMMAND_TIMEOUT": "30"
}
}
}
}
📚 详细文档
简介
此 CLI MCP 服务器旨在通过模型上下文协议提供一个安全且功能丰富的命令执行环境。它支持命令白名单、标志验证、路径遍历预防等功能,确保在受控环境中运行命令。
错误处理
服务器提供详细的错误消息以处理以下情况:
- 安全违规(CommandSecurityError)
- 命令超时(CommandTimeoutError)
- 无效命令格式
- 路径安全违规
- 执行失败
错误信息将通过标准输出或环境变量进行报告。
开发
此文档详细介绍了如何配置和使用 MCP 服务器。如需更多信息,请参考源代码或联系开发团队。
微信扫一扫