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
-
Instale as dependências Python:
pip install fastmcp kubernetes -
Garanta que
pythonefastmcpestejam no PATH do seu sistema. -
Instale e configure
kubectle conecte-se ao seu cluster. -
(Opcional) Atualize seu
mcp.jsonpara adicionar o endpoint do servidor MCP:"kubernetes-local": { "name": "Kubernetes MCP Server", "url": "http://localhost:8000/mcp/" }
Uso
-
Inicie o servidor MCP:
python kube_mcp_server.py -
O servidor será executado em
http://0.0.0.0:8000/mcp/por padrão. -
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:
- obtenha os pods em execução no namespace vp1099.
- 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
kubectlesteja 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