Skip to main content
Glama
vcf-ops-mcp

vcf-ops-mcp

Sentania VCF Ops MCP (비공식)

vcf-ops-mcp는 VCF Operations용 소규모 관리 UI를 갖춘 컨테이너화된, 기본적으로 읽기 전용인 MCP 서버입니다. 현재 MVP는 구현된 인벤토리, 메트릭, 알림, 보고서 정의, 대상 및 스킬 읽기를 인증된 Streamable HTTP를 통해 노출합니다. 모든 MCP 도구 호출은 지속적인 감사 디스패처를 통과합니다.

이 프로젝트는 비공식 개인 랩 프로젝트입니다. Broadcom 또는 VMware 제품이 아닙니다.

테스트 스위트 실행

Python 3.12 이상이 필요합니다.

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip hatchling
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/pytest tests/
./tools/generate_agents_md.sh --check
./tools/consensus-check.py --self-test

라이브 어플라이언스 계층은 명시적 가드 변수가 제공되지 않는 한 건너뜁니다. 일반 테스트는 합성 VCF Ops 응답만 사용합니다.

Related MCP server: afc-mcp

로컬에서 컨테이너 빌드 및 시작

서비스는 첫 시작 시 /keys 볼륨에 세션 서명 비밀과 자격 증명 키링을 생성합니다. 수동으로 작성한 SESSION_SECRET은 필요하지 않습니다.

docker build -t vcf-ops-mcp:local .
docker volume create vcf-ops-mcp-data
docker volume create vcf-ops-mcp-keys
docker volume create vcf-ops-mcp-audit
docker run --name vcf-ops-mcp --rm \
  --read-only \
  --user 10001:10001 \
  --security-opt no-new-privileges \
  --cap-drop ALL \
  -p 8000:8000 \
  -e PUBLIC_BASE_URL=http://localhost:8000 \
  -v vcf-ops-mcp-data:/data \
  -v vcf-ops-mcp-keys:/keys \
  -v vcf-ops-mcp-audit:/audit \
  vcf-ops-mcp:local

다른 터미널에서:

curl --fail http://localhost:8000/healthz

준비 응답은 HTTP 200이며 네 가지 종속성을 모두 true로 보고합니다: audit_writable, configuration_ready, session_secret_persistent, mcp_ready. 감사, 구성, 키 또는 MCP 종속성을 사용할 수 없으면 프로세스는 진단 가능한 상태를 유지하지만 HTTP 503을 반환합니다.

랩 배포는 자체 이미지 핀과 롤아웃을 소유합니다. 참조 deploy/compose.yml은 외부 docker-slots 네트워크와 동일한 세 개의 영구 볼륨을 유지하지만, 이 저장소는 이를 배포하지 않습니다. 런타임 비밀은 CI 또는 compose 환경을 통과하지 않습니다.

첫 관리자 로그인

승인된 부트스트랩 경로는 운영자가 제공한 암호 파일을 사용합니다. 서비스는 이 파일 없이도 정상적으로 시작되지만, 파일이 존재할 때까지 관리 평면은 접근할 수 없습니다. 암호는 최소 16바이트여야 합니다. 암호는 scrypt로 해시되어 런타임 데이터베이스에 저장되며, 첫 로그인이 계정을 초기화할 때 부트스트랩 파일이 제거됩니다. 해당 제거가 실패하면 이후 로그인에서 저장된 관리자 암호를 변경하지 않고 정리 작업을 재시도합니다.

로컬 컨테이너의 경우 셸 기록이나 프로세스 인수에 암호를 넣지 않고 파일을 생성합니다:

docker exec -it vcf-ops-mcp sh
umask 077
python -c 'import getpass,pathlib; pathlib.Path("/keys/admin_bootstrap_password").write_text(getpass.getpass("New admin password: "))'
exit

docker.int 슬롯의 경우 lab-admin은 실행 중인 vcf-ops-mcp-web 컨테이너 내부의 호스트 일반 관리 채널을 통해 동일한 일회성 작업을 수행합니다. 배포 키는 이를 수행할 수 없고 수행해서도 안 됩니다. 강제 명령 허용 목록이 의도적으로 exec를 제외하기 때문입니다. 파일 경로와 모드는 동일합니다. CI는 부트스트랩 암호를 절대 수신하지 않습니다.

http://localhost:8000/admin/login을 열고 admin으로 로그인한 후:

  1. VCF Ops 대상을 등록합니다. 새 대상은 항상 read_only입니다. 프로덕션 FQDN은 서버 측에서 인식되며 이 MVP에서는 절대 actions로 전환할 수 없습니다.

  2. 필요한 구현된 읽기 범위와 하나 이상의 등록된 대상을 선택한 다음 MCP API 키를 발급합니다. 평문 키는 한 번만 표시됩니다. SHA-256 다이제스트만 저장됩니다.

  3. Streamable HTTP URL http://localhost:8000/mcp/ 및 헤더 Authorization: Bearer <표시된-키>로 MCP 클라이언트를 구성합니다.

  4. list_targets를 사용하여 허용된 대상 ID를 확인한 다음 읽기 도구를 호출합니다. VCF 어댑터 인수는 해당 도구의 arguments 객체에 전달됩니다.

  5. /admin/audit를 검사하여 추가 전용 시도 및 최종 레코드를 확인합니다.

프로덕션은 https://vcf-ops-mcp.int.sentania.net을 사용하며, 이는 관리 세션 쿠키를 Secure로 유지합니다. 로컬 HTTP는 PUBLIC_BASE_URL이 명시적으로 http://를 사용할 때만 활성화됩니다.

영구 데이터 및 복구

세 개의 볼륨 루트는 별도의 역할을 가집니다:

볼륨 경로

내용

/data

관리자 해시, 대상 메타데이터, 암호화된 자격 증명 봉투 및 API 키 다이제스트가 포함된 런타임 SQLite 데이터베이스

/keys

생성된 세션 비밀, 감사 인수 다이제스트 키, 버전 관리되는 AES-256-GCM 자격 증명 키링 및 일회용 관리자 부트스트랩 파일

/audit

추가 전용 SQLite 감사 원장

/data, /keys 및 /audit를 별도의 보호된 아티팩트로 백업하십시오. 암호화된 대상 레코드가 남아 있는 동안 /keys를 잃는 것은 의도적으로 복구 불가능합니다. 서버는 기존 암호문 위에 자격 증명 키링을 재생성하는 것을 거부합니다. 기존 배포에 docker compose down -v를 사용하지 마십시오.

프로세스가 감사 시도를 커밋한 후 최종 레코드 전에 종료되면 다음 시작 시 outcome_unknown을 추가합니다. 시도를 다시 쓰거나 성공적인 결과를 만들어내지 않습니다.

MVP 경계

제공됨:

  • 자동 지속 SESSION_SECRET 생성, 직접 프로세스 운영을 위해 명시적 환경 변수 재정의 유지.

  • 지속적인 암호화 대상 구성, 부트스트랩 관리자 로그인, 범위 지정 API 키 발급 및 폐기, 대상 등록 및 감사 보기.

  • 구현된 읽기 어댑터, 대상 검색, 스킬 도구 및 스킬 리소스/프롬프트를 모두 갖춘 인증된 Streamable HTTP. 리소스 및 프롬프트를 통한 스킬 콘텐츠는 스킬 도구와 동일한 read:skills 기능이 필요합니다. 구체적인 리소스 검색만 해당 기능 없이 사용할 수 있습니다.

  • 읽기 전용 대상 자세, API 키 대상 허용 목록, 기본 거부 구현 범위, 프로덕션 대상 하드 블록, 응답 프로젝션 및 캡, 지속적인 도구별 감사.

의도적으로 연기됨:

  • 모든 작업 실행, 작업 가능 키, 보고서 실행, plan/apply 및 비동기 작업 폴링. 이들은 Phase 2 인간 게이트 뒤에 남아 있습니다.

  • UI에서 대상 편집 및 자격 증명 회전.

  • 완료된 보고서 다운로드. 개발 어플라이언스에는 보고서 변형을 먼저 실행하지 않으면 완료된 보고서가 없기 때문입니다.

  • 외부 노출, NSX, VCFA 자동화, 직접 vCenter 도구 및 PII 스크러빙.

  • 비-LOCAL 인증 소스 검색. 이전의 임의 FQDN 가져오기는 SSRF 경계였기 때문에 안전한 검색 메커니즘이 아니므로 제거되었습니다.

전체 계약 및 측정된 VCF Ops 동작은 docs/SPEC.md, docs/decisions의 승인된 레코드 및 docs/read-plane.md를 참조하십시오.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Read-only MCP server for searching and aggregating logs from VMware Aria Operations for Logs (formerly vRealize Log Insight). Enables querying log events, aggregating with spike detection, and retrieving alert information.
    7
    179 PyPI
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to Aruba Fabric Composer inventory, network state, and VMware vCenter/vSphere visibility through MCP tools over streamable HTTP.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Provides read-only, governance-audited operations for OLVM and oVirt 4.5 engines, enabling inventory, health, capacity, and diagnosis queries over MCP and CLI with audit logging and budget guards.
    18
    MIT