Skip to main content
Glama
mdegrasse

vcf-automation-mcp-server

by mdegrasse

vcf-automation-mcp

Un servidor MCP que envuelve la API REST de VCF Automation (anteriormente Aria Automation), exponiendo proyectos, elementos de catálogo y despliegues como herramientas MCP para que un cliente LLM pueda explorar y gestionar directamente la infraestructura aprovisionada.

Es la contrapartida de vcf-ops-mcp, que en su lugar envuelve VCF Operations (vROps).

Este servidor puede aprovisionar y eliminar infraestructura real (request_catalog_item, run_deployment_action/run_deployment_resource_action, delete_deployment). Trata su bearer token y el refresh token subyacente de VCF Automation con el mismo cuidado que las credenciales que pueden crear y destruir VMs en todo tu entorno supervisado, porque eso es exactamente lo que son.

Configuración

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env   # then fill in your VCF Automation details

Configuración requerida (mediante .env o variables de entorno reales):

Variable

Descripción

VCFA_BASE_URL

URL base del appliance de VCF Automation, p. ej. https://vcfa.example.com

VCFA_REFRESH_TOKEN

Refresh token de API generado en la interfaz de usuario (Mi cuenta > Tokens de API)

VCFA_ORG

Nombre de la organización (tenant) con la que autenticarse. Déjala sin definir si el token se generó a nivel de proveedor («system»)

VCFA_TOKEN_URL

Avanzado: anula el endpoint de token OAuth calculado automáticamente

VCFA_VERIFY_SSL

Establece false para omitir la verificación TLS contra instancias de laboratorio con certificados autofirmados

VCFA_TIMEOUT

Tiempo de espera por petición en segundos (predeterminado 30)

VCFA_API_VERSION_IAAS

?apiVersion= para la API de IaaS (predeterminado 2021-07-15)

VCFA_API_VERSION_CATALOG

?apiVersion= para la API de Catálogo (predeterminado 2020-08-25)

VCFA_API_VERSION_DEPLOYMENT

?apiVersion= para la API de Despliegue (predeterminado 2020-08-25)

Obtención de un refresh token

A diferencia de VCF Operations (usuario/contraseña), VCF Automation se autentica con un refresh token de API de larga duración que se genera una sola vez en la interfaz de usuario; este servidor lo canjea por tokens de acceso de tipo bearer de corta duración (~1 hora) en tu nombre, guardándolos en caché y renovándolos de forma transparente:

  1. Inicia sesión en la interfaz de usuario de VCF Automation como la organización (tenant) para la que quieras que actúe el servidor.

  2. Haz clic en tu nombre de usuario en la esquina superior derecha > Mi cuenta > Tokens de API > Nuevo.

  3. Ponle nombre al token, créalo y cópialo en VCFA_REFRESH_TOKEN.

  4. Define VCFA_ORG con el nombre de esa organización (tal como se muestra en el Portal de administración de proveedores), o déjala sin definir si generaste el token a nivel de proveedor («system»).

La ruta exacta de intercambio de tokens (VCFA_TOKEN_URL) se ha documentado de forma inconsistente según la versión de VCF Automation; este servidor usa por defecto /tm/oauth/tenant/<org>/token (a nivel de tenant) u /oauth/provider/token (a nivel de proveedor) y permite anularla si la ruta real de tu instancia difiere.

Configuración de transporte y autenticación del servidor (también mediante .env o variables de entorno reales):

Variable

Descripción

VCFA_MCP_TRANSPORT

streamable-http (predeterminado) o stdio

VCFA_MCP_HOST

Host de escucha para streamable-http (predeterminado 127.0.0.1)

VCFA_MCP_PORT

Puerto de escucha para streamable-http (predeterminado 8000)

VCFA_MCP_BEARER_TOKEN

Requerido para streamable-http. Los clientes deben enviar Authorization: Bearer <value>

VCFA_MCP_ALLOWED_HOSTS

Lista permitida de cabeceras Host separadas por comas como protección contra el DNS rebinding

Related MCP server: AI Core MCP Server

Ejecución

Por defecto se ejecuta como un servidor remoto independiente sobre streamable-http, escuchando en 127.0.0.1:8000 y requiriendo un bearer token en cada petición:

export VCFA_MCP_BEARER_TOKEN="$(openssl rand -hex 32)"
vcf-automation-mcp
# or
python -m vcf_automation_mcp

GET /healthz no está autenticado (para comprobaciones de salud de balanceadores de carga/orquestadores); todo lo demás requiere el bearer token. 127.0.0.1 solo escucha en local; para alcanzarlo desde otro host, establece VCFA_MCP_HOST=0.0.0.0 (o ejecútalo detrás de un proxy inverso) y asegúrate de que el bearer token sea lo único que se interpone entre la red y unas credenciales capaces de aprovisionar y eliminar infraestructura en todo tu entorno gestionado. Trátalo, por tanto, como cualquier otro secreto y prefiere la terminación TLS (p. ej., con un proxy inverso) delante de él en lugar de HTTP en claro sobre una red no fiable.

Cuando VCFA_MCP_HOST no es 127.0.0.1/localhost, la protección DNS rebinding de FastMCP (una comprobación de la cabecera Host de la petición entrante) no tiene nada que permitir por defecto, porque solo configura automáticamente esa lista de permitidos para un host de loopback. Si se deja sin definir, no se aplica ninguna comprobación de cabecera Host y el bearer token es tu única barrera; puede ser suficiente en una red de confianza, pero define VCFA_MCP_ALLOWED_HOSTS con el hostname(s)/IP:puerto al que los clientes se conectan realmente (separado por comas) como defensa en profundidad en una red compartida o no fiable.

Apunta un cliente MCP a él como servidor streamable-http, p. ej., en Claude Code:

claude mcp add --transport http vcf-automation http://<host>:8000/mcp \
  --header "Authorization: Bearer <your-token>"

Ejecución con stdio

Para uso local, donde un cliente MCP inicia el propio servidor como subproceso (sin necesidad de exponerlo a la red), establece VCFA_MCP_TRANSPORT=stdio; el bearer token no es necesario en este modo. Configuración de ejemplo para Claude Desktop:

{
  "mcpServers": {
    "vcf-automation": {
      "command": "/absolute/path/to/.venv/bin/vcf-automation-mcp",
      "env": {
        "VCFA_MCP_TRANSPORT": "stdio",
        "VCFA_BASE_URL": "https://vcfa.example.com",
        "VCFA_REFRESH_TOKEN": "changeme",
        "VCFA_ORG": "my-tenant-org"
      }
    }
  }
}

Herramientas

Proyectos

  • list_projects — límites de visibilidad/aislamiento de los recursos aprovisionados

  • get_project — detalle completo de un proyecto

Catálogo

  • list_catalog_items — explora los blueprints/plantillas disponibles para solicitar, opcionalmente por proyecto

  • get_catalog_item — detalle completo de un elemento de catálogo

  • list_catalog_item_versions — versiones publicadas de un elemento de catálogo que se pueden solicitar

  • request_catalog_itemaprovisiona un nuevo despliegue a partir de un elemento de catálogo

Despliegues

  • list_deployments — instancias aprovisionadas de un blueprint/elemento de catálogo

  • get_deployment — detalle completo de un despliegue

  • list_deployment_resources — recursos (VMs, redes, discos, etc.) dentro de un despliegue

  • get_deployment_resource — detalle completo de un recurso dentro de un despliegue

  • list_deployment_actions — acciones day-2 disponibles en un despliegue (p. ej., ChangeLease)

  • list_deployment_resource_actions — acciones day-2 disponibles en un recurso (p. ej., PowerOff)

  • run_deployment_actionejecuta una acción day-2 en un despliegue

  • run_deployment_resource_actionejecuta una acción day-2 en un recurso

  • delete_deploymentdestruye un despliegue y sus recursos aprovisionados

Solicitudes

  • get_request — consulta el estado de una solicitud asíncrona (despliegue/acción day-2)

Pruebas

pip install -e ".[dev]"
pytest

Las pruebas simulan la API HTTP de VCF Automation con respx; no se necesita una instancia real.

Notas

  • Fijado a mcp<2.0.0: la línea 2.x del SDK de MCP para Python renombró FastMCP a MCPServer y lo movió a mcp.server.mcpserver. Este proyecto apunta a la estable (API de) 1.x mcp.server.fastmcp.FastMCP.

  • La superficie de la API REST de VCF Automation es amplia (cuentas en la nube, redes, políticas, onboarding, blueprints, etc.); este servidor cubre intencionadamente solo la via de consumo/day-2 — proyectos, catálogo, despliegues, solicitudes —, no la configuración de infraestructura (cuentas en la nube, zonas, regiones).

F
license - not found
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 Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language interaction with VMware SDDC Manager and vCenter APIs through MCP tools, allowing users to query workload domains, VMs, clusters, and more.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Exposes Azure AI Foundry agents, workflows, and AI Search vector-database capabilities as MCP tools, enabling natural language interaction with agents, semantic search, and index management.
    10
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration

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/mdegrasse/vcf-automation-mcp-server'

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