openstack-mcp
openstack-mcp
Ein MCP-Server, der es einem KI-Assistenten ermöglicht, eine OpenStack-Cloud zu inspizieren und zu bedienen – Instanzen auflisten, Quotas prüfen, das Konsolenprotokoll einer festhängenden VM lesen und (wenn Sie es erlauben) Server erstellen und löschen.
Funktioniert mit jeder OpenStack-Umgebung: CloudPe, OVHcloud, Infomaniak, Universitäts- und Forschungs-Clouds oder einem lokalen DevStack. Alles, was openstacksdk erreichen kann, lässt sich damit steuern.
Standardmäßig nur lesend. Schreibzugriff erfordert eine ausdrückliche Freigabe, Löschzugriff eine zweite. Ein Assistent, der Ihr Projekt auflisten kann, kann es nicht abreißen, sofern Sie nicht entschieden haben, dass er das darf.
Schnellstart
Aus dem Quellcode installieren (noch nicht auf PyPI):
pipx install git+https://github.com/abhishekambad-leapswitch/openstack-mcpRichten Sie ihn auf eine Cloud aus. openstacksdk liest die Standard-OpenStack-Konfiguration, also entweder eine 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...oder die üblichen Umgebungsvariablen (OS_AUTH_URL, OS_APPLICATION_CREDENTIAL_ID, OS_APPLICATION_CREDENTIAL_SECRET). Dieser Server speichert oder überträgt Ihre Anmeldedaten niemals selbst – er übergibt sie an openstacksdk, das sie auf dieselbe Weise auflöst wie das openstack-CLI.
Claude Code
claude mcp add openstack --env OS_CLOUD=cloudpe -- openstack-mcpClaude Desktop / Cursor / jeder MCP-Client
{
"mcpServers": {
"openstack": {
"command": "openstack-mcp",
"env": { "OS_CLOUD": "cloudpe" }
}
}
}Fragen Sie dann Dinge wie „Welche VMs sind down?“, „Habe ich für drei weitere m1.large noch Budget?“ oder „web-03 akzeptiert kein SSH- Schlüssel – prüfen Sie das Konsolenprotokoll.“
Um zu bestätigen, was Sie verdrahtet haben, bevor Sie es vertrauen, führen Sie eine Trockenrennung aus – sie gibt die aufgelöste Konfiguration und genau die Tools aus, die exponiert sind, ohne mit Verbindung zu bedienen oder einen Verbindung:
openstack-mcp --checkopenstack-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_volumesDas Sicherheitsmodell
Die meisten Cloud-MCP-Server übergeben einem Assistenten die gesamte API und hoffen auf den Best. Dieser funktioniert mit Zugriffssperren, denn „Lösche die Test-VMs“ ist ein Satz, den ein Modell missverstehen kann.
Umgebungsvariable | Wirkung |
(nicht gesetzt) | Nur lesen. 12 Inspektions-Tools. Schreib-Tools sind gar nicht registriert – das Modell kann sie nicht sehen und aufrufen. |
| Ergänzt |
| Ergänzt |
| Begrenzt, wie viele Elemente ein Listen-Tool zurückgibt. |
| Welcher |
Zwei weitere Schutzmechanismen:
delete_serververlangt eine Bestätigung. Sie müssenconfirm_namemit dem exakten Namen der aufgelösten Instanz angeben. Wenn Sie ihn bitten,web-1zu löschen, während die VMweb-01heißt, verweigert die VM die Löschung, statt zu raten.Die Tools tragen MCP-Annotationen (
read_only_hint,destructive_hint), sodass Clients, die das Risiko vor dem Ausführen eines Tools sichtbar machen, das korrekt tun können.
Diese Tool-Freigabe wird bei der Registrierung erzwungen, nicht durch freundliches Bitten des Modells – in der Testsuite wird das über eine reale stdio-Sitzung nachgewiesen.
Tools
Lesen (immer verfügbar)
Tool | Zweck |
| Zeigt an, auf welche Cloud, Region und Projekt Sie zeigen, und welche Operationen aktiv sind |
| Instanzen mit Status und IP; filterbar nach Status oder Namenszeichenkette |
| Alle Details einer Instanz: Flavor, Image, Schlüsselpaar, Sicherheitsgruppen, Adressen |
| Instanzgrößen mit vCPU, RAM, Speicherplatz |
| Bootfähige Images |
| Netzwerke; kennzeichnet welche extern sind |
| Sicherheitsgruppen und Regelanzahl |
| Registrierte SSH-Schlüsselpaare |
| Block-Speichervolumen und woran sie hängen |
| Compute-Quota-Verbrauch verglichen mit Grenzen |
| Ob N Instanzen eines Flavors ins Quota passen und was ihn blocken, wenn nicht |
| Serielles Konsolenprotokoll – für VMs, die booten, aber nicht erreichbar sind |
Schreiben (opt-in)
Tool | Zweck |
| Erstellt eine oder mehrere Instanzen; |
| Start / Stopp / Reboot |
| Löscht eine Instanz, mit Liefername-Bestätigung (erfordert |
Zwei Design-Entscheidungen, die Sie kennen sollten
Antworten sind bewusst schlank. openstacksdk liefert über 60 Zeilen pro Server. Alles User finden anrichten zu füttern ist langsam und teuer und begraben die nützlichen Felder. Deshalb geben alle Tools eine bereinigte Sicht zurück – einblock. Bei einem Server bleiben id, name, Status und eine flache {network: [ips]}-Map, statt der verschachtelten Adressstruktur von nova.
check_capacity gibt es, damit Batchäufe früh fehlschlagen. Wenn man acht VMs erwartet und noch der fünften die Quota-Grenze entdeckt, entsteht ein halbfertiges Durcheinander. Dieses Werkzeug berichtet, ob zuerst Instances, vCPUs oder RAM blocken, bevor etwas tatsächlich erstellt wird. create_servers meldet darüber hinaus Teilfehlschläge pro Instanz, statt das Errungene zu verwerfen.
Entwicklung
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 .Die Testsuite läuft vollständig offline gegen eine openstacksdk-Verbindung ohne echte Cloud – keine Cloud, keine Zugangsdaten, keine Kosten. Sie deckt die Tool-Gateing, das Kürzen, die Quoten-Arithmetik, die Berichte von Teilfehlern und die Löschbestätigung ab.
Größenordnung
Für das deklarative Aufsetzen größerer Gruppen siehe cloudpe-terraform-bulk-vm – Terraform für die Massenerstellung von VMs auf demselben API.
Lizenz
MIT
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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