Referência de ferramentas de servidor MCP do Amazon EKS - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Referência de ferramentas de servidor MCP do Amazon EKS

O servidor disponibiliza as ferramentas do MCP apresentadas a seguir.

nota

O servidor MCP do Amazon EKS está em versão de pré-visualização para o Amazon EKS e está sujeito a alterações.

Ferramentas somente leitura

Esta seção descreve as ferramentas destinadas somente à leitura disponíveis para o servidor MCP do EKS. Lembre-se de que todas as operações de leitura da API do Kubernetes podem acessar tanto:

search_eks_documentation

Realize pesquisas na documentação do EKS para obter informações e orientações atualizadas. Esta ferramenta fornece acesso à documentação mais recente do EKS, incluindo os novos recursos e as últimas melhorias que podem ser desconhecidos pelos agentes.

Parâmetros:

  • query (obrigatório): sua dúvida específica ou consulta de pesquisa relacionada à documentação, aos recursos ou às práticas recomendadas do EKS.

  • limit (opcional): quantidade máxima de resultados da documentação que devem ser retornados (1 a 10). Padrão: 5.

search_eks_troubleshooting_guide

Pesquisa no guia de solução de problemas do EKS para encontrar informações de depuração com base em uma consulta. Auxilia na identificação de problemas recorrentes e oferece instruções detalhadas para resolução.

Parâmetros:

  • query (obrigatório): sua dúvida específica ou descrição do problema relacionada à solução de problemas do EKS.

describe_eks_resource

Recupera informações detalhadas sobre um recurso específico do cluster de EKS, incluindo a configuração, o status e os metadados.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS (obrigatório para recursos com escopo de cluster).

  • resource_type (obrigatório): o tipo de recurso do EKS que será descrito. Valores válidos:

  • accessentry (requer cluster_name e resource_name como principalArn).

  • addon (requer cluster_name e resource_name como nome do addon).

  • cluster (requer cluster_name), nodegroup (requer cluster_name e resource_name como nome do nodegroup).

  • resource_name (opcional): nome do recurso específico que será descrito (obrigatório para a maioria dos tipos de recurso).

list_eks_resources

Lista os recursos do EKS de um determinado tipo, fornecendo um resumo de todos os recursos do tipo especificado que estão acessíveis.

Parâmetros:

  • resource_type (obrigatório): o tipo de recurso do EKS que será listado. Valores válidos:

  • accessentry (requer cluster_name).

  • addon (requer cluster_name).

  • cluster (nenhum parâmetro adicional é requerido).

  • nodegroup (requer cluster_name).

  • cluster_name (opcional): nome do cluster de EKS (obrigatório para recursos com escopo de cluster).

get_eks_insights

Obtém insights e recomendações do cluster de EKS voltados para a otimização. Fornece insights acionáveis para segurança, performance e otimização de custos com base nas práticas recomendadas da AWS e na análise do cluster.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS.

  • category (opcional): categoria opcional para filtrar os insights (por exemplo, “MISCONFIGURATION” ou “UPGRADE_READINESS”).

  • insight_id (opcional): ID opcional de um insight específico sobre o qual se deseja obter informações.

  • next_token (opcional): token opcional de paginação para acessar o próximo conjunto de resultados.

get_eks_vpc_config

Obtém as configurações da VPC de um cluster de EKS, abrangendo sub-redes, tabelas de rotas e conectividade de rede.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS para o qual se deseja obter a configuração da VPC.

  • vpc_id (opcional): ID da VPC específica para consulta (como é opcional, caso não seja informado, será utilizada a VPC do cluster).

get_k8s_events

Obtém eventos do Kubernetes relacionados a recursos específicos para solução de problemas e monitoramento.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS em que o recurso está localizado.

  • kind (obrigatório): tipo do objeto envolvido (por exemplo, “Pod”, “Deployment” e “Service”). Deve corresponder exatamente ao tipo do recurso.

  • name (obrigatório): nome do objeto envolvido do qual se deseja obter os eventos.

  • namespace (opcional): namespace do objeto envolvido. Obrigatório para recursos vinculados a um namespace (como Pods e Deployments). Não é necessário para recursos de escopo de cluster (como Nodes e PersistentVolumes).

get_pod_logs

Recupera logs de pods em um cluster de EKS com opções de filtragem.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS em que o pod está sendo executado.

  • namespace (obrigatório): namespace do Kubernetes em que o pod está localizado.

  • pod_name (obrigatório): nome do pod do qual se deseja recuperar os logs.

  • container_name (opcional): nome do contêiner específico do qual se deseja obter os logs. Obrigatório apenas se o pod contiver vários contêineres.

  • limit_bytes (opcional): número máximo de bytes a serem retornados. Padrão: 10 KB (10.240 bytes).

  • previous (opcional): retorna os logs do contêiner anterior que foi encerrado (o padrão é “false”). Útil para obter logs de pods que estão sendo reiniciados.

  • since_seconds (opcional): retorna somente os logs mais recentes do que a quantidade de segundos definida. Útil para obter logs recentes sem recuperar todo o histórico.

  • tail_lines (opcional): número de linhas a serem retornadas do final dos logs. Padrão: 100.

list_api_versions

Lista todas as versões de API disponíveis no cluster do Kubernetes especificado.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS.

list_k8s_resources

Lista recursos do Kubernetes de um tipo específico em um cluster de EKS.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS em que os recursos estão localizados.

  • kind (obrigatório): o tipo dos recursos do Kubernetes a serem listados (por exemplo, “Pod”, “Service” e “Deployment”). Use a ferramenta list_api_versions para localizar os tipos de recursos disponíveis.

  • api_version (obrigatório): versão da API dos recursos do Kubernetes (por exemplo, “v1”, “apps/v1” e “networking.k8s.io/v1”). Use a ferramenta list_api_versions para localizar as versões da API disponíveis.

  • field_selector (opcional): seletor de campos para filtrar recursos (por exemplo, “metadata.name=mypod,status.phase=Running”). Usa a mesma sintaxe da sinalização “--field-selector” do kubectl.

  • label_selector (opcional): seletor de rótulos para a filtragem de recursos (por exemplo, “app=nginx,tier=frontend”). Usa a mesma sintaxe da sinalização --selector do kubectl.

  • namespace (opcional): namespace dos recursos do Kubernetes a serem listados. Se não for informado, os recursos serão listados em todos os namespaces (para recursos vinculados a um namespace).

read_k8s_resource

Obtém informações detalhadas sobre um recurso específico do Kubernetes em um cluster de EKS.

Parâmetros:

  • api_version (obrigatório): versão da API do recurso do Kubernetes (por exemplo, “v1”, “apps/v1” e “networking.k8s.io/v1”).

  • cluster_name (obrigatório): nome do cluster de EKS em que o recurso está localizado.

  • kind (obrigatório): tipo do recurso do Kubernetes (por exemplo, “Pod”, “Service” e “Deployment”).

  • name (obrigatório): nome do recurso do Kubernetes destinado à leitura.

  • namespace (opcional): namespace do recurso do Kubernetes. Obrigatório para recursos vinculados a um namespace. Não é necessário para recursos de escopo de cluster (como Nodes e PersistentVolumes).

generate_app_manifest

Gera manifestos padronizados de “deployment” e “service” do Kubernetes para aplicações conteinerizadas.

Parâmetros:

  • app_name (obrigatório): nome da aplicação. Usado para nomes de implantação e de serviços, bem como para rótulos.

  • image_uri (obrigatório): URI completo da imagem no ECR com uma etiqueta (por exemplo, “123456789012.dkr.ecr.region.amazonaws.com/repo:tag”). É necessário informar o caminho completo do repositório seguido da etiqueta.

  • load_balancer_scheme (opcional): tipo de esquema do AWS Load Balancer. Valores válidos:

  • “interno” (somente para VPC privada)

  • “voltado para a internet” (acesso público)

  • Padrão: “interno”.

  • cpu (opcional): solicitação de CPU para cada contêiner (por exemplo, “100 m” para 0,1 núcleos de CPU, “500 m” para meio núcleo). Padrão: “100 m”.

  • memory (opcional): solicitação de memória para cada contêiner (por exemplo, “128 Mi” para 128 MiB, “1 Gi” para 1 GiB). Padrão: “128 Mi”.

  • namespace (opcional): namespace do Kubernetes no qual a aplicação será implantada. Padrão: “padrão”.

  • port (opcional): porta do contêiner configurada para receber o tráfego da aplicação. Padrão: 80

  • replicas (opcional): número de réplicas a serem implantadas. Padrão: 2

get_cloudwatch_logs

Realiza consultas nos logs do CloudWatch com filtros personalizados baseados nos parâmetros informados e suporte aos grupos de logs padrão para a observabilidade do cluster de EKS.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS em que o recurso está localizado. Usado para criar o nome do grupo de logs do CloudWatch.

  • resource_type (obrigatório): tipo de recurso para o qual se deseja pesquisar por logs. Valores válidos: “pod”, “node”, “container” ou “cluster”. Determina o critério de filtragem dos logs.

  • log_type (obrigatório): tipo de log destinado à consulta. Valores válidos:

  • “application”: logs de aplicação e de contêiner.

  • “host”: logs do sistema no nível do nó.

  • performance”: logs de métricas de performance.

  • “control-plane”: logs do ambiente de gerenciamento do EKS.

  • “your-log-group-name”: informe diretamente um nome personalizado para o grupo de logs do CloudWatch.

  • resource_name (opcional): nome do recurso que você deseja pesquisar nos registros de log (por exemplo, o nome do pod, do nó ou do contêiner). Usado para filtrar os logs referentes a esse recurso específico.

  • minutes (opcional): quantidade de minutos retroativos para a busca de logs. Padrão: 15. Este parâmetro será desconsiderado caso o “start_time” seja informado. Use valores baixos para investigar problemas atuais e valores mais altos para realizar uma análise do histórico.

  • start_time (opcional): horário de início no formato ISO (por exemplo, “2023-01-01T00:00:00Z”). Se for fornecido, substitui o parâmetro “minutes”.

  • end_time (opcional): horário de término no formato ISO (por exemplo, “2023-01-01T01:00:00Z”). Se não for informado, o padrão é o horário atual.

  • fields (opcional): campos personalizados para incluir nos resultados da consulta (o padrão é “@timestamp, @message”). Use a sintaxe de campos do CloudWatch Logs Insights.

  • filter_pattern (opcional): padrão de filtragem adicional do CloudWatch Logs a ser aplicado. Usa a sintaxe do CloudWatch Logs Insights (por exemplo, “ERROR” e “field=value”).

  • limit (opcional): número máximo de entradas de log a serem retornadas. Use valores baixos (10 a 50) para consultas mais rápidas e valores altos (100 a 1.000) para resultados mais abrangentes. Valores mais altos podem afetar o desempenho.

get_cloudwatch_metrics

Obtém métricas e pontos de dados do CloudWatch para monitoramento e análise da performance de clusters de EKS. Gerencia métricas do Container Insights e métricas personalizadas, além de períodos de tempo e dimensões configuráveis.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS para o qual as métricas serão obtidas.

  • dimensions (obrigatório): dimensões a serem utilizadas na consulta de métricas do CloudWatch, fornecidas como uma string JSON. Deve incluir as dimensões apropriadas para o tipo de recurso e a métrica (por exemplo, “{“ClusterName”: “my-cluster”, “PodName”: “my-pod”, “Namespace”: “default”}”).

  • metric_name (obrigatório): nome da métrica a ser recuperada. Exemplos comuns:

  • cpu_usage_total: uso total de CPU

  • memory_rss: uso de memória “Resident Set Size” (RSS)

  • network_rx_bytes: bytes de rede recebidos

  • network_tx_bytes: bytes de rede transmitidos

  • namespace (obrigatório): namespace do CloudWatch em que a métrica está armazenada. Valores comuns:

  • "ContainerInsights": para métricas de contêiner

  • "AWS/EC2": para métricas de instâncias do EC2

  • "AWS/EKS": para métricas do ambiente de gerenciamento do EKS

  • minutes (opcional): quantidade de minutos retroativos para a busca de métricas. Padrão: 15. Este parâmetro será desconsiderado caso o “start_time” seja informado.

  • start_time (opcional): horário de início no formato ISO (por exemplo, “2023-01-01T00:00:00Z”). Se for fornecido, substitui o parâmetro “minutes”.

  • end_time (opcional): horário de término no formato ISO (por exemplo, “2023-01-01T01:00:00Z”). Se não for informado, o padrão é o horário atual.

  • limit (opcional): número máximo de pontos de dados a serem retornados. Valores mais altos (100 a 1.000) oferecem maior detalhamento dos dados, mas podem afetar a performance da consulta. Padrão: 50.

  • period (opcional): período em segundos para os pontos de dados da métrica. Valor padrão: 60 (1 minuto). Valores baixos (1 a 60) oferecem alta resolução, embora possam ter menor disponibilidade.

  • stat (opcional): estatística a ser usada para a agregação da métrica. Padrão: “Average”. Valores válidos:

  • Average: valor médio durante o período

  • Sum:: valor total durante o período

  • Maximum: valor máximo atingido no período

  • Minimum: valor mínimo atingido no período

  • SampleCount: quantidade de amostras coletadas no período

get_eks_metrics_guidance

Obtém orientações sobre métricas do CloudWatch para tipos de recursos específicos em clusters de EKS. Útil para o agente ao determinar as dimensões corretas a serem usadas com a ferramenta “get_cloudwatch_metrics”.

Parâmetros:

  • resource_type (obrigatório): tipo de recurso para o qual se deseja obter orientações relacionadas às métricas (“cluster”, “node”, “pod”, “namespace” e “service”).

get_policies_for_role

Recupera todas as políticas anexadas a um perfil do IAM especificado, incluindo a política de assumir perfil, as políticas gerenciadas e as políticas em linha.

Parâmetros:

  • role_name (obrigatório): nome do perfil do IAM para o qual se deseja obter as políticas. O perfil deve existir em sua conta da AWS.

Ferramentas de acesso total (gravação)

Esta seção descreve as ferramentas destinadas somente à leitura disponíveis para o servidor MCP do EKS. Lembre-se de que, até o momento, todas as operações de gravação da API do Kubernetes podem acessar apenas:

  • Clusters públicos (endpointPublicAccess=true)

manage_k8s_resource

Gerencia um único recurso do Kubernetes por meio de operações de gravação (criar, atualizar, aplicar patches ou excluir).

Parâmetros:

  • operation (obrigatório): operação a ser realizada no recurso. Valores válidos:

  • create:: cria um novo recurso

  • replace: substitui um recurso existente

  • patch: atualiza campos específicos de um recurso existente

  • delete: exclui um recurso existente

  • Observação: use “read_k8s_resource” para a consulta de recursos e “list_k8s_resources” para obter uma lista com vários recursos de uma vez.

  • cluster_name (obrigatório): nome do cluster de EKS em que o recurso está localizado ou será criado.

  • kind (obrigatório): tipo do recurso do Kubernetes (por exemplo, “Pod”, “Service” e “Deployment”).

  • api_version (obrigatório): versão da API do recurso do Kubernetes (por exemplo, “v1”, “apps/v1” e “networking.k8s.io/v1”).

  • body (opcional): definição do recurso como uma string JSON. Obrigatório para operações de criação, substituição e aplicação de patches. Para a criação e a substituição, deve ser usada uma definição completa do recurso. Para a aplicação de patches, deve conter apenas os campos a serem atualizados.

  • name (opcional): nome do recurso do Kubernetes. Obrigatório em todas as operações, menos a operação de criação (visto que pode ser informado no próprio corpo).

  • namespace (opcional): namespace do recurso do Kubernetes. Obrigatório para recursos vinculados a um namespace. Não é necessário para recursos de escopo de cluster (como Nodes e PersistentVolumes).

apply_yaml

Aplica manifestos YAML do Kubernetes a um cluster de EKS.

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS em que os recursos serão criados ou atualizados.

  • namespace (obrigatório): namespace do Kubernetes ao qual os recursos serão aplicados. Será usado para recursos vinculados a namespaces que não especifiquem um namespace próprio.

  • yaml_content (obrigatório): conteúdo YAML a ser aplicado ao cluster. Pode conter vários documentos separados por “---”.

  • force (opcional): indica se os recursos devem ser atualizados caso já existam (semelhante ao “kubectl apply”). Defina como “false” para apenas criar novos recursos.

manage_eks_stacks

Gerencia pilhas do CloudFormation para o EKS com operações para gerar modelos, implantar, descrever e excluir clusters de EKS e a infraestrutura subjacente. A criação do cluster normalmente demora de 15 a 20 minutos para ser concluída. Para operações de implantação e exclusão, a pilha deve ter sido criada por esta ferramenta (ou seja, marcada com a etiqueta “CreatedBy=EksMcpServer”).

Parâmetros:

  • cluster_name (obrigatório): nome do cluster de EKS (para operações de geração, implantação, descrição e exclusão). Este nome será usado para derivar o nome da pilha do CloudFormation e será incorporado aos recursos do cluster.

  • operation (obrigatório): operação a ser realizada. Valores válidos:

  • generate: gerar um modelo do CloudFormation

  • deploy: implantar uma pilha do CloudFormation (requer template_content)

  • describe: descrever ou ler uma pilha do CloudFormation (somente leitura)

  • delete: excluir uma pilha do CloudFormation

  • template_content (opcional): conteúdo do modelo do CloudFormation (para operações de implantação). Deve ser o conteúdo completo do modelo em YAML ou JSON. Fornece suporte tanto a recursos únicos quanto a conteúdo YAML de vários documentos separados por “---”.

add_inline_policy

Adiciona uma nova política em linha a um perfil do IAM.

Parâmetros:

  • permissions (obrigatório): permissões a serem incluídas na política como strings JSON que representam declarações da política do IAM. Pode ser uma única string JSON ou uma matriz de strings JSON.

  • policy_name (obrigatório): Nome da política em linha a ser criada. Deve ser exclusivo dentro do perfil.

  • role_name (obrigatório): nome do perfil do IAM ao qual a política será adicionada. O perfil deve existir.