OpenStack
БесплатноНе проверенA Model Context Protocol server that provides 123 tools across 7 OpenStack domains (compute, network, storage, etc.) for managing cloud resources via natural la
Описание
A Model Context Protocol server that provides 123 tools across 7 OpenStack domains (compute, network, storage, etc.) for managing cloud resources via natural language, with stateless per-caller authentication and Kolla log observability.
README
English | 한국어
A Model Context Protocol (MCP) server for OpenStack — 123 tools across 7 domains, built on openstacksdk, with stateless per-caller header auth, a declarative RESOURCES registry, and Kolla log observability.
Architecture
LLM client (Claude / any MCP host)
│ MCP protocol (stdio or HTTP/SSE)
▼
┌─────────────────────────────────────────────────────┐
│ src/core/ (package) │
│ │
│ server.py → CORE_SPECS table → auto-generated │
│ list/show/update/delete tools │
│ + hand-written specials │
│ registry.py → domain/tier tool registry │
│ assembly.py → per-domain FastMCP instances, │
│ ASGI app, shared conventions text │
│ │
│ context.os_conn(ctx) ──► os_backend.py │
│ (per-caller creds) openstacksdk Connection │
│ (Keystone app credential)│
│ ▼ │
│ OpenStack APIs │
│ Nova · Neutron · Cinder │
│ Glance · Keystone · Octavia │
│ Placement │
│ │
│ observability.py ──► Kolla log files (read-only) │
│ /var/log/kolla/* │
└─────────────────────────────────────────────────────┘
Per-domain HTTP mounts (stateful sessions for elicitation):
/compute/mcp /network/mcp /lbaas/mcp
/storage/mcp /image/mcp /identity/mcp
/observability/mcp
Each domain is an independent FastMCP instance. A shared process exposes all mounts; MCP_DOMAINS and MCP_TIERS narrow which tools are active.
Features
- Declarative registry —
CORE_SPECStable +make_list/make_show/make_update/make_deletegenerators; adding a new resource is one dict entry. - Stateless per-caller auth — credentials are read from request headers on every call (HTTP) or from env vars (stdio). The server stores nothing; multiple callers with different credentials share one process safely.
- Structured error envelope — all tool errors surface as
Error executing tool <name>: {"error":{"type","message","http_status?}}. Parse from the first{. - Delete confirmation —
*_deletetools use MCP elicitation to require an explicit human"delete"choice before executing. Irreversible operations cannot be triggered by an LLM alone. - Key-columns / detail — list tools return a compact key-column view by default; pass
detail=Truefor all fields.limit=Ncaps row count.all_projects=Truefor the admin view where supported. - Multimount — 7 per-domain FastMCP instances served at
/<domain>/mcp, each carrying a routing map in itsinitializeinstructions so clients pick the right mount on the first try. - Kolla log observability —
log_targets,log_tail,log_traceread Kolla service log files directly from the host filesystem (mounted read-only), with time-window filtering, regex grep, and request-ID cross-service tracing.
Documentation
- Usage — install, stdio & HTTP modes, container, and configuration reference.
- Tool Reference — all 123 tools by domain.
Quick install:
git clone https://github.com/YeeDochi/OpenStack-MCP.git
cd OpenStack-MCP
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
Then see Usage to run in stdio or HTTP mode.
Extending: add a new resource
Create tools is intentionally not implemented — it is the primary extension point. To add a create tool or a new resource type:
- Add a function in
src/core/server.pyorsrc/core/os_backend.pyusing openstacksdk. - Register it with
reg.add(fn, name="...", domain="...", tier="write"). - For a full CRUD resource, add one dict to
CORE_SPECS(insrc/core/specs.py);register_resourcesinregistry.pygenerates the list/show/update/delete tools automatically fromos_list/os_show/os_update/os_delete/update_fields.
Any OpenStack service supported by openstacksdk can be wired in this way with a handful of lines.
Running tests
pytest -q
The test suite covers registry assembly (tool set, domains, tiers), the list/show/update/delete factories, the delete-confirmation elicitation flow, and the Kolla log backend (target resolution, time-window tailing, request-ID extraction).
License
MIT — see LICENSE.
Установка OpenStack
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/YeeDochi/OpenStack-MCPFAQ
OpenStack MCP бесплатный?
Да, OpenStack MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для OpenStack?
Нет, OpenStack работает без API-ключей и переменных окружения.
OpenStack — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить OpenStack в Claude Desktop, Claude Code или Cursor?
Открой OpenStack на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare OpenStack with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
