mcp-k8s-go

Servidor MCP para Kubernetes baseado em Golang. Construído para ser extensível.

Documentação

Servidor MCP baseado em Golang para conectar ao Kubernetes


MCP K8S Go

RecursosNavegar com InspectorUsar com ClaudeContribuindo ↗Sobre MCP ↗


latest release badge Go Reference license badge

Recursos

MCP 💬 prompt 🗂️ resource 🤖 tool

  • 🗂️🤖 Listar contextos do Kubernetes
  • 💬🤖 Listar namespaces do Kubernetes
  • 🤖 Listar, obter, criar e modificar qualquer recurso do Kubernetes
    • inclui mapeamentos personalizados para recursos como pods, services e deployments
  • 🤖 Listar nós do Kubernetes
  • 💬 Listar pods do Kubernetes
  • 🤖 Obter eventos do Kubernetes
  • 🤖 Obter logs de pods do Kubernetes
  • 🤖 Executar comando em pod do Kubernetes

Navegar com Inspector

Para usar a versão publicada mais recente com o Inspector, execute:

npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s

Usar com Claude

Exemplo de Uso

A conversa a seguir com o Claude Desktop demonstra como fica quando um contexto específico é selecionado como recurso e depois é solicitado verificar os logs dos pods em busca de erros no namespace kube-system:

Claude Desktop

Para usar este servidor MCP com o Claude Desktop (ou qualquer outro cliente), você pode precisar escolher qual método de instalação usar.

Você tem várias opções:

Smitherymcp-getNPM pré-compiladoPré-compilado no GithubA partir do código-fonteUsando Docker
Configuração do ClaudeAutomáticaAutomáticaManualManualManualManual
Pré-requisitoNode.jsNode.jsNode.jsNenhumGolangDocker

Usando Smithery

Para instalar o MCP K8S Go para o Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @strowk/mcp-k8s --client claude

Usando mcp-get

Para instalar o MCP K8S Go para o Claude Desktop automaticamente via mcp-get:

npx @michaellatman/mcp-get@latest install @strowk/mcp-k8s

Manualmente com binários pré-compilados

Pré-compilado do npm

Use esta opção se você tiver o npm instalado e quiser usar binários pré-compilados:

npm install -g @strowk/mcp-k8s

Em seguida, verifique a versão executando mcp-k8s --version e, se a versão instalada for exibida, você pode prosseguir adicionando a configuração ao arquivo claude_desktop_config.json:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "mcp-k8s",
      "args": []
    }
  }
}

, ou usando npx com qualquer cliente:

npx @strowk/mcp-k8s

Por exemplo, para o Claude:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "npx",
      "args": [
        "@strowk/mcp-k8s"
      ]
    }
  }
}

A partir dos releases do GitHub

Acesse GitHub releases e baixe a versão mais recente para sua plataforma.

Descompacte o arquivo, que conterá o binário chamado mcp-k8s-go, coloque esse binário em algum lugar do seu PATH e adicione a seguinte configuração ao arquivo claude_desktop_config.json:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "mcp-k8s-go",
      "args": []
    }
  }
}

Compilando a partir do código-fonte

Você precisará do Golang instalado para compilar este projeto:

go get github.com/strowk/mcp-k8s-go
go install github.com/strowk/mcp-k8s-go

, e adicione a seguinte configuração ao arquivo claude_desktop_config.json:

{
  "mcpServers": {
    "mcp_k8s_go": {
      "command": "mcp-k8s-go",
      "args": []
    }
  }
}

Usando Docker

Este servidor é compilado e publicado no Docker Hub desde o release 0.3.1-beta.2, com imagens multi-arquitetura disponíveis para as arquiteturas linux/amd64 e linux/arm64.

Você pode usar a tag mais recente, por exemplo:

docker run -i -v ~/.kube/config:/home/nonroot/.kube/config --rm mcpk8s/server:latest

Usuários do Windows podem precisar substituir ~/.kube/config por //c/Users/<username>/.kube/config pelo menos no Git Bash.

Para o Claude:

{
  "mcpServers": {
    "mcp_k8s_go": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-v",
        "~/.kube/config:/home/nonroot/.kube/config",
        "--rm",
        "mcpk8s/server:latest"
      ]
    }
  }
}

Variáveis de Ambiente e Opções de Linha de Comando

As seguintes variáveis de ambiente são usadas pelo servidor MCP:

  • KUBECONFIG: Caminho para o seu arquivo de configuração do Kubernetes (opcional, padrão: ~/.kube/config)

As seguintes opções de linha de comando são suportadas:

  • --allowed-contexts=<ctx1,ctx2,...>: Lista separada por vírgulas de contextos do Kubernetes permitidos que os usuários podem acessar. Se não for especificada, todos os contextos são permitidos.
  • --readonly: Desativa qualquer ferramenta que possa gravar alterações no cluster
  • --help: Exibe informações de ajuda
  • --version: Exibe informações de versão
  • --mask-secrets: Mascara segredos na saída (padrão: true). Use --mask-secrets=false para desativar o mascaramento

Por exemplo, se você estiver configurando o Claude Desktop, pode adicionar a seguinte configuração ao arquivo claude_desktop_config.json:

{
    "mcpServers": {
        "mcp_k8s": {
            "command": "mcp-k8s",
            "args": [
                "--allowed-contexts=dev,prod",
                "--readonly"
            ]
        }
    }
}

, o que permitiria apenas o uso dos contextos dev e prod e desativaria qualquer ferramenta que possa gravar alterações no cluster.