afc-mcp
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
Быстрый старт
Создайте файл окружения:
cp .env.example .envЗаполните как минимум:
AFC_BASE_URL(корень хоста без/api, например,https://afc.example.local)AFC_USERNAMEAFC_PASSWORDAFC_VERIFY_SSL(необязательно, по умолчаниюfalse)AFC_TIMEOUT(необязательно, по умолчанию30)
Соберите и запустите:
docker compose up --build -dПроверьте логи:
docker compose logs -fКонечная точка
Сервер предоставляет MCP через streamable-HTTP:
URL: http://<docker-host>:8010/mcpПо умолчанию конечная точка открыта. Вы можете включить аутентификацию по Bearer-токену, чтобы только клиенты с действующим токеном могли вызывать инструменты (см. ниже).
Аутентификация (Bearer-токен)
Аутентификация необязательна и отключена по умолчанию (обратная совместимость). Если она включена, каждый запрос MCP должен содержать заголовок Authorization: Bearer <token>; запросы без действительного токена отклоняются с кодом 401.
Токены являются именованными (по одному на клиента) и хранятся в secrets/.tokens (игнорируется git, монтируется в контейнер в режим чтения и записи).
Создайте первый токен (выполните на хосте или внутри контейнера):
# 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"Команда выводит токен в открытом виде один раз — скопируйте его сразу.
Включите аутентификацию и (пере)запустите сервер:
# 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.
Создайте
.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" } } } }
Откройте палитру команд → MCP: List Servers, выберите
afc-mcpи запустите его.В представлении чата (режим агента) инструменты AFC станут доступны в списке инструментов.
Интеграция с Claude Desktop
Claude Desktop по умолчанию подключается к локальным (stdio) серверам. Чтобы подключиться к этому серверу на streamable-HTTP, используйте мост mcp-remote.
Измените 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"]
}
}
}Перезапустите 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.
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