afc-mcp
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 host8010→ contenedor8000)..env.example: plantilla de variables de entorno.
Related MCP server: Cisco RIS MCP Server
Inicio rápido
Crea el archivo de entorno:
cp .env.example .envRellena como mínimo:
AFC_BASE_URL(raíz del host sin/api, p. ej.https://afc.example.local)AFC_USERNAMEAFC_PASSWORDAFC_VERIFY_SSL(opcional, por defectofalse)AFC_TIMEOUT(opcional, por defecto30)
Construye y ejecuta:
docker compose up --build -dRevisa los logs:
docker compose logs -fEndpoint
El servidor se comunica mediante MCP a través de streamable-HTTP:
URL: http://<docker-host>:8010/mcpPor 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).
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.
Habilita la autenticación y (re)inicia el servidor:
# in .env or the shell environment
AFC_AUTH_ENABLED=true
docker compose up -d --buildRed de seguridad: si
AFC_AUTH_ENABLED=truepero 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-devRevocar o añadir un token requiere reiniciar el contenedor para que surta efecto.
Nota:
MCP_HOST/MCP_PORTsolo controlan dónde escucha el servidor dentro del contenedor (0.0.0.0:8000, mapeado al host8010). 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.
Crea
.vscode/mcp.jsonen tu espacio de trabajo (o añádelo a tumcp.jsonde usuario):
{
"servers": {
"afc-mcp": {
"type": "http",
"url": "http://localhost:8010/mcp"
}
}
}Reemplaza
localhostcon 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" } } } }
Abre la Paleta de comandos → MCP: List Servers, selecciona
afc-mcpe inícialo.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.jsonWindows:
%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 undestination(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; pasaswitchpara 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 porif_type(routed,vlan,loopback,evpn). Coninclude_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_URLdebe 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/tokencon los encabezadosX-Auth-UsernameyX-Auth-Password; el token se reutiliza y se renueva automáticamente en401.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;
vcenteres el UUID de la instancia de vSphere.
This server cannot be installed
Maintenance
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
AlicenseAqualityCmaintenanceRead-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.5141MIT- AlicenseNot gradedqualityBmaintenanceEnables querying Cisco CUCM Real-time Information Service and Performance Monitor data through MCP tools for device status, CTI connections, counter monitoring, and cluster health.28MIT
- 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.7MIT
- FlicenseNot gradedqualityCmaintenanceEnables 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.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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