Kubernetes MCP Server

oficial

Um servidor MCP Kubernetes para Claude, construído em Go. O servidor integra-se com ArgoCD, GitLab, Claude AI e Kubernetes para permitir controle e automação avançados de ambientes Kubernetes.

O que você pode fazer com Kubernetes MCP?

  • Inspecionar recursos do cluster — Peça ao seu assistente para listar namespaces ou recursos de qualquer tipo via GET /api/v1/namespaces e GET /api/v1/resources/{kind}.
  • Solucionar problemas de um recurso específico — Peça ao assistente para analisar ou solucionar problemas de um pod como example-pod usando o endpoint POST /api/v1/mcp/troubleshoot.
  • Revisar commits do GitLab — Solicite uma análise de commit através do endpoint POST /api/v1/mcp/commit para obter insights orientados por IA.
  • Verificar aplicações ArgoCD — Peça uma lista de todas as aplicações ArgoCD via GET /api/v1/argocd/applications.
  • Consultas personalizadas de IA sobre recursos — Envie uma solicitação MCP genérica (POST /api/v1/mcp) com uma consulta personalizada sobre qualquer recurso no seu cluster.

Documentação

Blank Cut

Claude Kubernetes MCP Server

CI Release Docker Pulls Docker Image Size Go Report Card License GitHub release

Um servidor Model Context Protocol (MCP) para gerenciamento de clusters Kubernetes com integração com ArgoCD e GitLab.

Este repositório contém o servidor Claude Kubernetes MCP (Model Context Protocol), construído em Go. O servidor integra-se com ArgoCD, GitLab, Claude AI e Kubernetes para permitir controle avançado e automação de ambientes Kubernetes.

Veja Nossa Documentação Aqui

Sumário


Visão Geral

Este servidor foi projetado para orquestrar cargas de trabalho Kubernetes usando Claude AI, GitLab, ArgoCD e Vault. Ele expõe uma API REST que permite interação programática com esses sistemas, orientada por um config.yaml configurado e autenticada usando uma chave de API.

Pré-requisitos

  • Go 1.20+
  • Docker
  • Cluster Kubernetes e ~/.kube/config válido
  • Cluster EKS com AWS_PROFILE definido localmente
  • Credenciais do ArgoCD
  • Token de acesso pessoal do GitLab
  • Chave de API do Claude (Anthropic)
  • Credenciais do Vault (opcional, dependendo do uso)

Instruções de Configuração

1. Clonar o Repositório

git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server

2. Exportar Variáveis de Ambiente Necessárias

Exporte as credenciais para ArgoCD, GitLab e Claude:

export ARGOCD_USERNAME="argocd-username"
export ARGOCD_PASSWORD="argocd-password"
export GITLAB_TOKEN="gitlab-token"
export CLAUDE_API_KEY="claude-api-key"
export VAULT_TOKEN="optional-if-using-vault"

Garanta que um kubeconfig esteja disponível:

export KUBECONFIG=~/.kube/config

3. Configurar config.yaml

Atualize kubernetes-claude-mcp/config.yaml com credenciais e preferências do servidor:

server:
  address: ":8080"
  readTimeout: 30
  writeTimeout: 60
  auth:
    apiKey: ""${API_KEY}"" 

kubernetes:
  kubeconfig: ""
  inCluster: false
  defaultContext: ""
  defaultNamespace: "default"

argocd:
  url: "http://example.argocd.com"
  authToken: ""
  username: "${ARGOCD_USERNAME}"
  password: "${ARGOCD_PASSWORD}"
  insecure: true

gitlab:
  url: "https://gitlab.com"
  authToken: "${AUTH_TOKEN}"
  apiVersion: "v4"
  projectPath: ""${PROJECT_PATH}""

claude:
  apiKey: "${API_KEY}"
  baseURL: "https://api.anthropic.com"
  modelID: "claude-sonnet-4.5-20250514"
  maxTokens: 8192
  temperature: 0.3

Você pode usar os modelos Go fornecidos ou o método de interpolação de variáveis de ambiente.

4. Adicionar Chave de API para Postman

Certifique-se de que um config.yaml inclua um apiKey. Isso será usado para autenticar solicitações no Postman ou em qualquer cliente externo.


Executando Localmente

cd kubernetes-claude-mcp
go run ./cmd/server/main.go

Com Logging de Depuração:

LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml

O servidor iniciará e vinculará à porta configurada em config.yaml (padrão: 8080).


Construindo e Executando com Docker

1. Construir a Imagem

cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .

2. Executar o Contêiner (segunda opção de build incluída)

cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d

Implantação em Produção

Um chart Helm está incluído no repositório para implantação em Kubernetes:

1. Navegue até o Diretório do Chart Helm

cd kubernetes-claude-mcp/deployments/helm

2. Implantar com Helm

Atualize values.yaml com valores apropriados e execute:

helm install claude-mcp .

Para atualizar:

helm upgrade claude-mcp .

Certifique-se de que segredos e config maps estejam devidamente montados e protegidos no cluster.


Documentação da API

Abaixo estão os endpoints principais expostos pelo servidor MCP. Todas as solicitações exigem o cabeçalho X-API-Key:

Geral

  • Verificação de Saúde
    • GET /api/v1/health

Kubernetes

  • Listar Namespaces
    • GET /api/v1/namespaces
  • Listar Recursos
    • GET /api/v1/resources/{kind}?namespace={ns}
  • Obter Recurso Específico
    • GET /api/v1/resources/{kind}/{name}?namespace={ns}
  • Obter Eventos para um Recurso
    • GET /api/v1/events?namespace={ns}&resource={kind}&name={name}

ArgoCD

  • Listar Aplicações
    • GET /api/v1/argocd/applications

Endpoints Claude MCP

  • Analisar Recurso
    • POST /api/v1/mcp/resource
  • Solucionar Problemas do Recurso
    • POST /api/v1/mcp/troubleshoot
  • Análise de Commit (GitLab)
    • POST /api/v1/mcp/commit
  • Solicitação MCP Genérica
    • POST /api/v1/mcp

Todos os endpoints POST aceitam um payload JSON contendo campos como:

{
  "resource": "pod",
  "name": "example-pod",
  "namespace": "default",
  "query": "What’s wrong with this pod?"
}

Coleção Postman

Uma coleção Postman pronta para uso estará disponível em breve.

Doação

Contribua para o nosso fundo de café para nos ajudar a continuar fazendo coisas incríveis Compre-me um Café

Licença

Este projeto está licenciado sob a Licença MIT.


Contribuição

A documentação será expandida em breve. Se você quiser contribuir, sinta-se à vontade para abrir um pull request ou registrar uma issue!