AKS-MCP
Permite que los asistentes de IA interactúen con clústeres de Azure Kubernetes Service (AKS).
Documentación
AKS-MCP
AKS-MCP es un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA interactuar con clústeres de Azure Kubernetes Service (AKS). Actúa como un puente entre herramientas de IA (como GitHub Copilot, Claude y otros asistentes de IA compatibles con MCP) y AKS, traduciendo solicitudes en lenguaje natural en operaciones de AKS y devolviendo los resultados en un formato que las herramientas de IA puedan entender.
Permite a las herramientas de IA:
- Operar (CRUD) recursos de AKS
- Recuperar detalles relacionados con clústeres de AKS (VNets, Subnets, NSGs, Route Tables, etc.)
- Gestionar operaciones de Azure Fleet para escenarios de múltiples clústeres
Modelo de implementación compatible y consideraciones de seguridad
AKS-MCP está diseñado para ejecutarse localmente, por un único usuario de confianza, como un puente entre el asistente de IA de ese usuario y sus propios recursos de Azure/AKS. Este es el único modelo de implementación que el proyecto admite y para el que está endurecido.
El límite de confianza
AKS-MCP ejecuta herramientas de línea de comandos — incluyendo az, kubectl, helm, cilium y hubble — usando la identidad del proceso bajo el que se ejecuta. No realiza autorización por llamador y no intenta aislar los comandos que ejecuta. Por lo tanto:
Cualquiera que pueda invocar las herramientas de AKS-MCP tiene efectivamente todos los privilegios de Azure y Kubernetes de la identidad bajo la que se ejecuta AKS-MCP.
Esto incluye la capacidad de obtener credenciales reutilizables. Por ejemplo, en modo readwrite o admin, un llamador puede acceder a Azure Resource Manager y a AKS con la autoridad completa de la identidad del servidor, y kubectl o helm pueden usarse para leer Secrets, acuñar tokens de cuenta de servicio o desplegar cargas de trabajo arbitrarias en el clúster. Esta es una consecuencia inherente de exponer una superficie de ejecución de CLI — no se previene mediante --access-level.
Comandos específicos de Azure CLI que devuelven credenciales (como az account get-access-token y az aks get-credentials) son rechazados mediante una lista de denegación explícita. Esa lista de denegación reduce la exposición accidental — no es un límite de seguridad, no cubre las superficies de kubectl, helm, cilium o hubble, y no debe utilizarse para contener a un llamador no confiable.
Trate la capacidad de llamar a AKS-MCP como equivalente a entregar un shell que ya está iniciado sesión como la identidad del servidor.
Exposición de red y autoridad local
La eliminación de los transportes HTTP/SSE y de los artefactos oficiales de implementación remota elimina el servicio accesible por red compatible y su modelo de amenaza de llamador remoto. En la configuración compatible, AKS-MCP no tiene ningún listener que acepte solicitudes de la red.
Esto no convierte al cliente MCP local, sus prompts o --access-level en un límite de autorización. Una persona o proceso que controle el cliente local, su configuración de servidor o AKS-MCP puede normalmente ejecutar los mismos comandos de CLI bajo la misma identidad sin AKS-MCP. Proteger la estación de trabajo, la configuración del cliente y las credenciales locales sigue siendo responsabilidad del operador.
Qué es y qué no es --access-level
--access-level (readonly / readwrite / admin) es una salvaguarda para reducir daños accidentales causados por un asistente de IA que malinterpreta una solicitud. No es un límite de seguridad contra un llamador deliberadamente malicioso, y no debe utilizarse para contener a una parte no confiable. No exponga AKS-MCP a llamadores a los que no les otorgaría directamente las credenciales subyacentes de Azure/Kubernetes.
Configuración recomendada (compatible)
- Ejecutar como un subproceso local, lanzado bajo demanda por su cliente MCP local.
- Autenticarse con su propia identidad de desarrollador mediante
az login. - Otorgar a la identidad solo los permisos de Azure/Kubernetes que realmente necesite.
Modelos de implementación no compatibles
AKS-MCP solo admite stdio y debe lanzarse como un subproceso local por un cliente MCP. No lo exponga a través de HTTP, SSE, un servicio de contenedores, Helm, Kubernetes, un proxy o una puerta de enlace. Cualquier puente de terceros queda fuera del límite de seguridad y soporte del proyecto.
Cómo funciona
AKS-MCP se conecta a Azure usando el SDK de Azure y proporciona un conjunto de herramientas que los asistentes de IA pueden usar para interactuar con recursos de AKS. Aprovecha el Protocolo de Contexto de Modelo (MCP) para facilitar esta comunicación, permitiendo que las herramientas de IA realicen llamadas API a Azure e interpreten las respuestas.
Autenticación de Azure CLI
AKS-MCP usa Azure CLI (az) para operaciones de AKS. La autenticación de Azure CLI se intenta en este orden:
-
Service Principal (secreto de cliente): Cuando las variables de entorno
AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_TENANT_IDestán presentes, se realiza un inicio de sesión de service principal usando el siguiente comando:az login --service-principal -u CLIENT_ID -p CLIENT_SECRET --tenant TENANT_ID -
Workload Identity (token federado): Cuando las variables de entorno
AZURE_CLIENT_ID,AZURE_TENANT_ID,AZURE_FEDERATED_TOKEN_FILEestán presentes, se realiza un inicio de sesión con token federado usando el siguiente comando:az login --service-principal -u CLIENT_ID --tenant TENANT_ID --federated-token TOKEN -
Managed Identity asignada por el usuario (ID de cliente de managed identity): Cuando solo está presente la variable de entorno
AZURE_CLIENT_ID, se realiza un inicio de sesión de managed identity asignada por el usuario usando el siguiente comando:az login --identity -u CLIENT_ID -
Managed Identity asignada por el sistema: Cuando
AZURE_MANAGED_IDENTITYestá establecido ensystem, se realiza un inicio de sesión de managed identity asignada por el sistema usando el siguiente comando:az login --identity -
Inicio de sesión existente: Cuando ninguna de las variables de entorno anteriores está establecida, AKS-MCP asume que ya se ha autenticado (por ejemplo, mediante
az login) y usa la sesión existente.
Selección opcional de suscripción:
- Si
AZURE_SUBSCRIPTION_IDestá establecido, AKS-MCP ejecutaráaz account set --subscription SUBSCRIPTION_IDdespués del inicio de sesión.
Notas y seguridad:
- El archivo de token federado debe ser exactamente
/var/run/secrets/azure/tokens/azure-identity-tokeny se valida estrictamente; otras rutas son rechazadas. - Después de cada inicio de sesión, AKS-MCP verifica la autenticación con
az account show --query id -o tsv. - Asegúrese de que Azure CLI esté instalado y en PATH.
Variables de entorno utilizadas:
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_FEDERATED_TOKEN_FILEAZURE_SUBSCRIPTION_IDAZURE_MANAGED_IDENTITY(establecido ensystempara optar por la managed identity asignada por el sistema)
Herramientas disponibles
El servidor AKS-MCP proporciona herramientas consolidadas para interactuar con clústeres de AKS. De forma predeterminada, el servidor usa herramientas unificadas (call_az para operaciones de Azure y call_kubectl para operaciones de Kubernetes) que proporcionan una interfaz más flexible. Para compatibilidad con versiones anteriores, puede habilitar herramientas especializadas heredadas estableciendo la variable de entorno USE_LEGACY_TOOLS=true.
Algunas herramientas requerirán permisos de lectura-escritura o de administrador para ejecutar pods de depuración en su clúster. Para habilitar permisos de lectura-escritura o de administrador para el servidor AKS-MCP, agregue el parámetro access level a su archivo de configuración de MCP:
- Navegue a su archivo mcp.json, o vaya a MCP: List Servers -> AKS-MCP -> Show Configuration Details en la Command Palette (Para VSCode;
Ctrl+Shift+Pen Windows/Linux oCmd+Shift+Pen macOS). - En la sección "args" de AKS-MCP, agregue los siguientes parámetros: "--access-level", "readwrite" / "admin"
Por ejemplo:
"args": [
"--access-level",
"readwrite"
]
Estas herramientas han sido diseñadas para proporcionar funcionalidad integral a través de interfaces unificadas:
Operaciones de Azure CLI (Herramienta unificada)
Herramienta: call_az (predeterminada, disponible cuando USE_LEGACY_TOOLS no está establecido o está establecido en false)
Herramienta unificada para ejecutar comandos de Azure CLI directamente. Esta herramienta proporciona una interfaz flexible para ejecutar cualquier comando de Azure CLI.
Parámetros:
cli_command: El comando completo de Azure CLI a ejecutar (p. ej.,az aks list --resource-group myRG,az vm list --subscription <sub-id>)timeout: Tiempo de espera opcional en segundos (predeterminado: 120)
Ejemplo de uso:
{
"cli_command": "az aks list --resource-group myResourceGroup --output json"
}
Control de acceso:
- readonly: Solo se permiten operaciones de lectura
- readwrite/admin: Se permiten operaciones de lectura y escritura
Importante: Los comandos deben ser invocaciones simples de Azure CLI sin características de shell como tuberías (|), redirecciones (>, <), sustitución de comandos o punto y coma (;).
Gestión de clústeres de AKS (Herramienta heredada)
Herramienta: az_aks_operations (disponible cuando USE_LEGACY_TOOLS=true)
Herramienta unificada para gestionar clústeres de Azure Kubernetes Service (AKS) y operaciones relacionadas.
Operaciones disponibles:
-
Solo lectura (todos los niveles de acceso):
show: Mostrar detalles del clústerlist: Listar clústeres en la suscripción/grupo de recursosget-versions: Obtener versiones de Kubernetes disponiblescheck-network: Realizar verificación de conectividad de red salientenodepool-list: Listar node pools en el clústernodepool-show: Mostrar detalles del node poolaccount-list: Listar suscripciones de Azure
-
Lectura-escritura (niveles de acceso
readwrite/admin):create: Crear nuevo clústerdelete: Eliminar clústerscale: Escalar el número de nodos del clústerstart: Iniciar un clúster detenidostop: Detener un clúster en ejecuciónupdate: Actualizar la configuración del clústerupgrade: Actualizar la versión de Kubernetesnodepool-add: Agregar node pool al clústernodepool-delete: Eliminar node poolnodepool-scale: Escalar node poolnodepool-upgrade: Actualizar node poolaccount-set: Establecer suscripción activalogin: Autenticación de Azure
-
Solo administrador (nivel de acceso
admin):get-credentials: Obtener credenciales del clúster para acceso con kubectl
Gestión de recursos de red
Herramienta: aks_network_resources
Herramienta unificada para obtener información de recursos de red de Azure utilizados por clústeres de AKS.
Tipos de recursos disponibles:
all: Obtener información sobre todos los recursos de redvnet: Información de Virtual Networksubnet: Información de Subnetnsg: Información de Network Security Grouproute_table: Información de Route Tableload_balancer: Información de Load Balancerprivate_endpoint: Información de private endpoint
Monitoreo y diagnóstico
Herramienta: aks_monitoring
Herramienta unificada para operaciones de monitoreo y diagnóstico de Azure para clústeres de AKS.
Operaciones disponibles:
metrics: Listar valores de métricas para recursosresource_health: Recuperar eventos de estado de recursos para clústeres de AKSapp_insights: Ejecutar consultas KQL contra datos de telemetría de Application Insightsdiagnostics: Verificar si el clúster de AKS tiene configurados ajustes de diagnósticocontrol_plane_logs: Consultar registros del plano de control de AKS con restricciones de seguridad y validación de rango de tiempo
Recursos de cómputo
Herramienta: get_aks_vmss_info
- Obtener configuración detallada de VMSS para node pools en el clúster de AKS
Herramienta: collect_aks_node_logs
Recopilar registros del sistema de nodos VMSS de AKS para depuración y resolución de problemas.
Parámetros:
aks_resource_id: ID de recurso del clúster de AKSvmss_name: Nombre del VMSS (obtener deget_aks_vmss_infookubectl get nodes)instance_id: ID de instancia del VMSSlog_type: Tipo de registros a recopilar (kubelet,containerd,kernel,syslog)lines: Número de líneas de registro recientes a devolver (predeterminado: 500, máximo: 2000)since: Rango de tiempo para los registros (p. ej.,1h,30m,2d) - tiene prioridad sobrelineslevel: Filtro de nivel de registro (ERROR,WARN,INFO)filter: Filtrar registros por palabra clave (coincidencia de texto sin distinción de mayúsculas/minúsculas)
Ejemplo de uso:
{
"aks_resource_id": "/subscriptions/.../managedClusters/myAKS",
"vmss_name": "aks-nodepool1-12345678-vmss",
"instance_id": "0",
"log_type": "kubelet",
"since": "1h",
"level": "ERROR",
"filter": "ImagePullBackOff"
}
Limitaciones:
- Solo admite nodos VMSS de Linux (los nodos de Windows y las VM independientes aún no son compatibles)
- Solo se puede ejecutar un comando a la vez por instancia de VMSS
Herramienta: az_compute_operations
Herramienta unificada para gestionar Azure Virtual Machines (VMs) y Virtual Machine Scale Sets (VMSS) utilizados por AKS.
Operaciones disponibles:
show: Obtener detalles de una VM/VMSSlist: Listar VMs/VMSS en la suscripción o grupo de recursosget-instance-view: Obtener estado de ejecuciónstart: Iniciar VMstop: Detener VMrestart: Reiniciar instancias de VM/VMSSreimage: Reimage instancias de VMSS (VM no soporta reimage)
Tipos de recursos: vm (máquinas virtuales individuales), vmss (conjuntos de escala de máquinas virtuales)
Gestión de flotas
Herramienta: az_fleet
Gestión integral de flotas de Azure para escenarios de múltiples clústeres.
Operaciones disponibles:
- Operaciones de flota: listar, mostrar, crear, actualizar, eliminar, obtener credenciales
- Operaciones de miembro: listar, mostrar, crear, actualizar, eliminar
- Operaciones de ejecución de actualización: listar, mostrar, crear, iniciar, detener, eliminar
- Operaciones de estrategia de actualización: listar, mostrar, crear, eliminar
- Operaciones de ClusterResourcePlacement: listar, mostrar, obtener, crear, eliminar
Admite operaciones de gestión de flotas de Azure y de CRD de Kubernetes ClusterResourcePlacement.
Detectores de diagnóstico
Herramienta: aks_detector
Herramienta unificada para ejecutar operaciones de detectores de diagnóstico de AKS.
Operaciones disponibles:
list: Listar todos los detectores de clúster AKS disponiblesrun: Ejecutar un detector de diagnóstico AKS específicorun_by_category: Ejecutar todos los detectores en una categoría específica
Parámetros:
operation(requerido): Operación a realizar (list,runorun_by_category)aks_resource_id(requerido): ID de recurso del clúster AKSdetector_name(requerido para la operaciónrun): Nombre del detector a ejecutarcategory(requerido para la operaciónrun_by_category): Categoría del detectorstart_time(requerido para las operacionesrunyrun_by_category): Hora de inicio en formato ISO UTC (dentro de los últimos 30 días)end_time(requerido para las operacionesrunyrun_by_category): Hora de finalización en formato ISO UTC (dentro de los últimos 30 días, máximo 24h desde el inicio)
Categorías disponibles:
- Mejores prácticas
- Disponibilidad y rendimiento del clúster y plano de control
- Problemas de conectividad
- Crear, actualizar, eliminar y escalar
- Deprecaciones
- Identidad y seguridad
- Salud de nodos
- Almacenamiento
Ejemplo de uso:
{
"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
Herramienta: aks_advisor_recommendation
Recuperar y gestionar recomendaciones de Azure Advisor para clústeres AKS.
Operaciones disponibles:
list: Listar recomendaciones con opciones de filtradoreport: Generar informes de recomendaciones- Opciones de filtro: resource_group, cluster_names, categoría (Cost, HighAvailability, Performance, Security), severidad (High, Medium, Low)
Operaciones de Kubernetes
Nota: Todas las herramientas de Kubernetes (kubectl, helm, cilium, hubble) están habilitadas por defecto. Use --enabled-components para habilitar selectivamente componentes específicos.
Herramienta kubectl unificada (predeterminada)
Herramienta: call_kubectl (predeterminada, disponible cuando USE_LEGACY_TOOLS no está configurado o está configurado como false)
Herramienta unificada para ejecutar comandos kubectl directamente. Esta herramienta proporciona una interfaz flexible para ejecutar cualquier comando kubectl con soporte completo de argumentos.
Parámetros:
args: Los argumentos del comando kubectl (por ejemplo,get pods,describe node mynode,apply -f deployment.yaml)
Ejemplo de uso:
{
"args": "get pods -n kube-system -o wide"
}
Control de acceso: Las operaciones están restringidas según el nivel de acceso configurado:
- readonly: Solo se permiten operaciones de lectura (get, describe, logs, etc.)
- readwrite/admin: Todas las operaciones, incluidos los comandos de mutación (create, delete, apply, etc.)
Herramientas kubectl heredadas (especializadas)
Disponibles cuando USE_LEGACY_TOOLS=true:
-
Solo lectura (todos los niveles de acceso):
kubectl_resources: Ver recursos (get, describe) - filtrado a operaciones de solo lectura en modo readonlykubectl_diagnostics: Depurar y diagnosticar (logs, events, top, exec, cp)kubectl_cluster: Información del clúster (cluster-info, api-resources, api-versions, explain)kubectl_config: Gestión de configuración (diff, auth, config) - filtrado a operaciones de solo lectura en modo readonly
-
Lectura-escritura/Admin (niveles de acceso
readwrite/admin):kubectl_resources: Gestión completa de recursos (get, describe, create, delete, apply, patch, replace, cordon, uncordon, drain, taint)kubectl_workloads: Ciclo de vida de cargas de trabajo (run, expose, scale, autoscale, rollout)kubectl_metadata: Gestión de metadatos (label, annotate, set)kubectl_config: Gestión completa de configuración (diff, auth, certificate, config)
Helm
Herramienta: call_helm
Gestor de paquetes Helm para Kubernetes.
Cilium
Herramienta: call_cilium
CLI de Cilium para redes y seguridad basadas en eBPF.
Hubble
Herramienta: call_hubble
Observabilidad de red de Hubble para Cilium.
Observabilidad en tiempo real
Herramienta: inspektor_gadget_observability
Herramienta de observabilidad en tiempo real para clústeres de Azure Kubernetes Service (AKS) que utiliza eBPF.
Acciones disponibles:
deploy: Implementar Inspektor Gadget en el clúster (a través de la extensión de clúster AKS)undeploy: Eliminar la extensión de clúster Inspektor Gadget del clústeris_deployed: Verificar el estado de implementaciónrun: Ejecutar gadgets de un solo usostart: Iniciar gadgets continuosstop: Detener gadgets en ejecuciónget_results: Recuperar resultados de gadgetslist_gadgets: Listar gadgets disponibles
Gadgets disponibles:
observe_dns: Monitorear solicitudes y respuestas DNSobserve_tcp: Monitorear conexiones TCPobserve_file_open: Monitorear operaciones del sistema de archivosobserve_process_execution: Monitorear ejecución de procesosobserve_signal: Monitorear entrega de señalesobserve_system_calls: Monitorear llamadas al sistematop_file: Archivos principales por operaciones de E/Stop_tcp: Conexiones TCP principales por tráficotcpdump: Capturar paquetes de red
Cómo instalar
Requisitos previos
-
Configure Azure CLI y autentíquese:
az login
VS Code con GitHub Copilot (Recomendado)
Instalación con un clic con la extensión AKS
La forma más fácil de comenzar con AKS-MCP es a través de la Extensión de Azure Kubernetes Service para VS Code.
Paso 1: Instalar la extensión AKS
- Abra VS Code y vaya a Extensiones (
Ctrl+Shift+Xen Windows/Linux oCmd+Shift+Xen macOS). - Busque Azure Kubernetes Service.
- Instale la extensión oficial de Microsoft AKS.
Paso 2: Iniciar el servidor AKS-MCP
- Abra la Paleta de comandos (
Ctrl+Shift+Pen Windows/Linux oCmd+Shift+Pen macOS). - Busque y ejecute: AKS: Setup AKS MCP Server.
Tras una instalación exitosa, el servidor ahora será visible en MCP: List Servers (a través de la Paleta de comandos). Desde allí, puede iniciar el servidor MCP o ver su estado.
Paso 3: Comenzar a usar AKS-MCP
Una vez iniciado, el servidor MCP aparecerá en el menú desplegable Copilot Chat: Configure Tools bajo MCP Server: AKS MCP, listo para mejorar las indicaciones contextuales basadas en su entorno AKS. De forma predeterminada, todas las herramientas del servidor AKS-MCP están habilitadas. Puede revisar la lista de herramientas disponibles y deshabilitar las que no sean necesarias para su escenario específico.
Pruebe una indicación como "List all my AKS clusters", que comenzará a usar herramientas del servidor AKS-MCP.
Configuración de WSL
La configuración de MCP difiere según si VS Code se ejecuta en Windows o dentro de WSL:
🪟 Host de Windows (VS Code en Windows): Use "command": "wsl" para invocar el binario de WSL desde Windows:
{
"servers": {
"aks-mcp": {
"type": "stdio",
"command": "wsl",
"args": [
"--",
"/home/you/.vs-kubernetes/tools/aks-mcp/aks-mcp"
]
}
}
}
🐧 Remote-WSL (VS Code ejecutándose dentro de WSL): Llame al binario directamente o use un envoltorio de shell:
{
"servers": {
"aks-mcp": {
"type": "stdio",
"command": "bash",
"args": [
"-c",
"/home/you/.vs-kubernetes/tools/aks-mcp/aks-mcp"
]
}
}
}
🔧 Solución de problemas de errores ENOENT
Si ve errores de "spawn ENOENT", verifique su entorno de VS Code:
- Host de Windows: Verifique si la ruta del binario de WSL es correcta y accesible a través de
wsl -- ls /path/to/aks-mcp - Remote-WSL: NO use
"command": "wsl"- use rutas directas o envoltorio bash como se muestra arriba
💡 Beneficios: La extensión AKS maneja descargas de binarios, actualizaciones y configuración automáticamente, asegurando que siempre tenga la última versión con la configuración óptima.
Métodos de instalación alternativos
Instalación manual del binario
Paso 1: Descargar el binario
Elija su plataforma y descargue el último binario de AKS-MCP:
| Plataforma | Arquitectura | Enlace de descarga |
|---|---|---|
| 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 |
Paso 2: Configurar VS Code
Después de descargar, cree un archivo .vscode/mcp.json en la raíz de su espacio de trabajo con la ruta a su binario descargado.
Opción A: Script de configuración automatizado
Para una configuración rápida, puede usar estos scripts de una línea que descargan el binario y crean la configuración:
Windows (PowerShell):
# Download binary and create VS Code configuration
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):
# Download binary and create VS Code configuration
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
Opción B: Configuración manual
✨ Configuración simple: Descargue el binario para su plataforma y luego use la configuración manual a continuación para configurar el servidor MCP en VS Code.
Configuración manual de VS Code
Puede configurar el servidor AKS-MCP de dos maneras:
1. Configuración específica del espacio de trabajo (recomendada para uso específico del proyecto):
Cree un archivo .vscode/mcp.json en su espacio de trabajo con la ruta a su binario descargado:
{
"servers": {
"aks-mcp-server": {
"type": "stdio",
"command": "<enter the file path>",
"args": []
}
}
}
2. Configuración a nivel de usuario (persistente en todos los espacios de trabajo):
Para una configuración persistente que funcione en todos sus espacios de trabajo de VS Code, agregue el servidor MCP a la configuración de usuario de VS Code:
- Abra la configuración de VS Code (Ctrl+, o Cmd+,)
- Busque "mcp" en la configuración
- Agregue lo siguiente al JSON de configuración de usuario:
{
"github.copilot.chat.mcp.servers": {
"aks-mcp-server": {
"type": "stdio",
"command": "<enter the file path>",
"args": []
}
}
}
Paso 3: Cargar las herramientas del servidor AKS-MCP en GitHub Copilot
- Si está ejecutando una versión anterior de VS Code: reinicie VS Code, es decir, cierre y vuelva a abrir VS Code para cargar la nueva configuración del servidor MCP.
- Abra GitHub Copilot en VS Code y cambie al modo Agente
- Haga clic en el botón Tools o ejecute /list en la ventana de GitHub Copilot para ver la lista de herramientas disponibles
- Debería ver las herramientas de AKS-MCP en la lista
- Pruebe una indicación como: "List all my AKS clusters in subscription xxx"
- El agente usará automáticamente las herramientas de AKS-MCP para completar su solicitud
💡 Consejo: Si no ve las herramientas de AKS-MCP después de reiniciar, revise el panel de salida de VS Code para ver si hay errores de conexión del servidor MCP y verifique su ruta de binario en
.vscode/mcp.json.
Nota: Asegúrese de haberse autenticado con Azure CLI (az login) para que el servidor acceda a sus recursos de Azure.
Otros clientes compatibles con MCP
Instalación de cliente personalizado
Para otros clientes de IA compatibles con MCP como Claude Desktop o GitHub Copilot CLI, configure el servidor en su configuración de MCP:
{
"mcpServers": {
"aks": {
"command": "<path of binary aks-mcp>",
"args": []
}
}
}
🤖 Instalación de cliente MCP personalizado
Puede configurar cualquier cliente compatible con MCP para usar el servidor AKS-MCP ejecutando el binario directamente:
# Run the server directly
./aks-mcp
🔧 Instalación Manual del Binario
Para uso directo del binario sin gestores de paquetes:
- Descargue la última versión desde la página de versiones
- Extraiga el binario a la ubicación de su preferencia
- Hágalo ejecutable (en sistemas Unix):
chmod +x aks-mcp - Configure su cliente MCP para usar la ruta del binario
Opciones
Argumentos de línea de comandos:
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")
Variables de entorno:
USE_LEGACY_TOOLS: Establézcala entruepara usar herramientas especializadas heredadas en lugar de herramientas unificadas (predeterminado:false)false(predeterminado): Usacall_azpara operaciones de Azure ycall_kubectlpara operaciones de Kubernetestrue: Usa herramientas heredadas comoaz_aks_operations,az_compute_operationsy herramientas especializadas de kubectl
- Se admiten variables de entorno estándar de autenticación de Azure (
AZURE_TENANT_ID,AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_SUBSCRIPTION_ID)
Desarrollo
Requisitos previos
- Go ≥
1.24.xinstalado en su máquina local - Bash disponible como
/usr/bin/env bash(los objetivos del Makefile usan recetas multilínea con modo de fallo rápido) - GNU Make
4.xo posterior
Nota: Si su shell de inicio de sesión es diferente (por ejemplo,
zshen macOS), no necesita cambiarlo — el Makefile establece variables para ejecutar todas las recetas enbashpara un comportamiento consistente entre plataformas.
Compilación desde el Código Fuente
Este proyecto incluye un Makefile para desarrollo, compilación y pruebas convenientes. Para ver todos los objetivos disponibles:
make help
Inicio Rápido
# Build the binary
make build
# Run tests
make test
# Run tests with coverage
make test-coverage
# Format and lint code
make check
# Build for all platforms
make release
Tareas Comunes de Desarrollo
# Install dependencies
make deps
# Build and run with --help
make run
# Clean build artifacts
make clean
# Install binary to GOBIN
make install
Compilación Manual
Si prefiere compilar sin el Makefile:
go build -o aks-mcp ./cmd/aks-mcp
Uso
Haga cualquier pregunta sobre sus clústeres de AKS en su cliente de IA, por ejemplo:
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.
Telemetría
La recopilación de telemetría está activada de forma predeterminada.
Para optar por no participar, establezca la variable de entorno AKS_MCP_COLLECT_TELEMETRY=false.
Contribuciones
¡Damos la bienvenida a contribuciones a AKS-MCP! Ya sea que esté corrigiendo errores, agregando funciones o mejorando la documentación, su ayuda hace que este proyecto sea mejor.
📖 Lea nuestra Guía de Contribución detallada para obtener información completa sobre:
- Configuración de su entorno de desarrollo
- Ejecución de AKS-MCP localmente y pruebas con agentes de IA
- Comprensión de la arquitectura del código base
- Adición de nuevas herramientas y funciones MCP
- Pautas de prueba y mejores prácticas
- Envío de solicitudes de extracción (pull requests)
Inicio Rápido para Contribuyentes
- Requisitos previos: Go ≥ 1.24.x, Azure CLI, Git
- Configuración: Haga un fork del repositorio, clónelo localmente, ejecute
make deps && make build - Pruebas: Ejecute
make testymake check - Desarrollo: Siga la arquitectura basada en componentes en CONTRIBUTING.md
Acuerdo de Licencia del Contribuyente
La mayoría de las contribuciones requieren que acepte un Acuerdo de Licencia del Contribuyente (CLA) que declare que tiene el derecho de, y de hecho lo hace, otorgarnos los derechos para usar su contribución. Para más detalles, visite https://cla.opensource.microsoft.com.
Cuando envíe una solicitud de extracción, un bot de CLA determinará automáticamente si necesita proporcionar un CLA y decorará el PR de manera apropiada (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitará hacer esto una vez en todos los repositorios que usan nuestro CLA.
Este proyecto ha adoptado el Código de Conducta de Código Abierto de Microsoft. Para más información, consulte las Preguntas Frecuentes del Código de Conducta o contacte a opencode@microsoft.com con cualquier pregunta o comentario adicional.
Marcas Comerciales
Este proyecto puede contener marcas comerciales o logotipos de proyectos, productos o servicios. El uso autorizado de marcas comerciales o logotipos de Microsoft está sujeto y debe seguir las Pautas de Marcas Comerciales y Marca de Microsoft. El uso de marcas comerciales o logotipos de Microsoft en versiones modificadas de este proyecto no debe causar confusión ni implicar patrocinio de Microsoft. Cualquier uso de marcas comerciales o logotipos de terceros está sujeto a las políticas de esos terceros.