afc-mcp
afc-mcp
MCP-Server für Aruba Fabric Composer (AFC) mit Fokus auf Inventar, Netzwerkzustand und Sichtbarkeit von VMware vCenter/vSphere. Schreibgeschützt.
Enthalten
server.py: FastMCP-Einstiegspunkt, der die MCP-Tools bereitstellt (Transport: streamable-http).afc_client.py: AFC-API-Client mit Authentifizierungs-Token-Handling und abgebildeten schreibgeschützten Endpunkten.Dockerfile: Container-Image für den MCP-Server.docker-compose.yml: Lokale Laufzeitumgebung (Host-Port8010→ Container8000)..env.example: Vorlage für Umgebungsvariablen.
Related MCP server: Cisco RIS MCP Server
Schnellstart
Env-Datei erstellen:
cp .env.example .envMindestens ausfüllen:
AFC_BASE_URL(Host-Root ohne/api, z. B.https://afc.example.local)AFC_USERNAMEAFC_PASSWORDAFC_VERIFY_SSL(optional, Standardfalse)AFC_TIMEOUT(optional, Standard30)
Erstellen und ausführen:
docker compose up --build -dLogs prüfen:
docker compose logs -fEndpunkt
Der Server spricht MCP über streamable-HTTP:
URL: http://<docker-host>:8010/mcpStandardmäßig ist der Endpunkt offen. Sie können die Bearer-Token-Authentifizierung aktivieren, sodass nur Clients mit einem gültigen Token die Tools aufrufen können (siehe unten).
Authentifizierung (Bearer-Token)
Die Authentifizierung ist optional und standardmäßig deaktiviert (abwärtskompatibel).
Wenn sie aktiviert ist, muss jede MCP-Anfrage einen Authorization: Bearer <token>-Header
enthalten; Anfragen ohne gültiges Token werden mit 401 abgelehnt.
Tokens sind benannt (eines pro Client) und werden in secrets/.tokens gespeichert (git-ignoriert,
mit Lese-/Schreibzugriff in den Container gemountet).
Erstellen Sie das erste Token (auf dem Host oder im Container ausführen):
# 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"Der Befehl gibt das Klartext-Token einmalig aus — kopieren Sie es jetzt.
Authentifizierung aktivieren und Server (neu) starten:
# in .env or the shell environment
AFC_AUTH_ENABLED=true
docker compose up -d --buildSicherheitsnetz: Wenn
AFC_AUTH_ENABLED=truegesetzt ist, aber noch kein Token existiert, startet der Server im Modus LOCKED und lehnt jede Anfrage (503) ab, bis ein Token erstellt und der Container neu gestartet wurde. Dadurch wird verhindert, dass versehentlich ein offener Endpunkt freigegeben wird.
Tokens mit der CLI verwalten:
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-devDas Widerrufen oder Hinzufügen eines Tokens erfordert einen Neustart des Containers, um wirksam zu werden.
Hinweis:
MCP_HOST/MCP_PORTsteuern nur wo der Server lauscht – innerhalb des Containers (0.0.0.0:8000, auf Host8010gemappt). Sie haben nichts mit der Authentifizierung zu tun — sie sagen wo der Server lauscht, nicht wer ihn aufrufen darf.
Integration in VS Code
VS Code (mit GitHub Copilot / Agent-Modus) findet MCP-Server über eine mcp.json-Datei.
Erstellen Sie
.vscode/mcp.jsonin Ihrem Arbeitsbereich (oder fügen Sie es zu Ihrem Benutzer-mcp.jsonhinzu):
{
"servers": {
"afc-mcp": {
"type": "http",
"url": "http://localhost:8010/mcp"
}
}
}Ersetzen Sie
localhostdurch die Adresse des Docker-Hosts, wenn der Container woanders läuft.Wenn die Authentifizierung aktiviert ist, fügen Sie das Bearer-Token als Header hinzu:
{ "servers": { "afc-mcp": { "type": "http", "url": "http://localhost:8010/mcp", "headers": { "Authorization": "Bearer afc_xxxxxxxx" } } } }
Öffnen Sie die Befehlspalette → MCP: List Servers, wählen Sie
afc-mcpund starten Sie ihn.In der Chat-Ansicht (Agent-Modus) werden die AFC-Tools in der Tool-Auswahl verfügbar.
Integration mit Claude Desktop
Claude Desktop verbindet sich standardmäßig mit lokalen (stdio-)Servern. Um diesen
streamable-HTTP-Server zu erreichen, überbrücken Sie ihn mit mcp-remote.
Bearbeiten Sie 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"]
}
}
}Starten Sie Claude Desktop neu; afc-mcp erscheint im Tools-Menü.
Alternativ unterstützen neuere Claude-Desktop-Builds remote MCP-Server direkt unter Einstellungen → Connectors → Eigenen Connector hinzufügen mit derselben URL.
Verfügbare MCP-Tools
Server & System
get_server_status— Erreichbarkeit/Gesundheitszustand des MCP-Servers.get_system_info— AFC-Systeminformationen.
Switches & Fabrics
list_switches,get_switch— Switch-Inventar und Details pro Switch (Ports, Software, Tags).list_fabrics,get_fabric— Fabric-Inventar und Fabric-Mitglieder.
Routing & Overlay
list_vrfs,get_vrf— VRF-Inventar und VRF-Details.get_vrf_routes— VRF-IP-Routingtabelle (RIB) mit Next-Hop-Suche. Akzeptiert VRF und Switch per Name oder UUID; mit einerdestination(Host-IP oder CIDR) wird ein Longest-Prefix-Abgleich durchgeführt und die gewinnenden Routen sowie die Next-Hops zurückgegeben.get_vrf_arp— VRF-ARP-Tabelle (IP-zu-MAC-Zuordnungen), die auf den Switches gelernt wurde. Akzeptiert VRF und Switch per Name oder UUID; übergeben Sieswitch, um die Tabelle auf einen Switch zu beschränken. Jeder Eintrag enthält IP/MAC, Schnittstelle, physischen Port, zugehörigen Switch und den Erreichbarkeitszustand des Nachbarn (erreichbar, veraltet, unvollständig, …).get_vrf_ip_interfaces— VRF-L3-Schnittstellen (IP). Akzeptiert VRF und Switch per Name oder UUID; filtern Sie mitif_type(routed,vlan,loopback,evpn). Mitinclude_status(Standard) wird der operative Zustand (Admin-Status up/down, MAC, IP-MTU, Duplex, IPv4-Adresse) zusammen mit der Konfiguration zurückgegeben.get_vrf_static_routes— IP-statische Routen, die in einer VRF konfiguriert sind (Zielpräfix, Next Hop oder Nullroute/Discard, Next-Hop-Schnittstelle, Distanz, Tag, Typ und angewendete Switches). Akzeptiert VRF und Switch per Name oder UUID.get_vrf_bgp_status,get_vrf_bgp_summary— BGP-Status und -Zusammenfassung pro VRF.get_vrf_ospf_neighbors,get_vrf_ospf_summary— OSPF-Nachbarn und -Zusammenfassung pro VRF.list_evpn,list_evpn_routes— EVPN-Instanzen und EVPN-Routen.get_vrf_virtual_environment— Virtuelle Umgebung, die an eine VRF gebunden ist.
Standorte & Übersicht
list_afc_sites,get_afc_site_inventory— AFC-Standorte (remote) und deren Inventar.get_network_overview— Aggregierte Momentaufnahme des Netzwerkzustands.
Zustand
list_health_alerts— Aktive AFC-Health-Warnungen.run_health_check— Aggregierter Health-Check (Warnungen, Switch/Fabric-Health, BGP/OSPF-Nachbarschaften, optional HA- und Lizenzstatus).
Integrationen & VMware vCenter/vSphere
list_integrations— Alle Integrationspakete, deren entfernte Server und Verbindungsstatus.list_vmware_integrations— nur vSphere: ein Eintrag pro konfiguriertem vCenter mit Server-Adresse, Verbindungsstatus und Fehlermeldung.get_vmware_inventory— VMware-Hosts mit Standort (vCenter, Rechenzentrum, Cluster, Domäne) und Status (physische NIC-Zustände, Aufschlüsselung der VM-Einschaltzustände) sowie vSwitches, Portgruppen und VMs. Optional nach vCenter-Hostname filtern.list_vmware_vms— Flaches VM-Inventar mit Einschaltzustand und Platzierung (ESXi-Host, Cluster, Rechenzentrum, vCenter), IPs und Tags. Optionale Filter:power_state,host_name.get_vm_attachment— Den vollständigen Netzwerk-Verbindungspfad einer VM nachverfolgen (vNIC → Portgruppe → vSwitch → Host-Uplink → physischer Switch/Port).
Hinweise
AFC_BASE_URLmuss die Host-Root ohne/apisein; der Client fügt das Präfix/apiselbst hinzu.Die API-Authentifizierung verwendet
POST /api/auth/tokenmit den HeadernX-Auth-UsernameundX-Auth-Password; das Token wird automatisch wiederverwendet und bei401automatisch erneuert.Das vSphere-Paket bietet kein Feld für Strom-/Status pro Host an: Der Host-Status wird aus physischen NIC-Zuständen und einer VM-Zählung abgeleitet;
vcenterist die vSphere-Instanz-ID.
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