OpenStack MCP server
Commit 3. Nov. 2026KI-Assistenten können OpenStack-Clouds inklusive Compute, Images, Block Storage, Networking und den Keystone-Katalog inspizieren.
Auch bekannt als oomchiller/openstack-mcp-server, openstack-mcp-server
- Stars
- 0
- Tools
- —
- Downloads, 30 Tage
- —
- Neueste Version
- 0.1.2
- Letzter Commit
- 3. Nov. 2026
- Lizenz
- Apache-2.0
Was ist OpenStack MCP?
OpenStack ist ein MCP server. KI-Assistenten können OpenStack-Clouds inklusive Compute, Images, Block Storage, Networking und den Keystone-Katalog inspizieren.
Zusammenfassung generiert aus dem README des Projekts
Über OpenStack MCP server
Dieser Server ermöglicht es Cloud-Administratoren und Entwicklern, OpenStack-Cloudumgebungen mithilfe eines KI-Assistenten zu inspizieren. Er bietet eine strukturierte Möglichkeit, Compute, Images, Block Storage, Networking und den Keystone-Katalog über zweiunddreißig spezialisierte Read-Tools abzufragen. Der Server läuft als lokaler Prozess via stdio oder als Container und kann zudem für streamable HTTP auf einem Loopback-Interface konfiguriert werden.
Nutzer konfigurieren die Verbindung über Standard-OpenStack-Umgebungsvariablen oder eine clouds.yaml Datei. Während der Server standardmäßig schreibgeschützt ist, um die Sicherheit zu gewährleisten, kann er in den Admin-Modus geschaltet werden. In diesem Modus werden einunddreißig experimentelle Write-Tools freigeschaltet, mit denen Ressourcen wie Server, Volumes und Netzwerke verwaltet werden können. Die Sicherheit wird über die Keystone-Rolle der konfigurierten Identity gesteuert, und der Server bietet Features wie Project-Allowlists und Limits für die Antwortgröße, um kontrollierte Interaktionen mit den Cloud-APIs sicherzustellen.
Was du damit machen kannst
- 1Cloud-Ressourceninventar auditierenLass eine KI alle verfügbaren Compute-Flavors und Netzwerk-Subnetze innerhalb eines spezifischen OpenStack-Projekts auflisten.
- 2Netzwerkkonfigurationen troubleshootnFordere eine Zusammenfassung aller Router, Floating IPs und Security Groups an, um die Netzwerkverbindung zu verifizieren.
- 3Cloud-Infrastruktur via KI verwaltenAktiviere administrativen Schreibzugriff, um einem KI-Assistenten zu erlauben, Server und Volumes zu erstellen oder zu modifizieren.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
So installierst du OpenStack MCP
Formate geprüft am 10. Nov. 2026Zu Cursor hinzufügenZu Goose hinzufügenOpenStack MCP in Claude Code installieren
$ claude mcp add --env 'OS_AUTH_URL=<OS_AUTH_URL>' --env 'OS_APPLICATION_CREDENTIAL_SECRET=<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>' --env 'OS_PASSWORD=<YOUR_OS_PASSWORD>' openstack-mcp-server -- docker run -i --rm ghcr.io/oomchiller/openstack-mcp-server:0.1.2OpenStack MCP in Cursor installieren
~/.cursor/mcp.json
{
"mcpServers": {
"openstack-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/oomchiller/openstack-mcp-server:0.1.2"
],
"env": {
"OS_AUTH_URL": "<OS_AUTH_URL>",
"OS_APPLICATION_CREDENTIAL_SECRET": "<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>",
"OS_PASSWORD": "<YOUR_OS_PASSWORD>"
}
}
}
}OpenStack MCP in VS Code installieren
.vscode/mcp.json
{
"servers": {
"openstack-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/oomchiller/openstack-mcp-server:0.1.2"
],
"env": {
"OS_AUTH_URL": "<OS_AUTH_URL>",
"OS_APPLICATION_CREDENTIAL_SECRET": "<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>",
"OS_PASSWORD": "<YOUR_OS_PASSWORD>"
}
}
}
}OpenStack MCP in VS Code CLI installieren
$ code --add-mcp '{"name":"openstack-mcp-server","type":"stdio","command":"docker","args":["run","-i","--rm","ghcr.io/oomchiller/openstack-mcp-server:0.1.2"],"env":{"OS_AUTH_URL":"<OS_AUTH_URL>","OS_APPLICATION_CREDENTIAL_SECRET":"<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>","OS_PASSWORD":"<YOUR_OS_PASSWORD>"}}'OpenStack MCP in Claude Desktop installieren
claude_desktop_config.json
{
"mcpServers": {
"openstack-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/oomchiller/openstack-mcp-server:0.1.2"
],
"env": {
"OS_AUTH_URL": "<OS_AUTH_URL>",
"OS_APPLICATION_CREDENTIAL_SECRET": "<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>",
"OS_PASSWORD": "<YOUR_OS_PASSWORD>"
}
}
}
}OpenStack MCP in Codex installieren
$ codex mcp add openstack-mcp-server --env 'OS_AUTH_URL=<OS_AUTH_URL>' --env 'OS_APPLICATION_CREDENTIAL_SECRET=<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>' --env 'OS_PASSWORD=<YOUR_OS_PASSWORD>' -- docker run -i --rm ghcr.io/oomchiller/openstack-mcp-server:0.1.2OpenStack MCP in Codex config.toml installieren
~/.codex/config.toml
[mcp_servers.openstack-mcp-server] command = "docker" args = ["run", "-i", "--rm", "ghcr.io/oomchiller/openstack-mcp-server:0.1.2"] [mcp_servers.openstack-mcp-server.env] OS_AUTH_URL = "<OS_AUTH_URL>" OS_APPLICATION_CREDENTIAL_SECRET = "<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>" OS_PASSWORD = "<YOUR_OS_PASSWORD>"
OpenStack MCP in Gemini CLI installieren
$ gemini mcp add -s user -e 'OS_AUTH_URL=<OS_AUTH_URL>' -e 'OS_APPLICATION_CREDENTIAL_SECRET=<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>' -e 'OS_PASSWORD=<YOUR_OS_PASSWORD>' openstack-mcp-server docker -- run -i --rm ghcr.io/oomchiller/openstack-mcp-server:0.1.2OpenStack MCP in Gemini settings.json installieren
~/.gemini/settings.json
{
"mcpServers": {
"openstack-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/oomchiller/openstack-mcp-server:0.1.2"
],
"env": {
"OS_AUTH_URL": "<OS_AUTH_URL>",
"OS_APPLICATION_CREDENTIAL_SECRET": "<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>",
"OS_PASSWORD": "<YOUR_OS_PASSWORD>"
}
}
}
}Konfiguration
OS_AUTH_URLErforderlichKeystone v3 endpoint, for example https://keystone.example.com:5000/v3
OS_APPLICATION_CREDENTIAL_SECRETSecretApplication credential secret
OS_PASSWORDSecretPassword for OS_USERNAME
OPENSTACK_MCP_CACERT_PEMCA bundle as PEM text, for a private CA
OPENSTACK_MCP_PROJECT_IDSComma-separated project IDs the server may use; the first is the default
OS_APPLICATION_CREDENTIAL_IDApplication credential ID, instead of a user name and password
OS_CLOUDOS_PROJECT_IDProject to scope the token to
OS_REGION_NAMERegion name
OS_USERNAMEUser name; omit when using an application credential
OS_USER_DOMAIN_NAMEDomain of OS_USERNAME
| Name | Beschreibung | Typ |
|---|---|---|
| OS_AUTH_URL | Keystone v3 endpoint, for example https://keystone.example.com:5000/v3 | Erforderlich |
| OS_APPLICATION_CREDENTIAL_SECRET | Application credential secret | Secret |
| OS_PASSWORD | Password for OS_USERNAME | Secret |
| OPENSTACK_MCP_CACERT_PEM | CA bundle as PEM text, for a private CA | |
| OPENSTACK_MCP_PROJECT_IDS | Comma-separated project IDs the server may use; the first is the default | |
| OS_APPLICATION_CREDENTIAL_ID | Application credential ID, instead of a user name and password | |
| OS_CLOUD | — | |
| OS_PROJECT_ID | Project to scope the token to | |
| OS_REGION_NAME | Region name | |
| OS_USERNAME | User name; omit when using an application credential | |
| OS_USER_DOMAIN_NAME | Domain of OS_USERNAME |
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Noch nicht verifiziert. Ein Server benötigt einen Score von 80, keine kritischen Befunde und genug Daten für unsere Prüfung. Wie die Checks funktionieren · Was du für mehr Punkte verbessern kannst
- Source Repository verknüpft und erreichbaroomchiller/openstack-mcp-server is public and reachablegithub.com/oomchiller/openstack-mcp-server ↗Bestanden
- Paket nennt dieses Repository als QuelleNicht geprüft
- Build-Provenienz (Sigstore-Attestierung)Nicht geprüft
- Open Source Lizenz (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-11-03github.com/oomchiller/openstack-mcp-server ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNicht geprüft
- Keine kritischen Advisories im Paket oder seinen AbhängigkeitenNicht geprüft
- Keine versteckten Anweisungen an das Modell0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNicht geprüft
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenopenstack-mcp-server
Community project, not affiliated with OpenStack/OpenInfra Foundation.
A Model Context Protocol server that lets AI assistants inspect OpenStack clouds. It is read-only by default, bounded in what it returns, and configured entirely through OpenStack's own settings and environment variables, so it runs unchanged as a local process or a container.
flowchart LR
AI[MCP client] <-->|stdio / Streamable HTTP| Server[openstack-mcp-server]
Server <-->|openstacksdk| Cloud[OpenStack APIs]
Features
- 32 read tools for compute, images, block storage, networking, the Keystone
catalog and service inventory, plus
get_scope. - Write tools are not registered unless explicitly enabled by two settings.
- Project allowlist: each allowed project gets its own project-scoped session.
- Every list has
limit,completeandnext_marker; results are typed (outputSchema,structuredContent) and capped in size. - Errors are
isErrorresults with a category and an action, without SDK messages, URLs or tokens. - stdio by default; Streamable HTTP on loopback as an option.
- Container image without credentials, running as an unprivileged user.
The read-only mode is a convenience. The security boundary is the Keystone role of the identity you configure; see SECURITY.md.
Quick start
The server is listed in the MCP Registry
as io.github.oomchiller/openstack-mcp-server; registry-aware clients can
install it from there. Manual setup:
Container (Docker MCP Toolkit or any MCP client)
docker run --rm -i \
-e OS_AUTH_URL=https://keystone.example.com:5000/v3 \
-e OS_USERNAME=mcp-reader -e OS_PASSWORD \
-e OS_USER_DOMAIN_NAME=Default -e OS_PROJECT_ID=0123456789abcdef0123456789abcdef \
-e OS_REGION_NAME=RegionOne \
ghcr.io/oomchiller/openstack-mcp-server@sha256:<digest>
Pin the image by digest; release digests are listed on the
releases page.
For a private CA, pass the certificate text in OPENSTACK_MCP_CACERT_PEM.
Local process with clouds.yaml
{
"mcpServers": {
"openstack": {
"command": "uvx",
"args": ["--from", "git+https://github.com/oomchiller/openstack-mcp-server@v0.1.2", "openstack-mcp-server"],
"env": { "OS_CLOUD": "mycloud" }
}
}
}
clouds.yaml is found the usual way (OS_CLIENT_CONFIG_FILE,
./clouds.yaml, ~/.config/openstack/clouds.yaml, /etc/openstack/).
Configuration
Credentials come from openstacksdk: OS_CLOUD with clouds.yaml, or OS_*
variables (password or application credentials). Server behaviour:
| Variable | Default | Meaning |
|---|---|---|
OPENSTACK_MCP_MODE |
readonly |
readonly or admin. |
OPENSTACK_MCP_ENABLE_WRITE_TOOLS |
false |
With admin, registers write tools. |
OPENSTACK_MCP_PROJECT_IDS |
empty | Comma-separated project IDs the server may use; the first is the default. |
OPENSTACK_MCP_DEFAULT_LIMIT |
50 |
Items per list call when limit is omitted. |
OPENSTACK_MCP_MAX_LIMIT |
100 |
Largest accepted limit (up to 1000). |
OPENSTACK_MCP_MAX_RESPONSE_BYTES |
524288 |
Largest result; larger ones fail with response_too_large. |
OPENSTACK_MCP_API_TIMEOUT |
10 |
Seconds per OpenStack request; no retries. |
OPENSTACK_MCP_CACERT_PEM |
unset | CA bundle as PEM text; takes precedence over OS_CACERT. |
OPENSTACK_MCP_ALLOW_INSECURE |
false |
Allow verify: false or an http:// auth URL. |
OPENSTACK_MCP_ENABLE_PROMPTS |
true |
Register the prompt. |
OPENSTACK_MCP_ENABLE_RESOURCES |
true |
Register openstack://scope. |
OPENSTACK_MCP_TRANSPORT |
stdio |
stdio or streamable-http. |
OPENSTACK_MCP_HTTP_HOST / _PORT |
127.0.0.1 / 8000 |
HTTP bind; path /mcp. |
OPENSTACK_MCP_HTTP_ALLOW_REMOTE |
false |
Allow a non-loopback HTTP bind. The HTTP transport has no authentication. |
OPENSTACK_MCP_LOG_LEVEL |
WARNING |
stderr log level. SDK loggers stay at CRITICAL. |
An invalid OPENSTACK_MCP_* value stops the server with exit code 2 and
names the variable. Missing credentials do not: the server starts, and cloud
tools return [not_configured].
Gateways that run several instances of this server and do not prefix prompt
names or resource URIs (Docker MCP Gateway) should set
OPENSTACK_MCP_ENABLE_PROMPTS=false and OPENSTACK_MCP_ENABLE_RESOURCES=false.
Tools
| Group | Tools |
|---|---|
| Scope | get_scope |
| Compute | list_servers, get_server, list_flavors |
| Image | list_images, get_image |
| Block storage | list_volumes, get_volume, list_volume_attachments, get_volume_attachment |
| Network | list_networks, get_network, list_subnets, get_subnet, list_ports, get_port, list_floating_ips, list_routers, get_router, list_router_interfaces, list_security_groups, get_security_group |
| Identity | list_regions, list_domains, list_projects, list_services, list_endpoints |
| Service inventory | list_hypervisors, list_compute_services, list_aggregates, list_network_agents, list_volume_services |
Identity and service inventory usually need more than a project reader
role; such calls fail with [forbidden] rather than returning empty lists.
With OPENSTACK_MCP_MODE=admin and OPENSTACK_MCP_ENABLE_WRITE_TOOLS=true,
31 experimental write tools are added (servers, volumes, images, networks,
subnets, ports, floating IPs, routers, security groups). See
docs/SPEC.md for the full behaviour.
Development
uv sync --locked
uv run pytest --cov
uv run ruff check . && uv run ruff format --check .
uv run mypy src tests
See CONTRIBUTING.md, ARCHITECTURE.md and DECISIONS.md.
License
Apache License 2.0; see LICENSE. Parts of the code started in openstack-kr/python-openstackmcp-server; see NOTICE.
OpenStack MCP Fragen
Wie füge ich OpenStack MCP zu Claude Code hinzu?
Führe claude mcp add --env 'OS_AUTH_URL=<OS_AUTH_URL>' --env 'OS_APPLICATION_CREDENTIAL_SECRET=<YOUR_OS_APPLICATION_CREDENTIAL_SECRET>' --env 'OS_PASSWORD=<YOUR_OS_PASSWORD>' openstack-mcp-server -- docker run -i --rm ghcr.io/oomchiller/openstack-mcp-server:0.1.2 in deinem Terminal aus. Füge --scope user hinzu, damit der Server in jedem Projekt verfügbar ist.
Wie füge ich OpenStack MCP zu Cursor hinzu?
Öffne ~/.cursor/mcp.json und füge den Server unter mcpServers hinzu, mit der Cursor-Config aus dem Installationsabschnitt oben.
Ist der Server schreibgeschützt?
Ja, standardmäßig ist er schreibgeschützt, aber Schreib-Tools können durch Ändern spezifischer Einstellungen aktiviert werden.
Wie kann ich diesen Server in einem Container ausführen?
Du kannst ihn mit Docker ausführen, indem du OpenStack-Credentials als Umgebungsvariablen übergibst.
Wo liegt die Sicherheitsgrenze des Servers?
Die Sicherheitsgrenze wird durch die Keystone-Rolle der von dir konfigurierten Identity definiert.
Kann ich eine lokale clouds.yaml Datei verwenden?
Ja, du kannst den Server als lokalen Prozess unter Verwendung einer clouds.yaml Datei zur Konfiguration ausführen.