Kubernetes集群管理工具

MCP Kubernetes是一个用于高级管理Kubernetes集群的工具,提供查询、管理和监控资源(如pod、部署、节点和日志)的功能,支持多上下文和命名空间。

  • by jterceiro
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 jterceiro/mcp_kubernetes

使用说明

MCP Kubernetes

Kubernetes操作的模型上下文协议服务器。

描述

该项目实现了一个MCP(模型上下文协议)服务器,用于Kubernetes集群的高级管理。它提供了查询、管理和监视资源(如Pod、部署、节点和日志)的工具,并支持多个上下文和名称空间。

特性

  • 🟢 Pod管理:
    • 📦 按命名空间和上下文列出Pod。
    • 🔍 检索完整的pod详细信息,包括事件、容器、卷和状态。
  • 🚀 部署管理:
    • 📦 按命名空间和上下文列出部署。
    • 📈 扩展副本并推出(重新启动)部署。
    • 📝 查询详细的部署状态。
  • 🖥️ 节点管理:
    • 🗂️ 列出具有容量、状态、角色和集群摘要的节点。
  • 📄 Pod日志:
    • 📝 从特定的Pod和容器中检索日志,并提供以前日志和行数的选项。
  • 🔄 多上下文支持:
    • 🔎 查询和切换Kubernetes上下文。
    • ⚙️ 设置默认上下文。
  • ⚙️ 配置和日志记录:
    • 🛠️ 用于加载Kubernetes配置和结构化日志的实用程序。

安装

pip install -r requirements.txt

用法

运行MCP服务器:

python src/mcp_kubernetes/main.py

API示例

这些工具作为MCP函数公开,可以从兼容的客户端调用:

  • 获取Pod: get_pods(context="my-context", namespace="default")
  • Pod详细信息: get_pod_details(environment="prod", pod_name="nginx-123", namespace="default", context="my-context")
  • 获取部署: get_deployments(context="my-context", namespace="default")
  • 规模部署: scale_deployment(namespace="default", deployment_name="web", replicas=5)
  • 推出部署: rollout_deployment(namespace="default", deployment_name="web")
  • 获取节点: get_nodes(context="my-context")
  • 获取日志: get_logs(context="my-context", environment="prod", pod_name="nginx-123", namespace="default", container="nginx")
  • 可用上下文: get_available_contexts()
  • 更改上下文: set_default_context(context="other-context")

项目结构

  • src/mcp_kubernetes/main.py:MCP服务器的主要入口点。
  • src/mcp_kubernetes/config.py:配置和日志记录实用程序。
  • src/mcp_kubernetes/tools/:Kubernetes工具模块:
    • deployments.py:部署管理。
    • pods.py:Pod管理和详细信息。
    • nodes.py:节点信息和摘要。
    • logs.py:Pod日志检索。

贡献

欢迎投稿!请打开问题或拉取请求以获取建议和改进。

许可证

MIT许可证。请参阅 许可证 文件