openstack-mcp
openstack-mcp
AI 어시스턴트가 OpenStack 클라우드를 검사하고 운영할 수 있게 해주는 MCP 서버 — 인스턴스 나열, 할당량 확인, 멈춘 VM의 콘솔 로그 읽기, 그리고 (허용한 경우) 서버 생성 및 삭제.
모든 OpenStack 배포 환경에서 작동합니다: CloudPe, OVHcloud, Infomaniak, 대학 및 연구 클라우드, 또는 로컬 DevStack. openstacksdk가 도달할 수 있는 모든 것을 이 서버로 구동할 수 있습니다.
기본적으로 읽기 전용입니다. 쓰기 작업은 명시적 옵트인이 필요하며, 삭제 작업은 두 번째 옵트인이 필요합니다. 프로젝트를 나열할 수 있는 어시스턴트는 사용자가 허용하지 않는 한 프로젝트를 삭제할 수 없습니다.
빠른 시작
소스에서 설치합니다 (아직 PyPI에 없음):
pipx install git+https://github.com/abhishekambad-leapswitch/openstack-mcp클라우드를 지정합니다. openstacksdk는 표준 OpenStack 구성을 읽으므로 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...또는 일반적인 환경 변수(OS_AUTH_URL, OS_APPLICATION_CREDENTIAL_ID, OS_APPLICATION_CREDENTIAL_SECRET)를 사용합니다. 이 서버는 사용자의 자격 증명을 자체적으로 저장하거나 전송하지 않습니다 — openstacksdk에 위임하며, openstack CLI와 동일한 방식으로 자격 증명을 해석합니다.
Claude Code
claude mcp add openstack --env OS_CLOUD=cloudpe -- openstack-mcpClaude Desktop / Cursor / 모든 MCP 클라이언트
{
"mcpServers": {
"openstack": {
"command": "openstack-mcp",
"env": { "OS_CLOUD": "cloudpe" }
}
}
}그런 다음 "어떤 VM이 다운되었나?", "m1.large 세 대를 더 만들 수 있는 할당량이 있나?", "web-03이 SSH를 수락하지 않습니다 — 콘솔 로그를 확인해 주세요." 같은 질문을 해보세요.
신뢰하기 전에 연결 상태를 확인하려면 드라이 체크를 실행하세요 — 서비스하거나 연결하지 않고 해석된 구성과 노출된 도구를 정확히 출력합니다:
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_volumes안전 모델
대부분의 클라우드 MCP 서버는 어시스턴트에게 전체 API를 넘겨주고 잘되길 바랍니다. 이 서버는 게이트가 있습니다. "테스트 VM 삭제"라는 문장은 모델이 오해할 수 있기 때문입니다.
환경 변수 | 효과 |
(아무것도 설정하지 않음) | 읽기 전용. 검사 도구 12개. 쓰기 도구는 전혀 등록되지 않습니다 — 모델이 보고 호출할 수 없습니다. |
|
|
|
|
| 모든 목록 도구가 반환하는 항목 수를 제한합니다. |
| 사용할 |
추가 안전장치 두 가지:
delete_server는 확인을 요구합니다. 해석된 인스턴스의 정확한 이름과 일치하는confirm_name을 전달해야 합니다. VM 이름이web-01인데web-1을 삭제하라고 요청하면 추측하지 않고 거부합니다.도구에는 MCP 주석이 포함됩니다 (
read_only_hint,destructive_hint). 따라서 도구 실행 전에 사용자에게 위험을 알리는 클라이언트가 올바르게 알릴 수 있습니다.
도구 게이팅은 모델에게 정중히 요청하는 방식이 아니라 등록 시점에 적용됩니다 — 테스트 스위트의 실제 stdio 세션에서 검증되었습니다.
도구
읽기 (항상 사용 가능)
도구 | 용도 |
| 연결된 클라우드, 리전, 프로젝트와 활성화된 작업을 표시 |
| 상태와 IP가 포함된 인스턴스; 상태 또는 이름 부분 문자열로 필터링 |
| 단일 인스턴스의 전체 세부 정보: 플레이버, 이미지, 키 페어, 보안 그룹, 주소 |
| vCPU, RAM, 디스크가 포함된 인스턴스 크기 |
| 부팅 가능한 이미지 |
| 네트워크, 외부 네트워크 표시 |
| 보안 그룹 및 규칙 수 |
| 등록된 SSH 키 페어 |
| 블록 스토리지 볼륨 및 연결 대상 |
| 컴퓨트 할당량 사용량 대비 한도 |
| 플레이버 인스턴스 N개가 남은 할당량에 들어가는지 여부와, 들어가지 않을 경우 무엇이 막는지 |
| 직렬 콘솔 로그 — 부팅은 되지만 연결할 수 없는 VM용 |
쓰기 (옵트인)
도구 | 용도 |
| 하나 또는 여러 인스턴스 생성; |
| start / stop / reboot |
| 이름 확인과 함께 인스턴스 하나 삭제 ( |
알아두면 좋은 두 가지 설계 선택
응답은 의도적으로 작게 유지됩니다. openstacksdk는 서버당 60개 이상의 속성을 반환합니다. 그 모든 것을 모델에 전달하면 느리고 비용이 많이 들며 유용한 필드가 묻힙니다. 따라서 모든 도구는 정리된 프로젝션을 반환합니다 — 서버의 경우 id, 이름, 상태, 그리고 nova의 중첩 주소 구조 대신 평면화된 {network: [ips]} 맵입니다.
check_capacity는 배치가 조기에 실패하도록 존재합니다. VM 8개를 요청하고 다섯 번째에서 할당량 상한을 발견하면 반쯤 만들어진 난장판이 남습니다. 이 도구는 아무것도 생성되기 전에 인스턴스/vCPU/RAM 중 무엇이 먼저 제한에 걸리는지 보고합니다. create_servers 또한 성공한 것을 버리지 않고 인스턴스별 부분 실패를 보고합니다.
개발
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 .테스트 스위트는 가짜 openstacksdk 연결을 대상으로 완전히 오프라인으로 실행됩니다 — 클라우드, 자격 증명, 비용이 없습니다. 도구 게이팅, 정리, 할당량 산술, 부분 실패 보고, 삭제 확인을 다룹니다.
대규모 프로비저닝
대화식이 아니라 선언적으로 플릿을 구축하려면 cloudpe-terraform-bulk-vm을 참조하세요 — 동일한 API에서 대량 VM 생성을 위한 Terraform입니다.
라이선스
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