# VK Cloud MCP Server Сервер Model Context Protocol (MCP) для VK Cloud — это решение, которое предоставляет возможность управлять облачной инфраструктурой с помощью LLM через стандартизированный интерфейс. Позволяет ИИ-ассистентам и другим инструментам взаимодействовать с ресурсами VK Cloud. ВАЖНАЯ ИНФОРМАЦИЯ НЕОФИЦИАЛЬНЫЙ ПРОЕКТ: Это неофициальная реализация сервера Model Context Protocol (MCP) для VK Cloud. Данный проект не связан с VK Cloud, не поддерживается и не одобрен ими. Он был разработан независимо в качестве экспериментального проекта выходного дня для исследования возможностей MCP. Вопросы, предложения и вклад в проект приветствуются. Пожалуйста, свяжитесь со мной через Telegram: @volinski. ## Возможности Данный MCP сервер предоставляет следующие операции для VK Cloud: ### Операции с виртуальными машинами (VM) - Просмотр списка всех VM в проекте - Запуск остановленной VM - Остановка работающей VM - Перезапуск VM (мягкая или жесткая перезагрузка) - Создание новой VM с различными опциями конфигурации - Просмотр списка типов VM (flavors) с возможностью фильтрации - Просмотр списка образов VM с расширенными возможностями фильтрации ### Сетевые операции - Просмотр списка всех сетей в проекте - Просмотр списка всех групп безопасности в проекте ### Операции с хранилищем - Просмотр списка всех дисков (томов) с возможностью фильтрации - Создание загрузочных томов из образов ### Операции с доступом - Просмотр списка всех SSH-ключей в проекте ## Требования - Python 3.8 или выше - Активная учетная запись VK Cloud с доступом к API ## Установка #### Create virtual environment python -m venv vk-cloud-mcp-venv #### Activate the virtual environment On Windows: vk-cloud-mcp-venv\Scripts\activate On macOS/Linux: source vk-cloud-mcp-venv/bin/activate #### Install dependencies pip install -r requirements.txt 1. Создайте файл конфигурации (`config.yaml`) с вашими учетными данными VK Cloud. Все данные для заполнения можно найти в разделе "Настройки проекта" -> "Доступ по API" https://cloud.vk.com/docs/ru/tools-for-using-services/api/rest-api/enable-api ```yaml vkcloud: auth_url: "https://infra.mail.ru:35357/v3/" username: "your-username" password: "your-password" project_id: "your-project-id" user_domain_name: "users" project_domain_name: "Default" destructive_operations: false # Установите true для разрешения создания/запуска/остановки VM compute_endpoint: "https://infra.mail.ru:8774/v2.1" image_endpoint: "https://infra.mail.ru:9292/v2" block_storage_endpoint: "https://public.infra.mail.ru:8776/v3" ``` 2. Пример файла для настройки MCP сервера для Windsurf `mcp_config.json` https://docs.windsurf.com/windsurf/mcp#adding-a-new-server https://docs.windsurf.com/windsurf/mcp#mcp-config-json ```json { "mcpServers": { "vkcloud": { "serverUrl": "http://localhost:8000/sse" } } } ``` ## Запуск сервера Запустите сервер командой: ```bash python main.py ``` Это запустит MCP сервер по адресу http://localhost:8000/sse по умолчанию. ## Соображения безопасности - По умолчанию деструктивные операции (создание, запуск, остановка, перезапуск VM) отключены. Установите `destructive_operations: true` в файле конфигурации. ## Доступные инструменты MCP Сервер предоставляет следующие инструменты MCP: - `vkcloud_vm_list`: Список всех VM в проекте - `vkcloud_network_list`: Список всех сетей - `vkcloud_security_group_list`: Список всех групп безопасности - `vkcloud_vm_start`: Запуск VM (требуется включение деструктивных операций) - `vkcloud_vm_stop`: Остановка VM (требуется включение деструктивных операций) - `vkcloud_vm_restart`: Перезапуск VM (требуется включение деструктивных операций) - `vkcloud_flavor_list`: Список типов VM с возможностью фильтрации - `vkcloud_image_list`: Список образов VM с расширенными возможностями фильтрации - `vkcloud_disk_list`: Список всех дисков (томов) с возможностью фильтрации - `vkcloud_keypair_list`: Список всех SSH-ключей - `vkcloud_create_bootable_volume`: Создание загрузочного тома (требуется включение деструктивных операций) - `vkcloud_vm_create`: Создание новой VM (требуется включение деструктивных операций) Для получения подробной информации о параметрах и использовании каждого инструмента см. документацию в коде.