Kubernetes

Servidor MCP Kubernetes com as 30 principais ferramentas

Documentação

Servidor MCP Kubernetes (FastMCP)

Este projeto fornece um servidor MCP (Model Context Protocol) Kubernetes construído usando FastMCP e o cliente Python oficial do Kubernetes. Ele expõe uma ampla gama de ferramentas de gerenciamento e inspeção do Kubernetes como ferramentas MCP, facilitando a interação com seu cluster Kubernetes ou OpenShift programaticamente ou via GitHub Copilot.

use https://gitingest.com/jlowin/fastmcp baixe o acima e forneça-o como contexto para o seu chat do copilot

prompt para construir um servidor mcp: construa um servidor mcp kubernet com as 30 principais ferramentas kubernetes usando o arquivo jlowin-fastmcp-8a5edab282632443.txt. Torne as funções dinâmicas para que funcione em todos os casos, mesmo quando o usuário não fornece um namespace ou nome de recurso.

Recursos

O servidor MCP expõe as seguintes operações do Kubernetes como ferramentas MCP:

  • Gerenciamento de Pods: Listar, descrever e obter logs de pods
  • Gerenciamento de Deployments: Listar, escalar e inspecionar deployments
  • Gerenciamento de Services: Listar e obter detalhes de services
  • Gerenciamento de Namespaces: Listar, criar e excluir namespaces
  • Gerenciamento de Nodes: Listar e descrever nodes
  • Gerenciamento de ConfigMaps e Secrets: Listar e obter ConfigMaps e Secrets
  • Volumes Persistentes e Claims: Listar PVs e PVCs, obter detalhes de PVCs
  • Gerenciamento de Jobs e CronJobs: Listar e obter jobs e cronjobs
  • Gerenciamento de Ingresses: Listar e obter ingresses
  • Gerenciamento de DaemonSets, StatefulSets e ReplicaSets: Listar e obter detalhes de cada um
  • Gerenciamento de Eventos: Listar e obter eventos do cluster

Todas as ferramentas suportam filtragem por namespace quando aplicável.

Pré-requisitos

  • Python 3.x
  • fastmcp
  • kubernetes cliente Python
  • kubectl (para acesso ao cluster)
  • Acesso a um cluster Kubernetes ou OpenShift (kubeconfig ou configuração no cluster)

Instalação

  1. Instale as dependências Python:

    pip install fastmcp kubernetes
    
  2. Garanta que python e fastmcp estejam no PATH do seu sistema.

  3. Instale e configure kubectl e conecte-se ao seu cluster.

  4. (Opcional) Atualize seu mcp.json para adicionar o endpoint do servidor MCP:

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

Uso

  1. Inicie o servidor MCP:

    python kube_mcp_server.py
    
  2. O servidor será executado em http://0.0.0.0:8000/mcp/ por padrão.

  3. Agora você pode interagir com seu cluster Kubernetes usando ferramentas MCP (por exemplo, via GitHub Copilot ou qualquer cliente MCP).

Exemplos de Ferramentas 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

Exemplo de prompt:

  1. obtenha os pods em execução no namespace vp1099.
  2. reduza todos os pods no namespace vp1099 para 1 réplica.
  • O servidor tentará usar seu kubeconfig local ou recorrerá à configuração no cluster se estiver executando dentro de um cluster.
  • Certifique-se de que o contexto kubectl esteja definido para o cluster/namespace desejado.
  • Você pode estender o servidor adicionando mais ferramentas MCP usando o decorador @mcp.tool.
  • Suporte a Gitingest: Você pode usar o gitingest para ingerir e interagir com repositórios do GitHub diretamente via MCP, permitindo busca avançada de código e fluxos de trabalho de automação junto com suas operações do Kubernetes.

Licença

Licença MIT