Labsco
MCP SERVER

Simple OpenStack MCP

by choieastsea

Lets an assistant run OpenStack CLI commands for you, authenticated against the clouds you have already configured.

Cloud Resources & Infrastructure as Code
Summary
It inherits your CLI's permissions, for better and worse.

Wrapping the client rather than the API is what keeps this small and current — nothing to update when OpenStack adds a command. It also means the blast radius is exactly the blast radius of the credentials in your clouds file, which for an admin project is considerable. If you want a narrower grant, the place to make it is the OpenStack project and role behind the credentials, not the server.

What it is

A small server that drives the OpenStack command-line client. It does not reimplement the API — it runs the CLI in an environment where the CLI already works, which means whatever your credentials can do, this can do, and nothing more.

What you get
  • Execution of OpenStack commands from the conversation, including the compound ones that would otherwise be several invocations chained by hand
  • Whatever surface your installed client covers, rather than a curated subset — the tool is the CLI, so it does not fall behind the platform
  • Targeting by cloud name, since credentials come from your existing configuration file and it can hold several clouds
  • Two ways to launch: from a local clone, or straight from the git URL with uvx and no checkout
Requirements

The OpenStack CLI must be executable in whatever environment the server runs in, and authentication credentials for the target cloud must already be in a `clouds.yaml` — auth URL, username, password, project id and name, user domain, region and interface. No separate key goes to the server; it uses what the CLI uses. Python with uv: `uv sync` then run the server module, or launch it with uvx directly from the repository URL. The project is `simple-openstack-mcp` (0.1.0 in pyproject) and is built on fastmcp.