Skip to main content
Glama

afc-mcp

Servidor MCP para Aruba Fabric Composer (AFC) centrado en inventario, estado de red y visibilidad de VMware vCenter/vSphere. Solo lectura.

Incluye

  • server.py: punto de entrada de FastMCP que expone las herramientas MCP (transporte: streamable-http).

  • afc_client.py: cliente de la API de AFC con gestión de tokens de autenticación y endpoints de solo lectura mapeados.

  • Dockerfile: imagen del contenedor para el servidor MCP.

  • docker-compose.yml: entorno de ejecución local (puerto del host 8010 → contenedor 8000).

  • .env.example: plantilla de variables de entorno.

Related MCP server: Cisco RIS MCP Server

Inicio rápido

  1. Crea el archivo de entorno:

cp .env.example .env
  1. Rellena como mínimo:

  • AFC_BASE_URL (raíz del host sin /api, p. ej. https://afc.example.local)

  • AFC_USERNAME

  • AFC_PASSWORD

  • AFC_VERIFY_SSL (opcional, por defecto false)

  • AFC_TIMEOUT (opcional, por defecto 30)

  1. Construye y ejecuta:

docker compose up --build -d
  1. Revisa los logs:

docker compose logs -f

Endpoint

El servidor se comunica mediante MCP a través de streamable-HTTP:

URL:  http://<docker-host>:8010/mcp

Por defecto el endpoint está abierto. Puedes habilitar la autenticación mediante Bearer token para que solo los clientes que presenten un token válido puedan llamar a las herramientas (ver más abajo).

Autenticación (Bearer token)

La autenticación es opcional y está deshabilitada por defecto (compatible con versiones anteriores). Cuando está habilitada, cada solicitud MCP debe llevar una cabecera Authorization: Bearer <token>; las solicitudes sin un token válido se rechazan con 401.

Los tokens tienen nombre (uno por cliente) y se almacenan en secrets/.tokens (ignorado por git, montado con lectura-escritura en el contenedor).

  1. Crea el primer token (ejecuta en el host o dentro del contenedor):

# on the host (stdlib only, no dependencies needed)
cd afc-mcp
python afc_token_manager.py generate --name "vscode-dev" --description "Laptop VSCode"

# ...or inside the running container
docker compose exec afc-mcp python afc_token_manager.py generate --name "vscode-dev"

El comando imprime el token en texto plano una vez — cópialo ahora.

  1. Habilita la autenticación y (re)inicia el servidor:

# in .env or the shell environment
AFC_AUTH_ENABLED=true

docker compose up -d --build

Red de seguridad: si AFC_AUTH_ENABLED=true pero aún no existe ningún token, el servidor se inicia en modo LOCKED y rechaza cualquier solicitud (503) hasta que se cree un token y se reinicie el contenedor. Esto evita exponer accidentalmente un endpoint abierto.

Gestiona los tokens con la CLI:

python afc_token_manager.py list                 # masked preview
python afc_token_manager.py show --name vscode-dev  # reveal a value
python afc_token_manager.py revoke --name vscode-dev

Revocar o añadir un token requiere reiniciar el contenedor para que surta efecto.

Nota: MCP_HOST / MCP_PORT solo controlan dónde escucha el servidor dentro del contenedor (0.0.0.0:8000, mapeado al host 8010). No tienen relación con la autenticación — indican dónde escucha el servidor, no quién puede llamarlo.

Integración con VS Code

VS Code (con GitHub Copilot / modo agente) descubre los servidores MCP desde un archivo mcp.json.

  1. Crea .vscode/mcp.json en tu espacio de trabajo (o añádelo a tu mcp.json de usuario):

{
  "servers": {
    "afc-mcp": {
      "type": "http",
      "url": "http://localhost:8010/mcp"
    }
  }
}

Reemplaza localhost con la dirección del host Docker si el contenedor se ejecuta en otro lugar.

Si la autenticación está habilitada, añade el Bearer token como cabecera:

{
  "servers": {
    "afc-mcp": {
      "type": "http",
      "url": "http://localhost:8010/mcp",
      "headers": { "Authorization": "Bearer afc_xxxxxxxx" }
    }
  }
}
  1. Abre la Paleta de comandos → MCP: List Servers, selecciona afc-mcp e inícialo.

  2. En la vista de Chat (modo agente), las herramientas de AFC aparecen en el selector de herramientas.

Integración con Claude Desktop

Claude Desktop se conecta a servidores locales (stdio) por defecto. Para acceder a este servidor streamable-HTTP, conéctalo con mcp-remote.

Edita claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "afc-mcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:8010/mcp"]
    }
  }
}

Reinicia Claude Desktop; afc-mcp aparece en el menú de herramientas.

Alternativamente, las versiones recientes de Claude Desktop admiten servidores MCP remotos directamente en Configuración → Conectores → Añadir conector personalizado usando la misma URL.

Herramientas MCP disponibles

Servidor y sistema

  • get_server_status — accesibilidad/salud del servidor MCP.

  • get_system_info — información del sistema AFC.

Switches y fabrics

  • list_switches, get_switch — inventario de switches y detalle por switch (puertos, software, etiquetas).

  • list_fabrics, get_fabric — inventario de fabrics y sus miembros.

Enrutamiento y overlay

  • list_vrfs, get_vrf — inventario de VRF y detalle.

  • get_vrf_routes — tabla de enrutamiento IP de VRF (RIB) con búsqueda de siguiente salto. Acepta VRF y switch por nombre o UUID; con un destination (IP de host o CIDR) hace una coincidencia de prefijo más largo y devuelve la(s) ruta(s) ganadora(s) y el/los siguiente(s) salto(s).

  • get_vrf_arp — tabla ARP de VRF (asociaciones IP-MAC) aprendidas en los switches. Acepta VRF y switch por nombre o UUID; pasa switch para limitar la tabla a un solo switch. Cada entrada expone la IP/MAC, la interfaz, el puerto físico, el switch propietario y el estado de alcanzabilidad del vecino (alcanzable, obsoleto, incompleto, …).

  • get_vrf_ip_interfaces — interfaces L3 (IP) de VRF. Acepta VRF y switch por nombre o UUID; filtra por if_type (routed, vlan, loopback, evpn). Con include_status (por defecto activo), el estado operativo (admin up/down, MAC, IP MTU, dirección IPv4) se devuelve junto con la configuración.

  • get_vrf_static_routes — rutas estáticas IP configuradas en una VRF (prefijo de destino, siguiente salto o nullroute/discard, interfaz del siguiente salto, distancia, etiqueta, tipo y switches aplicados). Acepta VRF y switch por nombre o UUID.

  • get_vrf_bgp_status, get_vrf_bgp_summary — estado de BGP y resumen por VRF.

  • get_vrf_ospf_neighbors, get_vrf_ospf_summary — vecinos OSPF y resumen por VRF.

  • list_evpn, list_evpn_routes — instancias y rutas EVPN.

  • get_vrf_virtual_environment — entorno virtual vinculado a una VRF.

Sitios y resumen

  • list_afc_sites, get_afc_site_inventory — sitios (remotos) de AFC y su inventario.

  • get_network_overview — instantánea agregada del estado de la red.

Salud

  • list_health_alerts — alertas de salud activas en AFC.

  • run_health_check — estado agregado de: alertas, salud de switch/fabric, adyacencias BGP/OSPF, estado de HA (opcional) y licencia.

Integraciones y VMware vCenter/vSphere

  • list_integrations — todos los paquetes de integración, sus servidores remotos y estado de conexión.

  • list_vmware_integrations — solo vSphere: un elemento por cada vCenter configurado con dirección del servidor, estado de conexión y mensaje de fallo.

  • get_vmware_inventory — hosts de VMware con ubicación (vCenter, datacenter, cluster, dominio) y estado (estados de NIC físicas, desglose por VM), así como vSwitches, Port Groups y VMs. Filtro opcional por nombre de host ESXi.

  • list_vmware_vms — inventario plano de VMs con estado de encendido y ubicación (host ESXi, cluster, datacenter, vCenter), IPs y etiquetas. Filtros opcionales: power_state, host_name.

  • get_vm_attachment — traza la conexión de red de una VM de extremo a extremo (vNIC → port group → vSwitch → uplink host → switch/puerto físico).

Notas

  • AFC_BASE_URL debe ser la raíz del host sin /api; el cliente añade el prefijo /api.

  • La autenticación de la API usa POST /api/v2/auth/token con los encabezados X-Auth-Username y X-Auth-Password; el token se reutiliza y se renueva automáticamente en 401.

  • El paquete vSphere no expone un campo de energía/salud por host: el estado del host se deduce de los estados de las NIC físicas y del recuento de VMs encendidas; vcenter es el UUID de la instancia de vSphere.

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
    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
  • 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
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables read-only access to managed network devices over SSH or Telnet via MCP, allowing users to probe devices, retrieve redacted running or startup configs, gather facts and interfaces, back up multiple devices, and compare configs for drift or unsaved changes.

View all related MCP servers

Related MCP Connectors

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

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

  • Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.

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/legalla/hpe-afc-mcp'

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