Skip to main content
Glama
sentania-labs

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

El 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: appd-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:local

En otra terminal:

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

Una 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: "))'
exit

Para 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:

  1. 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.

  2. 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.

  3. Configure el cliente MCP con la URL HTTP Streamable http://localhost:8000/mcp/ y el encabezado Authorization: Bearer <clave-mostrada>.

  4. Use list_targets para descubrir los IDs de destino permitidos, luego llame a una herramienta de lectura. Los argumentos del adaptador de VCF se pasan en el objeto arguments de esa herramienta.

  5. Inspeccione /admin/audit para 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

/data

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

/keys

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

/audit

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:skills que 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.

F
license - not found
Not graded
quality - not tested
D
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 Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only access to query and retrieve information about devices, fleets, events, and configurations managed by Flight Control through a safe integration layer supporting filtering and selector-based queries.
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for AppDynamics that exposes 12 task-oriented tools to query applications, topology, metrics, snapshots, health rules, anomalies, events, alerting config, analytics events, and dependency maps via OAuth API-client credentials.
    12
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.
    5
    14
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

  • XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.

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/sentania-labs/vcf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server