Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El servidor del Protocolo de contexto de modelo de AKS (MCP) permite a los asistentes de inteligencia artificial interactuar con clústeres de Azure Kubernetes Service (AKS) con claridad, seguridad y control. Actúa como un puente entre las herramientas de inteligencia artificial (como GitHub Copilot, Claude y otros asistentes de IA compatibles con MCP) y AKS, la traducción de solicitudes de lenguaje natural en operaciones de AKS y la devolución de los resultados en un formato que las herramientas de IA pueden comprender.
El servidor MCP de AKS se conecta a Azure mediante el SDK de Azure y proporciona un conjunto de herramientas que los asistentes de IA pueden usar para interactuar con los recursos de AKS. Estas herramientas permiten a los agentes de inteligencia artificial realizar tareas como:
- Solución de problemas y diagnósticos
- Análisis del estado del clúster
- Uso de recursos de AKS (CRUD)
- Recuperación de detalles relacionados con clústeres de AKS (redes virtuales, subredes, grupos de seguridad de red (NSG), tablas de rutas, etc.)
- Habilitación de procedimientos recomendados y características recomendadas
- Administración de operaciones de Flota de Azure para escenarios de varios clústeres
El servidor MCP de AKS es un proyecto de código abierto completo, con plantillas de ejemplo y configuraciones de Helm disponibles en el repositorio de GitHub.
Cuándo usar el servidor MCP de AKS
El servidor MCP de AKS se puede usar con cualquier asistente de IA compatible, incluida la CLI agente para AKS y Microsoft Copilot. Entre los casos de uso comunes se incluyen:
- Formular preguntas a los asistentes de IA, como:
- "¿Por qué hay pods pendientes en este clúster?"
- "¿Cuál es la configuración de red del clúster de AKS?"
- "Cree una ubicación para implementar cargas de trabajo nginx en clústeres con la etiqueta app=frontend".
- Permitir que las herramientas de inteligencia artificial:
- Leer el estado y la configuración del clúster
- Inspección de métricas, eventos y registros
- Correlación de señales entre recursos de Kubernetes y Azure
- Aplicación de cambios y habilitación de nuevas características directamente en el clúster
Todas las acciones realizadas a través del servidor MCP de AKS están restringidas por Kubernetes Role-Based Access Control (RBAC) y RBAC de Azure. De forma predeterminada, el servidor MCP de AKS hereda los permisos del usuario al acceder al clúster y a los recursos de Azure. Para personalizar los roles y permisos del servidor MCP de AKS, implemente el modo de servidor MCP de AKS remoto con el control RBAC integrado.
Herramientas disponibles
El servidor MCP de AKS proporciona un conjunto completo de herramientas para interactuar con clústeres de AKS y recursos asociados. De forma predeterminada, el servidor usa herramientas unificadas (call_az para las operaciones de Azure y call_kubectl para las operaciones de Kubernetes), que proporcionan una interfaz más flexible para interactuar con los recursos de Kubernetes y Azure.
Hay tres conjuntos de permisos que puede habilitar para el servidor MCP de AKS: de solo lectura (valor predeterminado), lectura y escritura y administrador. Algunas herramientas requieren permisos de lectura y escritura o de administrador para realizar acciones como la implementación de pods de depuración o acciones CRUD en el clúster. Para habilitar permisos de lectura y escritura o administrador para el servidor de AKS-MCP, agregue el parámetro de nivel de acceso al archivo de configuración de MCP:
- Navega a tu archivo mcp.json, o dirígete a MCP: List Servers -> AKS-MCP -> Mostrar detalles de configuración en la Paleta de Comandos (para VS Code;
Ctrl+Shift+Pen Windows/Linux oCmd+Shift+Pen macOS). - En la sección "args" de AKS-MCP, agregue los parámetros siguientes: "--access-level", "readwrite" o "admin".
Por ejemplo:
"args": [
"--transport",
"stdio",
"--access-level",
"readwrite"
]
Estas herramientas están diseñadas para proporcionar una funcionalidad completa a través de interfaces unificadas:
Operaciones de la CLI de Azure (herramienta unificada)
Herramienta:call_az
Herramienta unificada para ejecutar comandos de la CLI de Azure directamente. Esta herramienta proporciona una interfaz flexible para ejecutar cualquier comando de la CLI de Azure.
Parámetros:
-
cli_command: comando completo de la CLI de Azure que se va a ejecutar. Por ejemplo,az aks list --resource-group myRGoaz vm list --subscription <sub-id>. -
timeout: tiempo de espera opcional en segundos (valor predeterminado: 120)
Uso de ejemplo:
{
"cli_command": "az aks list --resource-group myResourceGroup --output json"
}
Control de acceso:
- readonly: solo se permiten las operaciones de lectura.
- readwrite/admin: se permiten las operaciones de lectura y escritura.
Importante
Los comandos deben ser invocaciones simples de la CLI de Azure sin características de shell como canalizaciones (|), redireccionamientos (>, <), sustitución de comandos o punto y coma (;).
Operaciones de Kubernetes (herramienta unificada)
Herramienta kubectl unificada
Herramienta:call_kubectl
Herramienta unificada para ejecutar comandos kubectl directamente. Esta herramienta proporciona una interfaz flexible para ejecutar cualquier kubectl comando con compatibilidad completa con argumentos.
Parámetros:
-
args: los argumentos del comando kubectl. Por ejemplo,get pods,describe node mynodeoapply -f deployment.yaml.
Uso de ejemplo:
{
"args": "get pods -n kube-system -o wide"
}
Control de acceso: Las operaciones se restringen en función del 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 (crear, eliminar, aplicar, etc.)
Helm
Herramienta:call_helm
Administrador 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 Hubble para Cilium.
Administración de recursos de red
Herramienta:aks_network_resources
Herramienta unificada para obtener información de recursos de red de Azure que usan los clústeres de AKS.
Tipos de recursos disponibles:
-
all: obtener información sobre todos los recursos de red -
vnet: información de red virtual -
subnet: información de subred -
nsg: Información del grupo de seguridad de red -
route_table: información de la tabla de rutas -
load_balancer: información del equilibrador de carga -
private_endpoint: información del punto de conexión privado
Supervisión y diagnóstico
Herramienta:aks_monitoring
Herramienta unificada para operaciones de supervisión y diagnóstico de Azure para clústeres de AKS.
Operaciones disponibles:
-
metrics: Listar valores de métricas para recursos -
resource_health: recuperar eventos de Resource Health para clústeres de AKS -
app_insights: Ejecutar consultas KQL en los datos de telemetría de Application Insights. -
diagnostics: compruebe si el clúster de AKS tiene la configuración de diagnóstico configurada. -
control_plane_logs: Consultar los registros del plano de control de AKS con restricciones de seguridad y validación de rango temporal
Recursos de proceso
Herramienta:get_aks_vmss_info
- Obtenga una configuración detallada de los conjuntos de escalado de máquinas virtuales (grupos de nodos) en el clúster de AKS.
Administración de flotas
Herramienta:az_fleet
Administración completa de flotas de Azure para escenarios de varios clústeres.
Operaciones disponibles:
- Operaciones de flota: list, show, create, update, delete, get-credentials
- Operaciones de miembro: listar, mostrar, crear, actualizar, eliminar
- Actualizar operaciones de ejecució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 tanto la administración de flotas de Azure como las operaciones de ClusterResourcePlacement CRD de Kubernetes.
Detectores de diagnóstico
Herramienta:aks_detector
Herramienta unificada para ejecutar operaciones de detector de diagnóstico de AKS.
Operaciones disponibles:
-
list: enumera todos los detectores de clúster de AKS disponibles. -
run: ejecutar un detector de diagnóstico de AKS específico -
run_by_category: ejecutar todos los detectores en una categoría específica
Parámetros:
-
operation(obligatorio): operación para realizar (list,runorun_by_category) -
aks_resource_id(obligatorio): identificador de recurso del clúster de AKS -
detector_name(obligatorio pararunla operación): nombre del detector que se va a ejecutar -
category(obligatorio pararun_by_categoryoperación): categoría de detector -
start_time(requerido para las operaciones derunyrun_by_category): hora de inicio en formato ISO UTC (en los últimos 30 días) -
end_time(obligatorio pararunlas operaciones yrun_by_category): hora de finalización en formato ISO UTC (en los últimos 30 días, máximo 24 horas desde el inicio)
Categorías disponibles:
- Procedimientos recomendados
- Disponibilidad y rendimiento del clúster y el plano de control
- Problemas de conectividad
- Crear, actualizar, eliminar y escalar
- En desuso
- Identidad y seguridad
- Estado del nodo
- Storage
Uso de ejemplo:
Herramienta:run_detectors_by_category
{
"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
Recupere y administre recomendaciones de Azure Advisor para clústeres de AKS.
Operaciones disponibles:
-
list: enumera las recomendaciones con opciones de filtrado -
report: generación de informes de recomendaciones - Opciones de filtro: resource_group, cluster_names, categoría (costo, alta disponibilidad, rendimiento, seguridad), gravedad (alto, medio, bajo)
Observabilidad en tiempo real
Herramienta:inspektor_gadget_observability
Herramienta de observabilidad en tiempo real para clústeres de Azure Kubernetes Service (AKS) mediante eBPF.
Acciones disponibles:
-
deploy: Desplegar Inspektor Gadget en el clúster -
undeploy: eliminación de Inspektor Gadget del clúster -
is_deployed: comprobación del estado de implementación -
run: ejecutar gadgets de un solo uso -
start: iniciar gadgets continuos -
stop: dejar de ejecutar gadgets -
get_results: recuperar los resultados del dispositivo -
list_gadgets: enumerar los gadgets disponibles.
Gadgets disponibles:
-
observe_dns: Supervisión de solicitudes y respuestas DNS -
observe_tcp: Supervisión de conexiones TCP -
observe_file_open: Supervisión de las operaciones del sistema de archivos -
observe_process_execution: Supervisión de la ejecución de procesos -
observe_signal: Supervisión de la entrega de señales -
observe_system_calls: Monitoreo de llamadas del sistema -
top_file: Principales archivos según operaciones de E/S -
top_tcp: conexiones TCP principales por tráfico -
tcpdump: captura de paquetes de red
Introducción al servidor MCP de AKS
El servidor MCP de AKS tiene dos modos: local y remoto. En esta sección, tratamos los casos de uso y los procesos de instalación para ambos modos.
Servidor MCP local
En el modo local, el servidor MCP se ejecuta en la máquina local de un desarrollador y se conecta a AKS mediante los permisos existentes del desarrollador. Este modo es el mejor para configurar rápidamente tu agente de inteligencia artificial local con experiencia y herramientas de AKS sin requerir componentes del lado del clúster. El modo local puede usar el contexto del clúster actual y aplica los permisos de Kubernetes y Azure RBAC del desarrollador. De forma predeterminada, el servidor MCP de AKS local admite los modos de transporte STDIO y SSE.
Prerrequisitos
Antes de instalar el servidor MCP de AKS, configure la CLI de Azure y autentíquese:
az login
- Visual Studio Code con GitHub Copilot (recomendado)
- Instalación binaria manual
- Docker
- Instalación de cliente personalizada
La manera más fácil de empezar a trabajar con AKS-MCP es a través de la extensión de Azure Kubernetes Service para VS Code. La extensión de AKS controla automáticamente las descargas binarias, las actualizaciones y la configuración, lo que garantiza que siempre tiene la versión más reciente con una configuración óptima.
Paso 1: Instalar la extensión de 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 de AKS-MCP
- Abra la paleta de comandos (
Ctrl+Shift+Pen Windows/Linux oCmd+Shift+Pen macOS). - Buscar y ejecutar: AKS: configuración del servidor MCP de AKS.
Tras la instalación correcta, el servidor aparece 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: Empezar a usar AKS-MCP
Una vez iniciado, el servidor MCP aparece en la lista desplegable Copilot Chat: Configurar herramientas en MCP Server: AKS MCP, listo para mejorar las solicitudes contextuales basadas en el entorno de AKS. De forma predeterminada, todas las herramientas de servidor de AKS-MCP están habilitadas. Puede revisar la lista de herramientas disponibles y deshabilitar cualquiera que no sea necesario para su escenario.
Pruebe un mensaje como "Enumerar todos los clústeres de AKS" para empezar a usar herramientas del servidor de AKS-MCP.
Sugerencia
Configuración de WSL: si usa VS Code en Windows con WSL, use "command": "wsl" para invocar el binario WSL. Si VS Code se ejecuta dentro de WSL (Remote-WSL), llame directamente al archivo binario o use un contenedor bash en su lugar.
Servidor MCP remoto
En modo remoto, el servidor MCP se ejecuta como una carga de trabajo dentro del clúster de AKS o cualquier proceso que elija. Este modo es mejor para entornos de producción con herramientas compartidas, permisos coherentes entre usuarios y control de acceso total mediante Kubernetes ServiceAccount e Identidad de carga de trabajo. El servidor MCP de AKS remoto usa el protocolo HTTP para facilitar las interacciones entre el asistente de IA y el clúster de AKS.
Prerrequisitos
- Clúster de AKS con Kubernetes 1.19+
- Helm 3.8+
- CLI de Azure instalada y autenticada (
az login)
Instalación con el gráfico de Helm
Clone el repositorio e instale el gráfico de Helm de AKS-MCP:
git clone https://github.com/Azure/aks-mcp.git
cd aks-mcp/chart
helm install aks-mcp . --namespace aks-mcp --create-namespace
Para obtener la lista completa de parámetros de configuración, consulte la documentación del gráfico de Helm.
Configurar la autenticación
Elija un método de autenticación en función de los requisitos de seguridad y entorno:
- Identidad de la carga de trabajo (recomendado)
- OAuth para acceso de lectura-escritura
- Principal de Servicio con secreto existente
- Credenciales directas
La identidad de carga de trabajo proporciona autenticación sin contraseña mediante la vinculación de una cuenta de Kubernetes ServiceAccount a una identidad administrada de Azure.
1. Habilitación de OIDC en el clúster de AKS
az aks update \
--resource-group <your-resource-group> \
--name <your-aks-cluster> \
--enable-oidc-issuer \
--enable-workload-identity
2. Creación de una identidad administrada y asignación de permisos de RBAC
# Create identity
az identity create --resource-group <your-resource-group> --name aks-mcp-identity --location <your-location>
# Get IDs
IDENTITY_CLIENT_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "clientId" -o tsv)
IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "principalId" -o tsv)
# Assign Reader role (use Contributor for readwrite access)
az role assignment create --role "Reader" --assignee-object-id $IDENTITY_PRINCIPAL_ID --assignee-principal-type ServicePrincipal --scope "/subscriptions/<subscription-id>"
3. Creación de una credencial de identidad federada
AKS_OIDC_ISSUER=$(az aks show --resource-group <your-resource-group> --name <your-aks-cluster> --query "oidcIssuerProfile.issuerUrl" -o tsv)
az identity federated-credential create \
--name "aks-mcp-federated-credential" \
--identity-name aks-mcp-identity \
--resource-group <your-resource-group> \
--issuer $AKS_OIDC_ISSUER \
--subject "system:serviceaccount:aks-mcp:aks-mcp" \
--audience api://AzureADTokenExchange
Importante
Cree la credencial federada antes de instalar el gráfico de Helm.
4. Instalación con la identidad de carga de trabajo habilitada
helm install aks-mcp . \
--namespace aks-mcp \
--create-namespace \
--set workloadIdentity.enabled=true \
--set azure.clientId=$IDENTITY_CLIENT_ID \
--set azure.subscriptionId=<your-subscription-id>
Habilitar Ingreso con Enrutamiento de Aplicaciones de Azure
Exponga el servidor MCP externamente mediante el enrutamiento de aplicaciones de Azure:
# Enable App Routing on your cluster
az aks approuting enable --resource-group <your-resource-group> --name <your-cluster-name>
# Install with Ingress enabled
helm install aks-mcp . \
--namespace aks-mcp \
--create-namespace \
--set ingress.enabled=true \
--set ingress.hosts[0].host=aks-mcp.example.com \
--set ingress.hosts[0].paths[0].path=/ \
--set ingress.hosts[0].paths[0].pathType=Prefix \
--set azure.existingSecret=azure-credentials
Conexión del cliente MCP
Después de la implementación, conecte el asistente de IA al servidor MCP remoto:
# Port forward for local testing
kubectl port-forward svc/aks-mcp 8000:8000 -n aks-mcp
Configure el cliente MCP para conectarse:
{
"mcpServers": {
"aks-mcp": {
"url": "http://localhost:8000",
"transport": "streamable-http"
}
}
}
Para el acceso en clúster, use: http://aks-mcp.aks-mcp.svc.cluster.local:8000
Referencia de configuración de Helm
| Parámetro | Description | Predeterminado |
|---|---|---|
workloadIdentity.enabled |
Habilitación de la identidad de carga de trabajo de Azure | false |
azure.clientId |
Identificador de cliente de Azure | "" |
azure.tenantId |
Id. de inquilino de Azure | "" |
azure.clientSecret |
Secreto de cliente de Azure | "" |
azure.subscriptionId |
Identificador de suscripción de Azure | "" |
azure.existingSecret |
Uso de un secreto de Kubernetes existente | "" |
app.accessLevel |
Nivel de acceso: readonly, readwrite, admin |
readonly |
app.transport |
Transporte: stdio, sse, streamable-http |
streamable-http |
oauth.enabled |
Habilitación de la autenticación de OAuth | false |
ingress.enabled |
Habilitar ingreso | false |
Desinstalación del servidor MCP de AKS
El proceso de desinstalación del servidor MCP de AKS depende del modo de implementación y de dónde se está ejecutando actualmente.
VS Code con la extensión de AKS
- Abra la paleta de comandos (
Ctrl+Shift+Pen Windows/Linux oCmd+Shift+Pen macOS). - Ejecute MCP: Enumerar servidores.
- Seleccione AKS MCP en la lista.
- Seleccione Detener servidor para detener el servidor en ejecución.
- Para quitar la configuración, seleccione Eliminar configuración del servidor.
Como alternativa, quite manualmente la configuración del servidor:
- Abra el
.vscode/mcp.jsonarchivo o la configuración de usuario de VS Code. - Elimine la
aks-mcp-serverentrada delserversobjeto ogithub.copilot.chat.mcp.servers. - Elimine el AKS-MCP binario del sistema (la ubicación varía en función del método de instalación).
Docker
Si usa Docker MCP Toolkit:
- Abra Docker Desktop.
- Seleccione MCP Toolkit en la barra lateral izquierda.
- Busque el servidor AKS-MCP y deshabilítelo.
Si usa una configuración en contenedor, detenga y quite el contenedor:
docker stop <container-id>
docker rm <container-id>
Otros clientes MCP
Quite la entrada aks o aks-mcp del archivo de configuración de su cliente MCP (por ejemplo, de Claude Desktop claude_desktop_config.json).
Problemas habituales y soluciones
En esta sección se describen los problemas comunes de configuración y tiempo de ejecución, sus síntomas y cómo resolverlos.
El servidor MCP de AKS no puede acceder al clúster
Síntomas:
- Las herramientas devuelven errores de autorización
- No hay recursos visibles
Causas probables:
- La identidad de usuario o MCP no tiene permisos suficientes
- Enlace de ServiceAccount incorrecto
- Contexto kubeconfig mal configurado (modo local)
Resolución:
- Modo local: compruebe que tiene permisos suficientes para acceder al clúster. Compruebe que se encuentra en el clúster y el contexto de suscripción correctos.
- Modo remoto: compruebe los enlaces ClusterRole para la cuenta de servicio usada por el servidor MCP.
Error en las llamadas API de Azure
Síntomas:
- Las herramientas de call_az devuelven errores de autenticación o autorización.
Causas probables:
- Identidad de carga de trabajo no habilitada para su clúster
- ServiceAccount no federado
- Faltan asignaciones de RBAC de Azure
Resolución:
- Comprueba que la identidad de carga de trabajo esté habilitada en tu clúster.
- Comprobación de la configuración de identidad federada
- Asignación de roles de Azure adecuados a la identidad administrada
Pasos siguientes
Obtenga más información sobre las características inteligentes creadas de forma nativa para AKS:
- Acerca del CLI agentic para AKS
- Instalación y uso de la CLI agente para AKS