Servidor MCP Kubernetes - Detalhes do Projeto
Visão Geral do Projeto
O Servidor MCP Kubernetes é um servidor de Protocolo de Conteúdo de Modelo (Model Content Protocol) projetado especificamente para o gerenciamento de clusters Kubernetes. Ele permite que agentes de IA (como o Claude) se conectem e gerenciem clusters Kubernetes por meio de comandos em linguagem natural, simplificando significativamente a complexidade da orquestração de contêineres e das operações de cluster.
Endereço do Projeto: https://github.com/Flux159/mcp-server-kubernetes
Principais Características
🎯 Conexão e Gerenciamento de Cluster
- Conexão automática ao cluster configurado no contexto kubectl atual
- Suporte para vários ambientes Kubernetes (minikube, Rancher Desktop, GKE, etc.)
- Totalmente compatível com a configuração kubeconfig existente
📦 Gerenciamento de Pods e Deployments
- Operações de Pod: Criar, descrever, excluir Pods
- Gerenciamento de Deployments: Listar todos os deployments, atualizar o número de réplicas
- Configuração Personalizada: Suporte para criar configurações personalizadas de Pod e Deployment
- Visualização de Logs: Obter logs de Pod para depuração (suporte para Pod, Deployment, Job e seletores de rótulo)
🌐 Gerenciamento de Serviços e Rede
- Operações de Serviço: Criar, descrever, excluir, atualizar serviços
- Redirecionamento de Porta: Suporte para redirecionamento de porta de Pod ou serviço
- Configuração de Rede: Suporte completo para gerenciamento de rede Kubernetes
🗂️ Gerenciamento de Recursos e Configuração
- Namespaces: Listar todos os namespaces, criar novos namespaces
- ConfigMap: Criar, obter, atualizar, excluir mapas de configuração
- Gerenciamento de Nós: Listar e descrever nós do cluster
- Tarefas Agendadas: Criar, listar e descrever CronJobs
⚙️ Suporte à Integração com Helm
- Instalação de Gráficos: Instalar gráficos Helm com valores personalizados
- Gerenciamento de Versões: Suporte para especificação de versão e repositórios personalizados
- Gerenciamento de Releases: Desinstalar e atualizar releases existentes
- Suporte a Namespaces: Isolamento completo de namespace
🔧 Funcionalidades Avançadas
- Suporte a kubectl: Comandos kubectl explain e kubectl api-resources
- Monitoramento de Eventos: Obter informações de eventos do cluster
- Modo Não Destrutivo: Modo seguro que permite apenas operações de leitura e criação/atualização
- Monitoramento em Tempo Real: Suporte para visualização em tempo real do estado do cluster
Arquitetura do Sistema
Diagrama da Arquitetura
Cliente (Claude/Agente de IA)
↓
StdioTransport (Camada de Transporte de Comunicação)
↓
Servidor MCP (Processamento de Protocolo)
↓
Request Handler (Roteamento de Requisições)
↓
KubernetesManager (Gerenciador K8s)
↓
API Kubernetes (API do Cluster)
Fluxo de Requisição
- Requisição do Cliente: O agente de IA envia a requisição via STDIO
- Camada de Transporte: StdioTransport encaminha a requisição para o servidor MCP
- Processamento de Roteamento: O servidor roteia a requisição para o handler correspondente
- Execução da Ferramenta: KubernetesManager executa as operações K8s específicas
- Chamada da API: Interage com a API Kubernetes
- Retorno da Resposta: O resultado do processamento é retornado camada por camada para o cliente
Instalação e Configuração
Requisitos de Ambiente
- kubectl: Instalado e configurado no PATH
- kubeconfig: Arquivo kubeconfig válido e configuração de contexto
- Cluster Kubernetes: Cluster acessível (minikube, GKE, EKS, etc.)
- Helm v3: Opcional, se precisar usar as funcionalidades do Helm
- Node.js: Ambiente de tempo de execução
Instalação Rápida
Instalação via NPM (Recomendado)
# Instalação global
npm install -g mcp-server-kubernetes
# Ou use npx para executar diretamente
npx mcp-server-kubernetes
Integração com Claude Desktop
Edite o arquivo claude_desktop_config.json
:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Verificação de Conexão
Após a instalação, você pode:
- Pedir ao Claude para listar seus Pods
- Criar um deployment de teste
- Se houver erros, execute
kubectl get pods
no terminal para verificar a conexão
Configuração do Ambiente de Desenvolvimento
Desenvolvimento Local
# Clonar o repositório
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
# Instalar dependências (requer bun)
bun install
# Iniciar no modo de desenvolvimento (monitorar alterações de arquivo)
bun run dev
# Executar testes unitários
bun run test
# Construir o projeto
bun run build
Casos de Uso e Exemplos
🚀 Cenários de Operação Diária
- "Listar o status de todos os Pods" - Verificação rápida da saúde do cluster
- "Criar um deployment nginx com 3 réplicas" - Implantação rápida de aplicativos
- "Ver os logs de Pods com erros no namespace default" - Solução de problemas
- "Redirecionar a porta do aplicativo para localhost:8080" - Depuração local
📊 Monitoramento e Depuração
- "Mostrar todos os eventos no cluster" - Monitorar a atividade do cluster
- "Descrever as informações detalhadas do nó node-1" - Análise de recursos
- "Verificar a execução recente do CronJob" - Monitoramento de tarefas agendadas
🛠️ Implantação de Aplicativos
- "Instalar o gráfico Redis usando Helm" - Implantação rápida de middleware
- "Atualizar o número de réplicas do deployment web-app para 5" - Operação de escalonamento
- "Criar um ConfigMap para o ambiente de produção" - Gerenciamento de configuração
Configuração Avançada
Modo Não Destrutivo
Defina a variável de ambiente para habilitar o modo seguro:
export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
Neste modo, apenas operações de leitura e criação/atualização são permitidas, as operações de exclusão são proibidas.
Protocolo de Transporte SSE
Suporte para protocolo de transporte de eventos push do servidor, consulte o ADVANCED_README.md
do projeto para obter detalhes da configuração.
Autenticação de Cluster
Suporte para vários métodos de autenticação Kubernetes:
- Autenticação por certificado
- Autenticação por Token
- Autenticação OIDC
- Integração IAM do provedor de nuvem
Stack de Tecnologia e Dependências
Tecnologias Principais
- Tempo de Execução: Node.js + Bun
- Protocolo: Model Content Protocol (MCP)
- Cliente Kubernetes: Official Kubernetes JavaScript Client
- Camada de Transporte: STDIO Transport
- Gerenciamento de Pacotes: Helm v3
Principais Dependências
@kubernetes/client-node
: Cliente JS oficial do Kubernetes
@modelcontextprotocol/sdk
: SDK do protocolo MCP
commander
: Análise de parâmetros de linha de comando
yaml
: Processamento de arquivos YAML
Projetos Relacionados e Ecossistema
Ecossistema MCP
- mcp-chat: Cliente de chat CLI para o servidor MCP
- MCP Inspector: Ferramenta de depuração do protocolo MCP
- Claude Desktop: Aplicativo de desktop de assistente de IA com suporte a MCP
Ferramentas Kubernetes
- kubectl: Ferramenta de linha de comando oficial
- Helm: Gerenciador de pacotes
- minikube: Ambiente de desenvolvimento local
- Rancher Desktop: Ambiente Kubernetes de desktop
Perspectivas e Valor da Aplicação
🎯 Aumento da Eficiência Operacional
Operar clusters Kubernetes por meio de linguagem natural reduz a curva de aprendizado e aumenta a eficiência operacional. Até mesmo os novatos podem começar rapidamente com tarefas complexas de gerenciamento de cluster.
🤖 Operações Inteligentes
Combinando a capacidade de análise inteligente de agentes de IA, é possível realizar:
- Diagnóstico automático de falhas
- Recomendações inteligentes de recursos
- Manutenção preditiva
- Otimização automatizada de implantação
🔗 Integração Perfeita
Totalmente compatível com o ecossistema Kubernetes existente, sem a necessidade de alterar os fluxos de trabalho existentes, a introdução da operação assistida por IA pode ser gradual.
📈 Direções Futuras de Desenvolvimento
- Suporte para mais tipos de recursos Kubernetes
- Integração com mais ferramentas nativas da nuvem
- Aprimoramento da segurança e controle de permissões
- Suporte para gerenciamento de vários clusters
- Interface gráfica do usuário
Conclusão
O projeto Servidor MCP Kubernetes representa uma tentativa inovadora de combinar IA e tecnologias nativas da nuvem. Ele simplifica a complexidade do gerenciamento de clusters Kubernetes por meio de uma interface de linguagem natural, permitindo que os operadores gerenciem aplicativos conteinerizados de forma mais intuitiva e eficiente.
Seja você um novato no Kubernetes ou um especialista em operações experiente, esta ferramenta pode melhorar significativamente sua eficiência no trabalho. Ao integrar-se com assistentes de IA como o Claude, ele abre novas possibilidades para operações inteligentes e é uma adição poderosa ao conjunto de ferramentas DevOps moderno.
Com o desenvolvimento contínuo de tecnologias nativas da nuvem e o avanço constante da tecnologia de IA, acredita-se que essas ferramentas desempenharão um papel cada vez mais importante nas operações de TI futuras.