Kubernetes

Servidor MCP de Kubernetes con las 30 herramientas principales

Documentación

Servidor MCP de Kubernetes (FastMCP)

Este proyecto proporciona un servidor MCP (Protocolo de Contexto de Modelo) de Kubernetes construido con FastMCP y el cliente oficial de Kubernetes para Python. Expone una amplia gama de herramientas de gestión e inspección de Kubernetes como herramientas MCP, lo que facilita la interacción con tu clúster de Kubernetes u OpenShift de forma programática o mediante GitHub Copilot.

usa https://gitingest.com/jlowin/fastmcp descarga lo anterior y pásalo como contexto a tu chat de copilot

indicación para construir un servidor MCP: construye un servidor MCP de Kubernetes con las 30 mejores herramientas de Kubernetes usando el archivo jlowin-fastmcp-8a5edab282632443.txt. Haz que las funciones sean dinámicas para que funcionen en todos los casos, incluso cuando el usuario no proporcione un namespace o nombre de recurso.

Características

El servidor MCP expone las siguientes operaciones de Kubernetes como herramientas MCP:

  • Gestión de Pods: Listar, describir y obtener registros de pods
  • Gestión de Deployments: Listar, escalar e inspeccionar deployments
  • Gestión de Servicios: Listar y obtener detalles de servicios
  • Gestión de Namespaces: Listar, crear y eliminar namespaces
  • Gestión de Nodos: Listar y describir nodos
  • Gestión de ConfigMaps y Secretos: Listar y obtener ConfigMaps y Secretos
  • Volúmenes Persistentes y Reclamaciones: Listar PV y PVC, obtener detalles de PVC
  • Gestión de Jobs y CronJobs: Listar y obtener jobs y cronjobs
  • Gestión de Ingress: Listar y obtener ingresses
  • Gestión de DaemonSets, StatefulSets y ReplicaSets: Listar y obtener detalles de cada uno
  • Gestión de Eventos: Listar y obtener eventos del clúster

Todas las herramientas admiten filtrado por namespace cuando corresponde.

Requisitos previos

  • Python 3.x
  • fastmcp
  • Cliente de Python kubernetes
  • kubectl (para acceso al clúster)
  • Acceso a un clúster de Kubernetes u OpenShift (kubeconfig o configuración dentro del clúster)

Instalación

  1. Instala las dependencias de Python:

    pip install fastmcp kubernetes
    
  2. Asegúrate de que python y fastmcp estén en tu PATH del sistema.

  3. Instala y configura kubectl y conéctate a tu clúster.

  4. (Opcional) Actualiza tu mcp.json para agregar el endpoint del servidor MCP:

    "kubernetes-local": {
      "name": "Kubernetes MCP Server",
      "url": "http://localhost:8000/mcp/"
    }
    

Uso

  1. Inicia el servidor MCP:

    python kube_mcp_server.py
    
  2. El servidor se ejecutará en http://0.0.0.0:8000/mcp/ de forma predeterminada.

  3. Ahora puedes interactuar con tu clúster de Kubernetes usando las herramientas MCP (por ejemplo, mediante GitHub Copilot o cualquier cliente MCP).

Ejemplos de herramientas MCP

  • list_pods(namespace=None)
  • get_pod_logs(pod_name=None, namespace=None)
  • describe_pod(pod_name=None, namespace=None)
  • list_deployments(namespace=None)
  • scale_deployment(deployment_name, replicas, namespace)
  • list_services(namespace=None)
  • get_service(service_name=None, namespace=None)
  • list_namespaces()
  • create_namespace(namespace)
  • delete_namespace(namespace)
  • list_nodes()
  • describe_node(node_name=None)
  • list_configmaps(namespace=None)
  • get_configmap(configmap_name=None, namespace=None)
  • list_secrets(namespace=None)
  • get_secret(secret_name=None, namespace=None)
  • list_persistent_volumes()
  • list_persistent_volume_claims(namespace=None)
  • get_pvc(pvc_name=None, namespace=None)
  • list_jobs(namespace=None)
  • get_job(job_name=None, namespace=None)
  • list_cronjobs(namespace=None)
  • get_cronjob(cronjob_name=None, namespace=None)
  • list_ingresses(namespace=None)
  • get_ingress(ingress_name=None, namespace=None)
  • list_daemonsets(namespace=None)
  • get_daemonset(daemonset_name=None, namespace=None)
  • list_statefulsets(namespace=None)
  • get_statefulset(statefulset_name=None, namespace=None)
  • list_events(namespace=None)
  • get_event(event_name=None, namespace=None)
  • list_replicasets(namespace=None)
  • get_replicaset(replicaset_name=None, namespace=None)

Notas

Ejemplo de indicación:

  1. muéstrame los pods que se ejecutan en el namespace vp1099.
  2. reduce todos los pods en el namespace vp1099 a 1 réplica.
  • El servidor intentará usar tu kubeconfig local, o recurrirá a la configuración dentro del clúster si se ejecuta dentro de un clúster.
  • Asegúrate de que tu contexto de kubectl esté configurado en el clúster/namespace deseado.
  • Puedes ampliar el servidor agregando más herramientas MCP usando el decorador @mcp.tool.
  • Soporte de Gitingest: Puedes usar gitingest para ingerir e interactuar con repositorios de GitHub directamente a través de MCP, lo que permite búsqueda avanzada de código y flujos de trabajo de automatización junto con tus operaciones de Kubernetes.

Licencia

Licencia MIT