Skip to main content
Glama

openstack-mcp

Сервер MCP, который позволяет ИИ-ассистенту просматривать и управлять облаком OpenStack — выводить список инстансов, проверять квоты, читать журнал консоли зависшей ВМ и (если вы разрешите) создавать и удалять серверы.

Работает с любым развёртыванием OpenStack: CloudPe, OVHcloud, Infomaniak, университетские и исследовательские облака или локальный DevStack. Всё, до чего может дотянуться openstacksdk, этим можно управлять.

По умолчанию только чтение. Запись требует явного согласия, а удаление — второго. Ассистент, который может просматривать ваш проект, не сможет его разрушить, если вы этого не разрешили.

Быстрый старт

Установка из исходников (пока нет на PyPI):

pipx install git+https://github.com/abhishekambad-leapswitch/openstack-mcp

Укажите облако. openstacksdk читает стандартную конфигурацию OpenStack, так что либо clouds.yaml:

# ~/.config/openstack/clouds.yaml
clouds:
  cloudpe:
    auth_type: v3applicationcredential
    auth:
      auth_url: https://<your-region>.cloudpe.com:5000/v3
      application_credential_id: <id>
      application_credential_secret: <secret>
    region_name: RegionOne

...или обычные переменные окружения (OS_AUTH_URL, OS_APPLICATION_CREDENTIAL_ID, OS_APPLICATION_CREDENTIAL_SECRET). Этот сервер сам никогда не хранит и не передаёт ваши учётные данные — он передаёт управление openstacksdk, который разрешает их так же, как это делает CLI openstack.

Claude Code

claude mcp add openstack --env OS_CLOUD=cloudpe -- openstack-mcp

Claude Desktop / Cursor / любой MCP-клиент

{
  "mcpServers": {
    "openstack": {
      "command": "openstack-mcp",
      "env": { "OS_CLOUD": "cloudpe" }
    }
  }
}

Затем спрашивайте что-то вроде «какие ВМ остановлены?», «есть ли у меня квота ещё на три m1.large?» или «web-03 не принимает SSH — проверь его журнал консоли».

Чтобы убедиться в правильности настройки перед доверием, выполните сухую проверку — она выводит разрешённую конфигурацию и точный список доступных инструментов, ничего не запуская и не подключаясь:

openstack-mcp --check
openstack-mcp 0.1.0
cloud: cloudpe
mode: read-only
max items per list: 50
12 tools: check_capacity, cloud_info, get_console_output, get_quotas, get_server,
list_flavors, list_images, list_keypairs, list_networks, list_security_groups,
list_servers, list_volumes

Модель безопасности

Большинство облачных MCP-серверов отдают ассистенту полный API и надеются на лучшее. Этот — с ограничениями, потому что «удали тестовые ВМ» — это фраза, которую модель может понять неправильно.

Переменная окружения

Эффект

(ничего не задано)

Только чтение. 12 инструментов просмотра. Инструменты записи вообще не регистрируются — модель не может их видеть или вызывать.

OPENSTACK_MCP_ALLOW_WRITE=true

Добавляет create_servers и power_action (14 инструментов).

OPENSTACK_MCP_ALLOW_DELETE=true

Добавляет delete_server (15 инструментов). Требует также ALLOW_WRITE — удаление без записи считается ошибкой конфигурации и игнорируется.

OPENSTACK_MCP_MAX_ITEMS=50

Ограничивает количество элементов, возвращаемых любым инструментом списка.

OPENSTACK_MCP_CLOUD / OS_CLOUD

Какую запись clouds.yaml использовать.

Ещё два предохранителя:

  • delete_server требует подтверждения. Вы должны передать confirm_name, точно совпадающий с именем найденного инстанса. Попросите удалить web-1, когда ВМ называется web-01, и он откажется, а не будет угадывать.

  • Инструменты несут MCP-аннотации (read_only_hint, destructive_hint), чтобы клиенты, показывающие пользователю риск перед запуском инструмента, могли делать это корректно.

Ограничение инструментов применяется при регистрации, а не вежливой просьбой к модели — это проверено на реальной stdio-сессии в тестовом наборе.

Инструменты

Чтение (доступно всегда)

Инструмент

Назначение

cloud_info

Какое облако, регион и проект используются, и какие операции включены

list_servers

Инстансы со статусом и IP-адресами; фильтрация по статусу или подстроке имени

get_server

Полная информация об одном инстансе: flavor, образ, ключевая пара, группы безопасности, адреса

list_flavors

Размеры инстансов с vCPU, ОЗУ, диском

list_images

Загрузочные образы

list_networks

Сети с указанием внешних

list_security_groups

Группы безопасности и количество правил

list_keypairs

Зарегистрированные пары SSH-ключей

list_volumes

Тома блочного хранилища и к чему они подключены

get_quotas

Использование вычислительной квоты по сравнению с лимитами

check_capacity

Поместятся ли N инстансов данного flavor в оставшуюся квоту, и что мешает, если нет

get_console_output

Журнал последовательной консоли — для ВМ, которые загружаются, но недоступны

Запись (по согласию)

Инструмент

Назначение

create_servers

Создание одного или нескольких инстансов; при count > 1 имена будут <префикс>-01, -02, …

power_action

start / stop / reboot

delete_server

Удаление одного инстанса с подтверждением имени (требуется ALLOW_DELETE)

Два конструктивных решения, о которых стоит знать

Ответы намеренно небольшие. openstacksdk возвращает более 60 атрибутов на сервер. Передавать их все модели медленно, дорого и скрывает полезные поля, поэтому каждый инструмент возвращает усечённую проекцию — для сервера это id, имя, статус и плоская карта {сеть: [IP-адреса]} вместо вложенной структуры адресов nova.

check_capacity существует, чтобы пакетные операции завершались на раннем этапе. Запрос восьми ВМ и обнаружение потолка квоты на пятой оставляет полуразрушенный беспорядок. Этот инструмент сообщает, что именно ограничивает — инстансы, vCPU или ОЗУ, — до создания чего-либо. create_servers также сообщает о частичных сбоях по каждому инстансу, а не отбрасывает то, что удалось.

Разработка

git clone https://github.com/abhishekambad-leapswitch/openstack-mcp
cd openstack-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest && ruff check .

Набор тестов полностью работает офлайн с фейковым подключением openstacksdk — без облака, учётных данных и расходов. Он покрывает ограничение инструментов, усечение, арифметику квот, отчёты о частичных сбоях и подтверждение удаления.

Масштабное развёртывание

Для декларативного развёртывания парков машин, а не в диалоговом режиме, см. cloudpe-terraform-bulk-vm — Terraform для массового создания ВМ через тот же API.

Лицензия

MIT

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhishekambad-leapswitch/openstack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server