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_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_FEDERATED_TOKEN_FILEAZURE_SUBSCRIPTION_IDAZURE_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— получить доступные версии Kubernetescheck-network— проверить исходящее сетевое соединениеnodepool-list— список node pool в кластереnodepool-show— детали node poolaccount-list— список подписок Azure
- Read‑Write (
readwrite/admin):create— создать новый кластерdelete— удалить кластерscale— масштабировать количество нод кластераstart— запустить остановленный кластерstop— остановить работающий кластерupdate— обновить конфигурацию кластераupgrade— обновить версию Kubernetesnodepool-add— добавить node pool в кластерnodepool-delete— удалить node poolnodepool-scale— масштабировать node poolnodepool-upgrade— обновить node poolaccount-set— активировать подпискуlogin— аутентификация в Azure
- Admin‑Only (
admin):get-credentials— получить учетные данные кластера для доступа kubectl
Network Resource Management
Tool: aks_network_resources
Унифицированный инструмент для получения информации о сетевых ресурсах Azure, используемых кластерами AKS.
Доступные типы ресурсов:
all— информация по всем сетевым ресурсамvnet— информация о Virtual Networksubnet— информация о Subnetnsg— информация о Network Security Grouproute_table— информация о Route Tableload_balancer— информация о Load Balancerprivate_endpoint— информация о Private endpoint
Monitoring and Diagnostics
Tool: aks_monitoring
Унифицированный инструмент для мониторинга и диагностики Azure для AKS.
Доступные операции:
metrics— перечислить значения метрик ресурсовresource_health— получить события состояния ресурсов AKSapp_insights— выполнить запросы KQL к телеметрии Application Insightsdiagnostics— проверить, настроены ли диагностические параметры кластера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— идентификатор ресурса AKSvmss_name— имя VMSSinstance_id— идентификатор экземпляра VMSSlog_type— тип логов (kubelet,containerd,kernel,syslog)lines— количество последних строк лога (по умолчанию 500, максимум 2000)since— диапазон времени для логов (например,1h,30m,2d) — имеет преимущество надlineslevel— фильтр уровня логов (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/VMSSlist— перечислить VMs/VMSS в подписке или группе ресурсовget-instance-view— получить статус выполненияstart— запустить VMstop— остановить VMrestart— перезапустить VM/VMSSreimage— переобразить 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— перечислить все доступные детекторы AKSrun— запустить конкретный детектор AKSrun_by_category— запустить все детекторы в заданной категории
Параметры:
operation(обязательно): операция (list,run,run_by_category)aks_resource_id(обязательно): идентификатор ресурса AKSdetector_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) — ограничено операциями чтения в режиме readonlykubectl_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:
| Платформа | Архитектура | Ссылка для скачивания |
|---|---|---|
| Windows | AMD64 | 📥 aks-mcp-windows-amd64.exe |
| ARM64 | 📥 aks-mcp-windows-arm64.exe | |
| macOS | Intel (AMD64) | 📥 aks-mcp-darwin-amd64 |
| Apple Silicon (ARM64) | 📥 aks-mcp-darwin-arm64 | |
| Linux | AMD64 | 📥 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 сервер двумя способами:
- Конфигурация внутри рабочего пространства (рекомендовано для проекта):
Создайте файл .vscode/mcp.json в вашем workspace с путём к скачанному бинарнику:
{
"servers": {
"aks-mcp-server": {
"type": "stdio",
"command": "<укажите путь к файлу>",
"args": []
}
}
}
- Конфигурация на уровне пользователя (постоянна во всех рабочих пространствах):
Для постоянной конфигурации, применимой ко всем рабочим пространствам 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.
Любое использование торговых марок третьих лиц или логотипов регулируется политиками соответствующих третьих лиц.