mcp-k8s-go

Servidor MCP de Kubernetes basado en Golang. Diseñado para ser extensible.

Documentación

Servidor MCP basado en Golang que se conecta a Kubernetes


MCP K8S Go

Características ⚙ Explorar con Inspector ⚙ Usar con Claude ⚙ Contribuir ↗ ⚙ Acerca de MCP ↗


latest release badge Go Reference license badge

Características

MCP 💬 prompt 🗂️ recurso 🤖 herramienta

  • 🗂️🤖 Listar contextos de Kubernetes
  • 💬🤖 Listar namespaces de Kubernetes
  • 🤖 Listar, obtener, crear y modificar cualquier recurso de Kubernetes
    • incluye mapeos personalizados para recursos como pods, services, deployments
  • 🤖 Listar nodos de Kubernetes
  • 💬 Listar pods de Kubernetes
  • 🤖 Obtener eventos de Kubernetes
  • 🤖 Obtener registros (logs) de pods de Kubernetes
  • 🤖 Ejecutar comandos en pods de Kubernetes

Explorar con Inspector

Para usar la última versión publicada con Inspector, puedes ejecutar esto:

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

Usar con Claude

Demostración de uso

La siguiente conversación con Claude Desktop demuestra cómo se ve cuando se selecciona un contexto particular como recurso y luego se pide revisar los registros (logs) de pods en busca de errores en el namespace kube-system:

Claude Desktop

Para usar este servidor MCP con Claude Desktop (o cualquier otro cliente), es posible que necesites elegir qué método de instalación usar.

Tienes varias opciones:

Smitherymcp-getNPM precompiladoPrecompilado en GithubDesde el código fuenteUsando Docker
Configuración de ClaudeAutomáticaAutomáticaManualManualManualManual
Requisito previoNode.jsNode.jsNode.jsNingunoGolangDocker

Usando Smithery

Para instalar MCP K8S Go para Claude Desktop automáticamente a través de Smithery:

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

Usando mcp-get

Para instalar MCP K8S Go para Claude Desktop automáticamente a través de mcp-get:

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

Manualmente con binarios precompilados

Precompilado desde npm

Usa esto si tienes npm instalado y deseas usar binarios precompilados:

npm install -g @strowk/mcp-k8s

Luego verifica la versión ejecutando mcp-k8s --version y si esto imprime la versión instalada, puedes proceder a agregar la configuración al archivo claude_desktop_config.json:

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

, o usando npx con cualquier cliente:

npx @strowk/mcp-k8s

Por ejemplo, para Claude:

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

Desde releases de GitHub

Ve a GitHub releases y descarga la última versión para tu plataforma.

Descomprime el archivo, que contendrá un binario llamado mcp-k8s-go, coloca ese binario en algún lugar de tu PATH y luego agrega la siguiente configuración al archivo claude_desktop_config.json:

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

Compilando desde el código fuente

Necesitarás tener Golang instalado para compilar este proyecto:

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

, y luego agrega la siguiente configuración al archivo claude_desktop_config.json:

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

Usando Docker

Este servidor se compila y publica en Docker Hub desde la versión 0.3.1-beta.2 con imágenes multi-arquitectura disponibles para las arquitecturas linux/amd64 y linux/arm64.

Puedes usar la etiqueta latest, por ejemplo así:

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

Los usuarios de Windows podrían necesitar reemplazar ~/.kube/config con //c/Users/<username>/.kube/config al menos en Git Bash.

Para Claude:

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

Variables de Entorno y Opciones de Línea de Comandos

Las siguientes variables de entorno son utilizadas por el servidor MCP:

  • KUBECONFIG: Ruta a tu archivo de configuración de Kubernetes (opcional, por defecto ~/.kube/config)

Las siguientes opciones de línea de comandos son compatibles:

  • --allowed-contexts=<ctx1,ctx2,...>: Lista separada por comas de contextos de Kubernetes permitidos a los que los usuarios pueden acceder. Si no se especifica, se permiten todos los contextos.
  • --readonly: Deshabilita cualquier herramienta que pueda escribir cambios en el clúster
  • --help: Muestra información de ayuda
  • --version: Muestra información de versión
  • --mask-secrets: Oculta secretos en la salida (por defecto: true). Usa --mask-secrets=false para deshabilitar el ocultamiento

Por ejemplo, si estás configurando Claude Desktop, puedes agregar la siguiente configuración al archivo claude_desktop_config.json:

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

, lo que permitiría solo los contextos dev y prod y deshabilitaría cualquier herramienta que pueda escribir cambios en el clúster.