Skip to main content
Glama

afc-mcp

MCP-сервер для Aruba Fabric Composer (AFC), ориентированный на инвентаризацию, состояние сети и видимость VMware vCenter/vSphere. Только чтение.

Состав

  • server.py: точка входа FastMCP, предоставляющая инструменты MCP (транспорт: streamable-http).

  • afc_client.py: клиент API AFC с обработкой токена аутентификации и сопоставленными конечными точками только для чтения.

  • Dockerfile: образ контейнера для MCP-сервера.

  • docker-compose.yml: локальный запуск (порт хоста 8010 → контейнер 8000).

  • .env.example: шаблон переменных окружения.

Related MCP server: Cisco RIS MCP Server

Быстрый старт

  1. Создайте файл окружения:

cp .env.example .env
  1. Заполните как минимум:

  • AFC_BASE_URL (корень хоста без /api, например, https://afc.example.local)

  • AFC_USERNAME

  • AFC_PASSWORD

  • AFC_VERIFY_SSL (необязательно, по умолчанию false)

  • AFC_TIMEOUT (необязательно, по умолчанию 30)

  1. Соберите и запустите:

docker compose up --build -d
  1. Проверьте логи:

docker compose logs -f

Конечная точка

Сервер предоставляет MCP через streamable-HTTP:

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

По умолчанию конечная точка открыта. Вы можете включить аутентификацию по Bearer-токену, чтобы только клиенты с действующим токеном могли вызывать инструменты (см. ниже).

Аутентификация (Bearer-токен)

Аутентификация необязательна и отключена по умолчанию (обратная совместимость). Если она включена, каждый запрос MCP должен содержать заголовок Authorization: Bearer <token>; запросы без действительного токена отклоняются с кодом 401.

Токены являются именованными (по одному на клиента) и хранятся в secrets/.tokens (игнорируется git, монтируется в контейнер в режим чтения и записи).

  1. Создайте первый токен (выполните на хосте или внутри контейнера):

# 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"

Команда выводит токен в открытом виде один раз — скопируйте его сразу.

  1. Включите аутентификацию и (пере)запустите сервер:

# in .env or the shell environment
AFC_AUTH_ENABLED=true

docker compose up -d --build

Страховка: если AFC_AUTH_ENABLED=true, но токена ещё не существует, сервер запускается в режиме LOCKED и отклоняет все запросы (503 и выше), пока не будет создан токен и контейнер перезапущен. Это предотвращает случайное открытие открытой конечной точки.

Управляйте токенами с помощью 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

Отзыв или добавление токена требует перезапуска контейнера, чтобы изменения вступили в силу.

Примечание: MCP_HOST / MCP_PORT управляют только тем, где сервер слушает внутри контейнера (0.0.0.0:8000, проброс на хост 8010). Они не связаны с аутентификацией — они говорят, где сервер слушает, а не кто может вызывать его.

Интеграция с VS Code

VS Code (с GitHub Copilot / режим агента) обнаруживает MCP-серверы из файла mcp.json.

  1. Создайте .vscode/mcp.json в вашей рабочей области (или добавьте в пользовательский mcp.json):

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

Замените localhost на адрес Docker-хоста, если контейнер запущен не на этом компьютере.

Если аутентификация включена, добавьте Bearer-токен в качестве заголовка:

{
  "servers": {
    "afc-mcp": {
      "type": "http",
      "url": "http://localhost:8010/mcp",
      "headers": { "Authorization": "Bearer afc_xxxxxxxx" }
    }
  }
}
  1. Откройте палитру команд → MCP: List Servers, выберите afc-mcp и запустите его.

  2. В представлении чата (режим агента) инструменты AFC станут доступны в списке инструментов.

Интеграция с Claude Desktop

Claude Desktop по умолчанию подключается к локальным (stdio) серверам. Чтобы подключиться к этому серверу на streamable-HTTP, используйте мост mcp-remote.

Измените 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"]
    }
  }
}

Перезапустите Claude Desktop — afc-mcp появится в меню инструментов.

Как вариант, последние сборки Claude Desktop поддерживают удалённые MCP-серверы напрямую через Settings → Connectors → Add custom connector, используя тот же URL.

Доступные MCP-инструменты

Сервер и система

  • get_server_status — доступность и работоспособность MCP-сервера.

  • get_system_info — информация о системе AFC.

Коммутаторы и фабрики

  • list_switches, get_switch — инвентаризация коммутаторов и детальная информация по конкретному коммутатору (порты, ПО, теги).

  • list_fabrics, get_fabric — инвентаризация фабрик и их участников.

Маршрутизация и оверлеи

  • list_vrfs, get_vrf — инвентаризация VRF и детали по конкретному VRF.

  • get_vrf_routes — таблица IP-маршрутизации (RIB) VRF с поиском следующего перехода. Принимает VRF и коммутатор по имени или UUID; при указании destination (IP-адрес хоста или CIDR) выполняет поиск самого длинного префикса и возвращает выбранные маршрут(ы) и следующий переход(ы).

  • get_vrf_arp — ARP-таблица VRF (привязка IP к MAC), полученная с коммутаторов. Принимает VRF и коммутатор по имени или UUID; передайте switch, чтобы ограничить таблицу одним коммутатором. Каждая запись содержит IP/MAC, интерфейс, физический порт, коммутатор-владелец и состояние доступности соседа (reachable, stale, incomplete, …).

  • get_vrf_ip_interfaces — интерфейсы L3 (IP) для VRF. Принимает VRF и коммутатор по имени или UUID; фильтрация по if_type (routed, vlan, loopback, evpn). С include_status (по умолчанию) вместе с конфигурацией возвращается операционное состояние (admin up/down, MAC, IP MTU, duplex, IPv4-адрес).

  • get_vrf_static_routes — статические IP-маршруты, настроенные в VRF (префикс назначения, следующий переход или nullroute/discard, интерфейс следующего перехода, метрика, тег, тип и применённые коммутаторы). Принимает VRF и коммутатор по имени или UUID.

  • get_vrf_bgp_status, get_vrf_bgp_summary — состояние BGP и сводка по VRF.

  • get_vrf_ospf_neighbors, get_vrf_ospf_summary — соседи OSPF и сводка по VRF.

  • list_evpn, list_evpn_routes — экземпляры EVPN и их маршруты.

  • get_v_нц_virtual_environment — виртуальное окружение, привязанное к VRF.

Сайты и обзор

  • list_afc_sites, get_afc_site_inventory — удалённые сайты AFC и их инвентаризация.

  • get_network_overview — агрегированная сводка состояния сети.

Работоспособность

  • list_health_alerts — активные алерты AFC о работоспособности.

  • run_health_check — агрегированная проверка (алерты, состояние коммутаторов/фабрик, BGP/OSPF, соседство, статус HA и лицензий).

Интеграции и VMware vCenter/vSphere

  • list_integrations — все интеграционные пакеты, их удалённые серверы и состояние подключения.

  • list_vmware_integrations — только vSphere: по одной записи на каждый настроенный vCenter с адресом сервера, состоянием подключения и сообщением об ошибке.

  • get_vmware_inventory — хосты VMware с расположением (vCenter, дата-центр, кластер, домен) и состоянием (статус физических NIC, распределение виртуальных машин по статусу питания), а также vSwitches, Port Groups и виртуальные машины. Необязательная фильтрация по имени хоста ESXi.

  • list_vmware_vms — плоская инвентаризация ВМ с статусом питания и размещением (хост ESXi, кластер, дата-центр, vCenter), IP-адресами и тегами. Необязательные фильтры: power_state, host_name.

  • get_vm_attachment — прослеживает полный сетевой путь подключения виртуальной машины (vNIC → Port Group → vSwitch → восходящий канал хоста → физический коммутатор/порт).

Примечания

  • AFC_BASE_URL должен быть корнем хоста без наклонной черты /api; клиент добавляет префикс /api.

  • API-аутентификация использует POST /api/auth/token с заголовками X-Auth-Username и X-Auth-Password; токен переиспользуется и автоматически обновляется при получении 401.

  • vSphere-пакет не предоставляет отдельного поля состояния питания/здоровья для каждого хоста: состояние хоста выводится из статуса физических NIC и количества включённых ВМ; vcenter — это UUID экземпляра 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