Skip to main content
Glama

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-mcp

Claude Desktop / Cursor / 모든 MCP 클라이언트

{
  "mcpServers": {
    "openstack": {
      "command": "openstack-mcp",
      "env": { "OS_CLOUD": "cloudpe" }
    }
  }
}

그런 다음 "어떤 VM이 다운되었나?", "m1.large 세 대를 더 만들 수 있는 할당량이 있나?", "web-03이 SSH를 수락하지 않습니다 — 콘솔 로그를 확인해 주세요." 같은 질문을 해보세요.

신뢰하기 전에 연결 상태를 확인하려면 드라이 체크를 실행하세요 — 서비스하거나 연결하지 않고 해석된 구성과 노출된 도구를 정확히 출력합니다:

openstack-mcp --check
openstack-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개. 쓰기 도구는 전혀 등록되지 않습니다 — 모델이 보고 호출할 수 없습니다.

OPENSTACK_MCP_ALLOW_WRITE=true

create_serverspower_action 추가 (도구 14개).

OPENSTACK_MCP_ALLOW_DELETE=true

delete_server 추가 (도구 15개). ALLOW_WRITE도 필요합니다 — 쓰기 없이 삭제만 허용하는 것은 구성 오류로 간주되어 무시됩니다.

OPENSTACK_MCP_MAX_ITEMS=50

모든 목록 도구가 반환하는 항목 수를 제한합니다.

OPENSTACK_MCP_CLOUD / OS_CLOUD

사용할 clouds.yaml 항목.

추가 안전장치 두 가지:

  • delete_server는 확인을 요구합니다. 해석된 인스턴스의 정확한 이름과 일치하는 confirm_name을 전달해야 합니다. VM 이름이 web-01인데 web-1을 삭제하라고 요청하면 추측하지 않고 거부합니다.

  • 도구에는 MCP 주석이 포함됩니다 (read_only_hint, destructive_hint). 따라서 도구 실행 전에 사용자에게 위험을 알리는 클라이언트가 올바르게 알릴 수 있습니다.

도구 게이팅은 모델에게 정중히 요청하는 방식이 아니라 등록 시점에 적용됩니다 — 테스트 스위트의 실제 stdio 세션에서 검증되었습니다.

도구

읽기 (항상 사용 가능)

도구

용도

cloud_info

연결된 클라우드, 리전, 프로젝트와 활성화된 작업을 표시

list_servers

상태와 IP가 포함된 인스턴스; 상태 또는 이름 부분 문자열로 필터링

get_server

단일 인스턴스의 전체 세부 정보: 플레이버, 이미지, 키 페어, 보안 그룹, 주소

list_flavors

vCPU, RAM, 디스크가 포함된 인스턴스 크기

list_images

부팅 가능한 이미지

list_networks

네트워크, 외부 네트워크 표시

list_security_groups

보안 그룹 및 규칙 수

list_keypairs

등록된 SSH 키 페어

list_volumes

블록 스토리지 볼륨 및 연결 대상

get_quotas

컴퓨트 할당량 사용량 대비 한도

check_capacity

플레이버 인스턴스 N개가 남은 할당량에 들어가는지 여부와, 들어가지 않을 경우 무엇이 막는지

get_console_output

직렬 콘솔 로그 — 부팅은 되지만 연결할 수 없는 VM용

쓰기 (옵트인)

도구

용도

create_servers

하나 또는 여러 인스턴스 생성; count > 1이면 이름을 <prefix>-01, -02, …로 지정

power_action

start / stop / reboot

delete_server

이름 확인과 함께 인스턴스 하나 삭제 (ALLOW_DELETE 필요)

알아두면 좋은 두 가지 설계 선택

응답은 의도적으로 작게 유지됩니다. 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

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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