Skip to main content
Glama

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-Port 8010 → Container 8000).

  • .env.example: Vorlage für Umgebungsvariablen.

Related MCP server: Cisco RIS MCP Server

Schnellstart

  1. Env-Datei erstellen:

cp .env.example .env
  1. Mindestens ausfüllen:

  • AFC_BASE_URL (Host-Root ohne /api, z. B. https://afc.example.local)

  • AFC_USERNAME

  • AFC_PASSWORD

  • AFC_VERIFY_SSL (optional, Standard false)

  • AFC_TIMEOUT (optional, Standard 30)

  1. Erstellen und ausführen:

docker compose up --build -d
  1. Logs prüfen:

docker compose logs -f

Endpunkt

Der Server spricht MCP über streamable-HTTP:

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

Standardmäß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).

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

  1. Authentifizierung aktivieren und Server (neu) starten:

# in .env or the shell environment
AFC_AUTH_ENABLED=true

docker compose up -d --build

Sicherheitsnetz: Wenn AFC_AUTH_ENABLED=true gesetzt 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-dev

Das Widerrufen oder Hinzufügen eines Tokens erfordert einen Neustart des Containers, um wirksam zu werden.

Hinweis: MCP_HOST / MCP_PORT steuern nur wo der Server lauscht – innerhalb des Containers (0.0.0.0:8000, auf Host 8010 gemappt). 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.

  1. Erstellen Sie .vscode/mcp.json in Ihrem Arbeitsbereich (oder fügen Sie es zu Ihrem Benutzer-mcp.json hinzu):

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

Ersetzen Sie localhost durch 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" }
    }
  }
}
  1. Öffnen Sie die Befehlspalette → MCP: List Servers, wählen Sie afc-mcp und starten Sie ihn.

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

  • Windows: %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 einer destination (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 Sie switch, 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 mit if_type (routed, vlan, loopback, evpn). Mit include_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_URL muss die Host-Root ohne /api sein; der Client fügt das Präfix /api selbst hinzu.

  • Die API-Authentifizierung verwendet POST /api/auth/token mit den Headern X-Auth-Username und X-Auth-Password; das Token wird automatisch wiederverwendet und bei 401 automatisch 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; vcenter ist die vSphere-Instanz-ID.

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