CLI MCP Server
Безопасный сервер для выполнения CLI-команд с валидацией, whitelist и защитой от уязвимостей
Описание
CLI MCP Server — это реализация сервера Model Context Protocol на Python 3.10+ для безопасного выполнения командной строки. Ключевые особенности: строгая валидация команд и флагов, предотвращение traversal путей, таймауты выполнения, ограничение директорий. Подходит для интеграции с LLM-приложениями, такими как Claude Desktop, обеспечивая контролируемый доступ к CLI без риска безопасности. Технологии: MCP протокол, асинхронная обработка, детальная обработка ошибок.
Возможности
Безопасное выполнение команд
Выполнение whitelisted CLI-команд с валидацией флагов и путей внутри ALLOWED_DIR.
Конфигурация безопасности
Настраиваемые переменные для whitelist команд/флагов, таймаутов, длины команд и shell-операторов.
Предотвращение уязвимостей
Блокировка path traversal, shell-инъекций, symlink-атак и превышения лимитов.
Просмотр правил
Инструмент show_security_rules для отображения текущей конфигурации и ограничений.
Асинхронная поддержка
Поддержка async операций и детальной обработки ошибок (таймауты, валидация, execution errors).
Интеграция с MCP
Совместимость с MCP-протоколом для использования в приложениях вроде Claude Desktop.
Установка
Для автоматической установки через Smithery:
npx @smithery/cli install cli-mcp-server --client claude
Для Claude Desktop добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"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"
}
}
}
}
Требования: Python 3.10+, uv для запуска.