vcf-ops-mcp
Sentania VCF Ops MCP (no oficial)
vcf-ops-mcp es un servidor MCP contenerizado, de solo lectura por defecto, con una
pequeña interfaz de administración para VCF Operations. El MVP actual expone las lecturas
implementadas de inventario, métricas, alertas, definiciones de informes, destinos y
habilidades a través de HTTP Streamable autenticado. Cada llamada a una herramienta MCP
pasa por el despachador de auditoría duradero.
Este es un proyecto no oficial de laboratorio personal. No es una oferta de Broadcom ni de VMware.
Ejecutar la suite de pruebas
Se requiere Python 3.12 o posterior.
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-testEl nivel de appliance en vivo se omite a menos que se proporcionen sus variables de protección explícitas. Las pruebas normales usan solo respuestas sintéticas de VCF Ops.
Related MCP server: afc-mcp
Compilar e iniciar el contenedor localmente
El servicio crea su secreto de firma de sesión y su llavero de credenciales en el volumen
/keys en el primer inicio. No se requiere un SESSION_SECRET escrito a mano.
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:localEn otra terminal:
curl --fail http://localhost:8000/healthzUna respuesta lista es HTTP 200 e informa las cuatro dependencias como verdaderas:
audit_writable, configuration_ready, session_secret_persistent y
mcp_ready. Una dependencia de auditoría, configuración, clave o MCP no disponible
mantiene el proceso diagnosticable pero devuelve HTTP 503.
El despliegue de laboratorio posee su fijación de imagen y su lanzamiento. El
deploy/compose.yml de referencia conserva la red externa
docker-slots y los mismos tres volúmenes persistentes, pero este repositorio no lo
despliega. Los secretos en tiempo de ejecución nunca pasan por CI ni por el entorno de
compose.
Primer inicio de sesión de administrador
La ruta de arranque aprobada usa un archivo de contraseña proporcionado por el operador. El servicio se inicia saludable sin él, pero el plano de administración permanece inaccesible hasta que el archivo exista. La contraseña debe contener al menos 16 bytes. Se aplica un hash con scrypt en la base de datos en tiempo de ejecución y el archivo de arranque se elimina cuando el primer inicio de sesión inicializa la cuenta. Si esa eliminación falla, un inicio de sesión posterior reintenta la limpieza sin cambiar la contraseña de administrador almacenada.
Para el contenedor local, cree el archivo sin colocar la contraseña en el historial del shell ni en los argumentos del proceso:
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: "))'
exitPara el slot docker.int, lab-admin realiza la misma operación de una sola vez a través del
canal administrativo normal del host dentro del contenedor en ejecución
vcf-ops-mcp-web. La clave de despliegue no puede ni debe realizarla, porque su lista de
permitidos de comandos forzados excluye intencionalmente exec. La ruta del archivo y el
modo son los mismos. CI nunca recibe la contraseña de arranque.
Abra http://localhost:8000/admin/login, inicie sesión como admin, luego:
Registre un destino de VCF Ops. Los nuevos destinos son siempre
read_only. El FQDN de producción se reconoce en el lado del servidor y nunca se puede cambiar a acciones en este MVP.Seleccione los ámbitos de lectura implementados requeridos y uno o más destinos registrados, luego emita una clave de API MCP. La clave en texto plano se muestra una sola vez. Solo se almacena su digest SHA-256.
Configure el cliente MCP con la URL HTTP Streamable
http://localhost:8000/mcp/y el encabezadoAuthorization: Bearer <clave-mostrada>.Use
list_targetspara descubrir los IDs de destino permitidos, luego llame a una herramienta de lectura. Los argumentos del adaptador de VCF se pasan en el objetoargumentsde esa herramienta.Inspeccione
/admin/auditpara ver los registros de intento y terminales de solo anexión.
La producción usa https://vcf-ops-mcp.int.sentania.net, que mantiene la cookie de sesión
de administrador Secure. HTTP local está habilitado solo cuando PUBLIC_BASE_URL
usa explícitamente http://.
Datos persistentes y recuperación
Las tres raíces de volumen tienen trabajos separados:
Ruta de volumen | Contenido |
| Base de datos SQLite en tiempo de ejecución con hash de administrador, metadatos de destino, sobres de credenciales cifrados y digests de claves de API |
| Secreto de sesión generado, clave de digest de argumentos de auditoría, llavero de credenciales AES-256-GCM versionado y el archivo de arranque de administrador de un solo uso |
| Libro mayor de auditoría SQLite de solo anexión |
Haga una copia de seguridad de /data, /keys y /audit como artefactos protegidos
separados. Perder /keys mientras quedan registros de destino cifrados es
intencionalmente irrecuperable. El servidor se niega a regenerar el llavero de
credenciales sobre texto cifrado existente. No use docker compose down -v para un
despliegue establecido.
Si un proceso muere después de confirmar un intento de auditoría pero antes de su registro
terminal, el siguiente inicio agrega outcome_unknown. Nunca reescribe el intento ni
inventa un resultado exitoso.
Límite del MVP
Incluido:
Generación automática y duradera de
SESSION_SECRET, con una anulación explícita de entorno retenida para la operación directa del proceso.Configuración de destino cifrada y duradera, inicio de sesión de administrador de arranque, emisión y revocación de claves de API con ámbito, registro de destinos y visualización de auditoría.
HTTP Streamable autenticado con los adaptadores de lectura implementados, descubrimiento de destinos y tanto herramientas de habilidades como recursos/prompts de habilidades. El contenido de habilidades sobre recursos y prompts requiere la misma capacidad
read:skillsque las herramientas de habilidades; solo el descubrimiento concreto de recursos está disponible sin ella.Postura de destino de solo lectura, listas de permitidos de destinos para claves de API, ámbitos implementados con denegación por defecto, bloqueo duro de destinos de producción, proyección y límites de respuesta, y auditoría duradera por herramienta.
Diferido intencionalmente:
Toda ejecución de acciones, claves con capacidad de acciones, ejecuciones de informes, plan/apply y sondeo de tareas asíncronas. Todo esto permanece detrás de la puerta humana de la Fase 2.
Edición de destinos y rotación de credenciales en la interfaz.
Descarga de informes completados, porque el appliance de desarrollo no tiene informes completados sin antes ejecutar una mutación de informes.
Exposición externa, NSX, automatización de VCFA, herramientas directas de vCenter y limpieza de PII.
Descubrimiento de fuentes de autenticación no LOCALES. La búsqueda anterior de FQDN arbitrario se eliminó porque era un límite de SSRF, no un mecanismo de descubrimiento seguro.
Consulte docs/SPEC.md, los registros aceptados en docs/decisions y docs/read-plane.md para el contrato completo y los comportamientos medidos de VCF Ops.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Read-only access to a Lumin project's logs, metrics, uptime checks, alerts and infrastructure.
Related MCP Servers
- AlicenseAqualityAmaintenanceRead-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.7125 PyPIMIT
- FlicenseNot gradedqualityBmaintenanceProvides read-only access to Aruba Fabric Composer inventory, network state, and VMware vCenter/vSphere visibility through MCP tools over streamable HTTP.-
- FlicenseNot gradedqualityBmaintenanceExposes VMware vROps resources, metrics, and alerts as MCP tools, allowing an LLM client to directly query monitored infrastructure.-
- AlicenseAqualityAmaintenanceProvides 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.17MIT