MCP Server: OpenStack Operations Automation
Automate OpenStack operations with MCP server for monitoring, instance, volume and network control—FastMCP, OpenStack SDK, Bearer auth, Claude-ready.
npx -y @call518/MCP-OpenStack-OpsOverview
MCP Server: OpenStack Operations Automation is a Model Context Protocol (MCP) server that exposes a set of operational controls for OpenStack clouds. It translates high-level tool calls into OpenStack SDK actions so LLM agents and orchestration systems can monitor and manage compute instances, block volumes, network resources, and basic health metrics using a standardized tool interface. The server is designed to be “Claude-ready” and compatible with other LLMs that use the MCP/FastMCP tool pattern.
This server is useful when you want programmatic, secure, and agent-friendly control over OpenStack resources. Instead of embedding OpenStack credentials and SDK code into multiple automation clients, the MCP server centralizes operations behind a small HTTP API that supports bearer token auth. That makes it easier to audit access, decouple AI agents from cloud credentials, and integrate monitoring and remediation workflows.
Features
- Exposes OpenStack operations as MCP-compatible tools (instances, volumes, networks, monitoring)
- Uses python-openstacksdk (OpenStack SDK) to interact with cloud APIs
- Bearer token authentication for API clients
- Supports operations to list, create, update, delete, attach/detach resources
- Designed to integrate with LLM agents (FastMCP / Claude-style tool manifests)
- Simple HTTP JSON API; easy to call from curl, Python, or agent frameworks
- Configurable via environment variables and Docker
Installation / Configuration
Requirements:
- Python 3.9+ (or run via Docker)
- OpenStack credentials (auth URL, username, password, project, domain)
- A bearer token or API gateway to protect the MCP endpoints
Quick start (local Python):
# Clone repository
# Create virtualenv and install
# Set environment variables (example)
# Optional: set a secret for MCP bearer auth
# Run the FastAPI/uvicorn server (module name may vary)
Docker build and run:
Environment variables reference:
| Variable | Purpose |
|---|---|
| OS_AUTH_URL | OpenStack Identity endpoint (Keystone) |
| OS_USERNAME | OpenStack username |
| OS_PASSWORD | OpenStack password |
| OS_PROJECT_NAME | OpenStack project/tenant |
| OS_USER_DOMAIN_NAME | User domain (often “Default”) |
| OS_PROJECT_DOMAIN_NAME | Project domain (often “Default”) |
| MCP_BEARER_TOKEN | Shared secret used to authenticate API requests |
Available Tools / Resources
The server exposes toolbox-like endpoints that map to OpenStack operations. Typical tools provided:
- Monitoring: host/instance metrics, basic alerts
- Instances: list, create, delete, reboot, resize
- Volumes: list, create, delete, attach, detach, snapshot
- Networks: list networks, create port, list subnets, security group actions
Developer resources:
- GitHub repo: https://github.com/call518/MCP-OpenStack-Ops
- OpenStack SDK docs: https://docs.openstack.org/openstacksdk/latest/
- FastMCP / MCP protocol: use the server’s tool manifest to integrate with your agent platform
Example tool manifest snippet (Claude/LLM agent friendly):
API Endpoints (example)
| Endpoint | Method | Description |
|---|---|---|
| /tools/instances | POST | Dispatch instance operations (action in JSON body: list/create/delete) |
| /tools/volumes | POST | Dispatch volume actions (attach/detach/snapshot) |
| /tools/networks | POST | Network queries & port creation |
| /tools/monitoring | GET | Get basic metrics and health status |
Example curl (list instances):
Python example using requests:
=
=
Use Cases
- Automated remediation: An LLM agent monitors metrics and, when disk I/O or CPU exceeds thresholds, calls the MCP server to create a replacement instance and migrate workloads.
- Self-service provisioning: Internal tools call the MCP API to spin up pre-configured VMs for developer sandboxes without exposing OpenStack credentials to each consumer.
- Volume lifecycle automation: Scheduled jobs snapshot