Перейти к содержимому

CLI MCP Server

Безопасный сервер для выполнения CLI-команд с валидацией, whitelist и защитой от уязвимостей

Python
143 stars

Описание

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 для запуска.

Информация

Язык
Python
Лицензия
MIT License
GitHub Stars
143

Ссылки