API VEGA

AKS-MCP

AKS-MCP — это сервер Model Context Protocol (MCP), который позволяет AI‑ассистентам взаимодействовать с кластерами Azure Kubernetes Service (AKS). Он служит мостом между AI‑инструментами (такими как GitHub Copilot, Claude и другими MCP‑совместимыми AI‑помощниками) и AKS, переводя запросы на естественном языке в операции AKS и возвращая результаты в формате, понятном этим инструментам.

Он позволяет AI‑инструментам:

  • выполнять CRUD‑операции над ресурсами AKS
  • получать сведения, связанные с кластерами AKS (VNets, Subnets, NSGs, Route Tables и т. п.)
  • управлять операциями Azure Fleet для сценариев с несколькими кластерами

Поддерживаемая модель развёртывания и вопросы безопасности

AKS‑MCP предназначен для локального запуска одним доверенным пользователем в качестве моста между собственным AI‑помощником этого пользователя и его ресурсами Azure/AKS. Это единственная поддерживаемая и обеспечиваемая модель развёртывания проекта.

Граница доверия

AKS‑MCP выполняет команды командной строки — включая az, kubectl, helm, cilium и hubbleиспользуя идентичность процесса, под которым он запущен. Он не осуществляет авторизацию по каждому вызывающему и не пытается изолировать выполняемые команды. Поэтому:

Любой, кто может вызвать AKS‑MCP, фактически имеет полные Azure и Kubernetes‑права той идентичности, под которой запускается сервер.

Это включает возможность получения повторно используемых учётных данных. Например, в режимах readwrite или admin вызывающий может обратиться к Azure Resource Manager и AKS с полной властью идентичности сервера, и kubectl или helm могут быть использованы для чтения Secrets, выпуска токенов учетной записи сервиса или развёртывания любых рабочих нагрузок в кластере. Это следствие открытой CLI‑поверхности выполнения — ее не устраняет флаг --access-level.

Специфические команды Azure CLI, возвращающие учётные данные (например, az account get-access-token и az aks get-credentials) отклоняются явным списком запрета (denylist). Этот список снижает риск случайного раскрытия — он не является границей безопасности, он не охватывает поверхности kubectl, helm, cilium или hubble и на него не следует полагаться для ограничения недобросовестного вызывающего.

Рассматривайте возможность вызова AKS‑MCP как эквивалент передачи оболочки, уже вошедшей в систему под идентичностью сервера.

Сетевые угрозы и локальные полномочия

Удаление транспортов HTTP/SSE и официальных артефактов удалённого развёртывания устраняет поддерживаемый сервис, доступный по сети, и соответствующую модель угроз удалённого вызывающего. В поддерживаемой конфигурации AKS‑MCP не имеет слушателя, принимающего запросы из сети.

Это не делает локального клиента MCP, его подсказки или --access-level авторизационной границей. Человек или процесс, контролирующий локальный клиент, его конфигурацию сервера или AKS‑MCP, обычно может выполнить те же CLI‑команды под той же идентичностью без участия AKS‑MCP. Защита рабочей станции, конфигурации клиента и локальных учётных данных остаётся на ответственности оператора.

Что такое --access-level и что им не является

--access-level (readonly / readwrite / admin) — это режим‑ограничитель, снижающий риск случайного вреда со стороны AI‑помощника, который неверно интерпретирует запрос. Это не граница безопасности против сознательно вредоносного вызывающего и не должна использоваться как защита от недоверенного лица. Не размещайте AKS‑MCP на доступе тех вызовов, которым вы напрямую не доверяете использование ваших Azure/Kubernetes учётных данных.

Рекомендуемая (поддерживаемая) конфигурация

  • Запуск как локальный подпроцесс, запускаемый по требованию вашего локального MCP‑клиента.
  • Аутентификация своим разработческим идентификатором через az login.
  • Предоставляйте идентификности только те разрешения Azure/Kubernetes, которые реально необходимы.

Неподдерживаемые модели развёртывания

AKS‑MCP поддерживает только stdio и должен запускаться как локальный подпроцесс MCP‑клиента. Не размещайте его через HTTP, SSE, контейнерный сервис, Helm, Kubernetes, прокси или шлюз. Любой сторонний мост выходит за рамки безопасности и поддержки проекта.

Как это работает

AKS‑MCP соединяется с Azure с помощью Azure SDK и предоставляет набор инструментов, которые AI‑ассистенты могут использовать для взаимодействия с ресурсами AKS. Он использует Model Context Protocol (MCP) для упрощения коммуникации, позволяя AI‑инструментам делать API‑вызовы к Azure и интерпретировать ответы.

Аутентификация в Azure CLI

AKS‑MCP использует Azure CLI (az) для операций AKS. Аутентификация в Azure CLI выполняется в следующем порядке:

  • Service Principal (секрет клиента): когда заданы переменные окружения AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, выполняется вход через сервисного принципала командой:
    az login --service-principal -u CLIENT_ID -p CLIENT_SECRET --tenant TENANT_ID
  • Workload Identity ( federated token ): когда заданы AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE, выполняется вход через федеративный токен:
    az login --service-principal -u CLIENT_ID --tenant TENANT_ID --federated-token TOKEN
  • User‑assigned Managed Identity (идентификатор клиента управляемого идентификатора): когда задан только AZURE_CLIENT_ID, выполняется вход через user‑assigned managed identity:
    az login --identity -u CLIENT_ID
  • System‑assigned Managed Identity: когда AZURE_MANAGED_IDENTITY установлен в system, выполняется вход через system‑assigned managed identity:
    az login --identity
  • Существующий вход: если ни одна из вышеупомянутых переменных не установлена, AKS‑MCP предполагает, что вы уже аутентифицированы (например, через az login) и использует существующую сессию.

Опциональный выбор подписки:

  • Если установлена AZURE_SUBSCRIPTION_ID, AKS‑MCP выполнит az account set --subscription SUBSCRIPTION_ID после входа.

Замечания и безопасность:

  • Файл federated token должен иметь точный путь /var/run/secrets/azure/tokens/azure-identity-token и строго валидируется; другие пути отклоняются.
  • После каждого входа AKS‑MCP подтверждает аутентификацию командой az account show --query id -o tsv.
  • Убедитесь, что Azure CLI установлен и доступен в PATH.

Используемые переменные окружения:

  • AZURE_TENANT_ID
  • AZURE_CLIENT_ID
  • AZURE_CLIENT_SECRET
  • AZURE_FEDERATED_TOKEN_FILE
  • AZURE_SUBSCRIPTION_ID
  • AZURE_MANAGED_IDENTITY (установить в system, чтобы использовать system‑assigned managed identity)

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

Сервер AKS‑MCP предоставляет объединённые инструменты для взаимодействия с кластерами AKS. По умолчанию сервер использует унифицированные инструменты (call_az для операций Azure и call_kubectl для операций Kubernetes), что обеспечивает более гибкий интерфейс. Для обратной совместимости можно включить устаревшие специализированные инструменты, установив переменную окружения USE_LEGACY_TOOLS=true.

Некоторые инструменты потребуют прав read‑write или admin для запуска поды для отладки в вашем кластере. Чтобы включить права read‑write или admin для сервера AKS‑MCP, добавьте параметр access level в ваш конфигурационный файл MCP:

  • Откройте файл mcp.json (или MCP: List Servers -> AKS‑MCP -> Show Configuration Details в Command Palette для VSCode).
  • В секцию "args" добавьте параметры: --access-level, readwrite / admin

Например:

"args": [
  "--access-level",
  "readwrite"
]

Эти инструменты предназначены для обеспечения широкой функциональности через унифицированные интерфейсы:

Azure CLI Operations (Unified Tool) Tool: call_az (по умолчанию, доступен, когда USE_LEGACY_TOOLS не установлен или равен false)

Унифицированный инструмент для выполнения команд Azure CLI напрямую. Этот инструмент обеспечивает гибкий интерфейс для выполнения любой команды Azure CLI.

Параметры:

  • cli_command: полная команда Azure CLI для выполнения (например, az aks list --resource-group myRG, az vm list --subscription <sub-id>)
  • timeout: необязательное время ожидания в секундах (по умолчанию 120)

Пример использования:

{
  "cli_command": "az aks list --resource-group myResourceGroup --output json"
}

Доступ и контроль:

  • readonly: доступны только операции чтения
  • readwrite/admin: доступны как чтение, так и запись

Внимание: команды должны быть простыми вызовами Azure CLI без оболочечных возможностей (пайпы |, перенаправления >, <, подстановки команд или точек с запятой ;).

AKS Cluster Management (Legacy Tool) Tool: az_aks_operations (доступно при USE_LEGACY_TOOLS=true)

Единый инструмент для управления Azure Kubernetes Service (AKS) и связанных операций.

Доступные операции:

  • Read‑Only (все уровни доступа):
    • show — показать детали кластера
    • list — перечислить кластеры в подписке/группе ресурсов
    • get-versions — получить доступные версии Kubernetes
    • check-network — проверить исходящее сетевое соединение
    • nodepool-list — список node pool в кластере
    • nodepool-show — детали node pool
    • account-list — список подписок Azure
  • Read‑Write (readwrite / admin):
    • create — создать новый кластер
    • delete — удалить кластер
    • scale — масштабировать количество нод кластера
    • start — запустить остановленный кластер
    • stop — остановить работающий кластер
    • update — обновить конфигурацию кластера
    • upgrade — обновить версию Kubernetes
    • nodepool-add — добавить node pool в кластер
    • nodepool-delete — удалить node pool
    • nodepool-scale — масштабировать node pool
    • nodepool-upgrade — обновить node pool
    • account-set — активировать подписку
    • login — аутентификация в Azure
  • Admin‑Only (admin):
    • get-credentials — получить учетные данные кластера для доступа kubectl

Network Resource Management Tool: aks_network_resources

Унифицированный инструмент для получения информации о сетевых ресурсах Azure, используемых кластерами AKS.

Доступные типы ресурсов:

  • all — информация по всем сетевым ресурсам
  • vnet — информация о Virtual Network
  • subnet — информация о Subnet
  • nsg — информация о Network Security Group
  • route_table — информация о Route Table
  • load_balancer — информация о Load Balancer
  • private_endpoint — информация о Private endpoint

Monitoring and Diagnostics Tool: aks_monitoring

Унифицированный инструмент для мониторинга и диагностики Azure для AKS.

Доступные операции:

  • metrics — перечислить значения метрик ресурсов
  • resource_health — получить события состояния ресурсов AKS
  • app_insights — выполнить запросы KQL к телеметрии Application Insights
  • diagnostics — проверить, настроены ли диагностические параметры кластера
  • control_plane_logs — выполнить запросы к логам control plane AKS с ограничениями по безопасности и по времени

Compute Resources Tool: get_aks_vmss_info

  • Получить детальную конфигурацию VMSS для node pools в кластере AKS

Tool: collect_aks_node_logs

Собрать системные логи узлов AKS VMSS для отладки и устранения проблем.

Параметры:

  • aks_resource_id — идентификатор ресурса AKS
  • vmss_name — имя VMSS
  • instance_id — идентификатор экземпляра VMSS
  • log_type — тип логов (kubelet, containerd, kernel, syslog)
  • lines — количество последних строк лога (по умолчанию 500, максимум 2000)
  • since — диапазон времени для логов (например, 1h, 30m, 2d) — имеет преимущество над lines
  • level — фильтр уровня логов (ERROR, WARN, INFO)
  • filter — фильтр по ключевому слову (регистронезависимое сочетание)

Пример использования:

{
  "aks_resource_id": "/subscriptions/.../managedClusters/myAKS",
  "vmss_name": "aks-nodepool1-12345678-vmss",
  "instance_id": "0",
  "log_type": "kubelet",
  "since": "1h",
  "level": "ERROR",
  "filter": "ImagePullBackOff"
}

Ограничения:

  • Поддерживаются только Linux‑узлы VMSS (Windows‑узлы и standalone‑VM ещё не поддерживаются)
  • Только по одному выполнению команды за раз на экземпляр VMSS

Tool: az_compute_operations

Унифицированный инструмент для управления Azure Virtual Machines (VM) и Virtual Machine Scale Sets (VMSS), используемыми AKS.

Доступные операции:

  • show — получить детали VM/VMSS
  • list — перечислить VMs/VMSS в подписке или группе ресурсов
  • get-instance-view — получить статус выполнения
  • start — запустить VM
  • stop — остановить VM
  • restart — перезапустить VM/VMSS
  • reimage — переобразить VMSS (VM не поддерживает переобразование)

Типы ресурсов: vm (одна виртуальная машина), vmss (кластер виртуальных машин)

Fleet Management Tool: az_fleet

Комплексное управление Azure Fleet для сценариев с несколькими кластерами.

Доступные операции:

  • Fleet Operations: list, show, create, update, delete, get-credentials
  • Member Operations: list, show, create, update, delete
  • Update Run Operations: list, show, create, start, stop, delete
  • Update Strategy Operations: list, show, create, delete
  • ClusterResourcePlacement Operations: list, show, get, create, delete

Поддерживает как управление Azure Fleet, так и CRD‑операции Kubernetes ClusterResourcePlacement.

Diagnostic Detectors Tool: aks_detector

Унифицированный инструмент для выполнения операций диагностических детекторов AKS.

Доступные операции:

  • list — перечислить все доступные детекторы AKS
  • run — запустить конкретный детектор AKS
  • run_by_category — запустить все детекторы в заданной категории

Параметры:

  • operation (обязательно): операция (list, run, run_by_category)
  • aks_resource_id (обязательно): идентификатор ресурса AKS
  • detector_name (для run обязательно): имя детектора для запуска
  • category (для run_by_category обязательно): категория детектора
  • start_time (для run и run_by_category обязательно): время начала в формате UTC ISO (за последние 30 дней)
  • end_time (для run и run_by_category обязательно): время окончания в формате UTC ISO (за последние 30 дней, максимум 24ч от начала)

Доступные категории:

  • Best Practices
  • Cluster and Control Plane Availability and Performance
  • Connectivity Issues
  • Create, Upgrade, Delete and Scale
  • Deprecations
  • Identity and Security
  • Node Health
  • Storage

Примеры использования:

{
  "operation": "list",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx"
}
{
  "operation": "run",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx",
  "detector_name": "node-health-detector",
  "start_time": "2025-01-15T10:00:00Z",
  "end_time": "2025-01-15T12:00:00Z"
}

Azure Advisor Tool: aks_advisor_recommendation

Получать и управлять рекомендациями Azure Advisor для AKS‑к clusters.

Доступные операции:

  • list — перечислить рекомендации с возможностями фильтрации
  • report — сгенерировать отчеты по рекомендациям
  • Фильтры: resource_group, cluster_names, category (Cost, HighAvailability, Performance, Security), severity (High, Medium, Low)

Kubernetes Operations Примечание: Все Kubernetes‑инструменты (kubectl, helm, cilium, hubble) включены по умолчанию. Используйте --enabled-components для выборочного включения компонентов.

Unified kubectl Tool (Default)

Tool: call_kubectl (по умолчанию, доступен, когда USE_LEGACY_TOOLS не установлен или установлен в false)

Унифицированный инструмент для выполнения команд kubectl напрямую. Этот инструмент обеспечивает гибкий интерфейс для выполнения любых команд kubectl с полной поддержкой аргументов.

Параметры:

  • args — аргументы команды kubectl (например, get pods, describe node mynode, apply -f deployment.yaml)

Пример использования:

{
  "args": "get pods -n kube-system -o wide"
}

Доступ и контроль доступа:

  • readonly: разрешены только операции чтения
  • readwrite/admin: доступны все операции, включая мутирующие (create, delete, apply и т. п.)

Legacy kubectl Tools (Specialized)

Доступны при USE_LEGACY_TOOLS=true:

  • Read-Only (все уровни доступа):
    • kubectl_resources — просмотр ресурсов (get, describe) — ограничено операциями чтения в режиме readonly
    • kubectl_diagnostics — диагностика (логи, события, top, exec, cp)
    • kubectl_cluster — информация о кластере (cluster-info, api-resources, api-versions, explain)
    • kubectl_config — управление конфигурацией (diff, auth, config) — ограничено чтением в readonly
  • Read-Write/Admin (readwrite/admin):
    • kubectl_resources — полное управление ресурсами (get, describe, create, delete, apply, patch, replace, cordon, uncordon, drain, taint)
    • kubectl_workloads — жизненный цикл workload (run, expose, scale, autoscale, rollout)
    • kubectl_metadata — управление метаданными (label, annotate, set)
    • kubectl_config — полное управление конфигурацией (diff, auth, certificate, config)

Helm

Tool: call_helm

Helm — пакетный менеджер для Kubernetes.

Cilium

Tool: call_cilium

CLI для Cilium — сети и безопасности на базе eBPF.

Hubble

Tool: call_hubble

Hubble — наблюдаемость сети для Cilium.

Real-time Observability Tool: inspektor_gadget_observability

Инструмент реального времени наблюдаемости для AKS с использованием eBPF.

Доступные действия:

  • deploy — развернуть Inspektor Gadget в кластер (через расширение AKS)
  • undeploy — удалить расширение Inspektor Gadget из кластера
  • is_deployed — проверить статус развертывания
  • run — выполнить одиночные гаджеты
  • start — запустить непрерывные гаджеты
  • stop — остановить гаджеты
  • get_results — получить результаты гаджета
  • list_gadgets — перечислить доступные гаджеты

Доступные гаджеты:

  • observe_dns — мониторинг DNS‑запросов и ответов
  • observe_tcp — мониторинг TCP‑соединений
  • observe_file_open — мониторинг операций с файловой системой
  • observe_process_execution — мониторинг выполнения процессов
  • observe_signal — мониторинг доставки сигналов
  • observe_system_calls — мониторинг системных вызовов
  • top_file — топ файлов по операциям ввода/вывода
  • top_tcp — топ TCP‑соединений по трафику
  • tcpdump — захват сетевых пакетов

Как установить

Требования

  • Установить Azure CLI и выполнить вход:
az login

VS Code с GitHub Copilot (рекомендовано)

Одноразовая установка через AKS‑расширение

Наиболее простой способ начать работу с AKS‑MCP — через расширение Azure Kubernetes Service для VS Code.

Шаг 1: Установка расширения AKS
  • Откройте VS Code и перейдите в Extensions (Ctrl+Shift+X на Windows/Linux или Cmd+Shift+X на macOS).
  • Найдите Azure Kubernetes Service.
  • Установите официальное расширение AKS от Microsoft.
Шаг 2: Запуск сервера AKS‑MCP
  • Откройте Command Palette (Ctrl+Shift+P на Windows/Linux или Cmd+Shift+P на macOS).
  • Найдите и запустите: AKS: Setup AKS MCP Server.

После успешной установки сервер будет отображаться в MCP: List Servers (через Command Palette). С этого момента вы сможете запустить MCP‑сервер или посмотреть его статус.

Шаг 3: Начало работы с AKS‑MCP

После запуска MCP‑сервер будет доступен в выпадающем списке Copilot Chat: Configure Tools под MCP Server: AKS MCP, чтобы расширять контекст подсказок под вашу AKS‑среду. По умолчанию все инструменты AKS‑MCP включены. Вы можете просмотреть список доступных инструментов и отключить любые, которые не требуются в вашей задаче.

Попробуйте запрос вроде: «Перечисли все мои AKS‑кластеры», чтобы начать использовать инструменты AKS‑MCP в Copilot.

WSL‑конфигурация

Конфигурация MCP различается в зависимости от того, запущен ли VS Code на Windows или в WSL:

Windows Host (VS Code на Windows): используйте команду wsl для вызова бинарника WSL из Windows:

{
  "servers": {
    "aks-mcp": {
      "type": "stdio",
      "command": "wsl",
      "args": [
        "--",
        "/home/you/.vs-kubernetes/tools/aks-mcp/aks-mcp"
      ]
    }
  }
}

Remote-WSL (VS Code в WSL): вызывайте бинарник напрямую или используйте оболочку‑обёртку:

{
  "servers": {
    "aks-mcp": {
      "type": "stdio",
      "command": "bash",
      "args": [
        "-c",
        "/home/you/.vs-kubernetes/tools/aks-mcp/aks-mcp"
      ]
    }
  }
}

Troubleshooting ENOENT Errors

Если появляются ошибки "spawn ENOENT", проверьте окружение VS Code:

  • Windows host: убедитесь, что путь к бинарнику WSL корректен и доступен через wsl -- ls /path/to/aks-mcp
  • Remote-WSL: НЕ используйте wsl в качестве command — используйте прямые пути или оболочку‑обёртку, как показано выше

Преимущества: расширение AKS автоматически обрабатывает загрузку бинарников, обновления и конфигурацию, гарантируя актуальную версию и оптимальные настройки.

Альтернативные методы установки

Ручная установка бинарника

Шаг 1: Скачать бинарник

Выберите платформу и скачайте последнюю версию AKS‑MCP:

ПлатформаАрхитектураСсылка для скачивания
WindowsAMD64📥 aks-mcp-windows-amd64.exe
ARM64📥 aks-mcp-windows-arm64.exe
macOSIntel (AMD64)📥 aks-mcp-darwin-amd64
Apple Silicon (ARM64)📥 aks-mcp-darwin-arm64
LinuxAMD64📥 aks-mcp-linux-amd64
ARM64📥 aks-mcp-linux-arm64
Шаг 2: Настройка VS Code

После загрузки создайте файл .vscode/mcp.json в корне вашего workspace с путём к скачанному бинарнику.

Опция A: Автоматический скрипт настройки

Для быстрого старта можно использовать однострочные скрипты, которые загружают бинарник и создают конфигурацию:

Windows (PowerShell):

# Скачать бинарник и создать конфигурацию VS Code
mkdir -p .vscode ; Invoke-WebRequest -Uri "https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-windows-amd64.exe" -OutFile "aks-mcp.exe" ; @{servers=@{"aks-mcp-server"=@{type="stdio";command="$PWD\aks-mcp.exe";args=@()}}} | ConvertTo-Json -Depth 3 | Out-File ".vscode/mcp.json" -Encoding UTF8

macOS/Linux (Bash):

# Скачать бинарник и создать конфигурацию VS Code
mkdir -p .vscode && curl -sL https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-linux-amd64 -o aks-mcp && chmod +x aks-mcp && echo '{"servers":{"aks-mcp-server":{"type":"stdio","command":"'$PWD'/aks-mcp","args":[]}}}' > .vscode/mcp.json
Опция B: Ручная настройка

✨ Простая настройка: скачайте бинарник для вашей платформы, затем используйте приведённую ниже ручную конфигурацию, чтобы задать MCP‑сервер в VS Code.

Ручная конфигурация VS Code

Вы можете настроить AKS‑MCP сервер двумя способами:

  1. Конфигурация внутри рабочего пространства (рекомендовано для проекта):

Создайте файл .vscode/mcp.json в вашем workspace с путём к скачанному бинарнику:

{
  "servers": {
    "aks-mcp-server": {
      "type": "stdio",
      "command": "<укажите путь к файлу>",
      "args": []
    }
  }
}
  1. Конфигурация на уровне пользователя (постоянна во всех рабочих пространствах):

Для постоянной конфигурации, применимой ко всем рабочим пространствам VS Code, добавьте MCP‑сервер в настройки пользователя VS Code:

  • Откройте настройки VS Code (Ctrl+, или Cmd+,)
  • Найдите "mcp" в настройках
  • Добавьте следующую конфигурацию в JSON настроек пользователя:
{
  "github.copilot.chat.mcp.servers": {
    "aks-mcp-server": {
      "type": "stdio",
      "command": "<укажите путь к файлу>",
      "args": []
    }
  }
}
Шаг 3: Загрузить инструменты AKS‑MCP в Github Copilot
  • Если вы используете старую версию VS Code — перезапустите VS Code, чтобы загрузить новую конфигурацию MCP‑серверов.
  • Откройте GitHub Copilot в VS Code и перейдите в режим Agent (ссылка: https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode)
  • Нажмите кнопку Tools или выполните /list в окне GitHub Copilot, чтобы увидеть список доступных инструментов
  • Вы увидите инструменты AKS‑MCP в списке
  • Попробуйте подсказку вроде: «List all my AKS clusters in subscription xxx» — агент автоматически будет использовать инструменты AKS‑MCP для выполнения вашего запроса

Совет: если вы не видите инструменты AKS‑MCP после перезапуска, проверьте панель вывода VS Code на предмет ошибок соединения с MCP‑сервером и убедитесь, что путь к бинарнику указан в .vscode/mcp.json.

Примечание: убедитесь, что вы вошли в Azure CLI (az login) — сервер должен иметь доступ к вашим ресурсам Azure.

Другие клиенты, совместимые с MCP

Custom Client Installation Для других MCP‑совместимых AI‑клиентов, таких как Claude Desktop или GitHub Copilot CLI, настройте сервер в конфигурации MCP:

{
  "mcpServers": {
    "aks": {
      "command": "<путь к бинарнику aks-mcp>",
      "args": []
    }
  }
}

🤖 Custom MCP Client Installation

Вы можете настроить любой MCP‑совместимый клиент для использования AKS‑MCP, запустив бинарник напрямую:

# Запуск сервера напрямую
./aks-mcp

🔧 Ручная установка бинарника

Для прямого использования бинарника без менеджеров пакетов:

  • Скачайте последнюю версию с страницы releases
  • Распакуйте бинарник в удобное место
  • Сделайте исполняемым (на Unix‑системах):
chmod +x aks-mcp
  • Настройте вашего MCP‑клиента на использование пути к бинарнику

Опции

Аргументы командной строки:

Usage of ./aks-mcp:
      --access-level string       Access level (readonly, readwrite, admin) (default "readonly")
      --enabled-components string Comma-separated list of enabled components (empty means all components enabled). Available: az_cli,monitor,fleet,network,compute,detectors,advisor,inspektorgadget,kubectl,helm,cilium,hubble
      --allow-namespaces string   Comma-separated list of allowed Kubernetes namespaces (empty means all namespaces)
      --otlp-endpoint string      OTLP endpoint for OpenTelemetry traces (e.g. localhost:4317)
      --timeout int               Timeout for command execution in seconds, default is 600s (default 600)
      --log-level string          Log level (debug, info, warn, error) (default "info")

ENVIRONMENT

  • USE_LEGACY_TOOLS: Установите true, чтобы использовать устаревшие специализированные инструменты вместо унифицированных (по умолчанию false)

  • false (по умолчанию): используются call_az для операций Azure и call_kubectl для операций Kubernetes

  • true: используются устаревшие инструменты типа az_aks_operations, az_compute_operations и специализированные kubectl‑инструменты

Стандартные переменные аутентификации Azure поддерживаются (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID)

Разработка

Требования

  • Go ≥ 1.24.x установлен локально
  • Bash доступен по пути /usr/bin/env bash (цитируемые в Makefile рецепты используют режим fail-fast)
  • GNU Make 4.x или позже

Примечание: если ваша входная оболочка отличается (например, zsh на macOS), менять её не нужно — Makefile устанавливает переменные так, чтобы рецепты выполнялись в bash для единообразия.

Сборка из исходников

В проекте есть Makefile для удобной разработки, сборки и тестирования. Чтобы увидеть все доступные цели:

make help
Быстрый старт
# Сборка бинарника
make build

# Запуск тестов
make test

# Тесты с покрытием
make test-coverage

# Форматирование и линт кода
make check

# Сборка под все платформы
make release
Частые задачи разработки
# Установка зависимостей
make deps

# Сборка и запуск с --help
make run

# Очистка артефактов сборки
make clean

# Установка бинарника в GOBIN
make install

Ручная сборка

Если вы предпочитаете сборку без Makefile:

go build -o aks-mcp ./cmd/aks-mcp

Использование

Задавайте любые вопросы по вашим AKS‑кластерам в вашем AI‑клиенте, например:

List all my AKS clusters in my subscription xxx.

What is the network configuration of my AKS cluster?

Show me the network security groups associated with my cluster.

Create a new Azure Fleet named prod-fleet in eastus region.

List all members in my fleet.

Create a placement to deploy nginx workloads to clusters with app=frontend label.

Show me all ClusterResourcePlacements in my fleet.

Телеметрия

Сбор телеметрии включён по умолчанию.

Чтобы отключить её, установите переменную окружения AKS_MCP_COLLECT_TELEMETRY=false.

Вклад

Мы приветствуем участие в AKS‑MCP! Если вы исправляете баги, добавляете новые функции или улучшаете документацию — ваш вклад делает проект лучше.

📖 Наш подробный Contributing Guide для подробной информации о:

  • настройке окружения разработки
  • запуске AKS‑MCP локально и тестировании с AI‑агентами
  • понимании структуры кода
  • добавлении новых MCP‑инструментов и функций
  • правилах тестирования и лучших практиках
  • отправке pull‑request

Быстрый старт для контрибьюторов

  • Требования: Go ≥ 1.24.x, Azure CLI, Git
  • Настройка: форкните репозиторий, клонируйте локально, выполните make deps && make build
  • Тестирование: запустите make test и make check
  • Разработка: следуйте архитектуре на основе компонентов в CONTRIBUTING.md

CLA

Большинство вкладов требует подписания Contributor License Agreement (CLA), подтверждающего право на предоставление нам прав использования вашего вклада. Подробности по адресу: https://cla.opensource.microsoft.com

Когда вы отправляете pull‑request, CLA‑бот автоматически определит, нужен ли вам CLA и пометит PR соответствующим образом (например, статус проверки). Вам нужно это сделать всего один раз для всех репозиториев, использующих наш CLA.

Этот проект принял Microsoft Open Source Code of Conduct. Для дополнительной информации смотрите FAQ по Code of Conduct: https://opensource.microsoft.com/codeofconduct/faq/ или свяжитесь с opencode@microsoft.com с любыми вопросами.

Торговые марки

Этот проект может содержать торговые марки или логотипы проектов, продуктов или услуг. Разрешённое использование торговых марок Microsoft подчинено и должно соответствовать

Microsoft's Trademark & Brand Guidelines.

Использование торговых марок или логотипов Microsoft в изменённых версиях проекта не должно вызывать путаницу или указывать на спонсорство Microsoft.

Любое использование торговых марок третьих лиц или логотипов регулируется политиками соответствующих третьих лиц.