Kubernetes MCP 服务器

一个基于MCP Python SDK的Kubernetes操作服务器,允许通过自然语言与Kubernetes集群交互。

  • by erdo-enes
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 endo-sys/kubernecetes-mcp-server

使用说明

Kubernetes MCP服务器

这是一个模型上下文协议(MCP)服务器,通过MCP Python SDK提供全面的Kubernetes功能。它允许您通过MCP客户端使用自然语言与Kubernetes集群进行交互。

特性

服务器提供了一系列组织成逻辑模块的Kubernetes操作:

吊舱操作

  • 获取带有过滤和输出格式选项的Pod
  • 描述特定吊舱
  • 使用各种选项获取pod日志
  • 在Pod中执行命令
  • 获取pod指标

部署操作

  • 使用筛选和输出格式选项获取部署
  • 描述具体部署
  • 扩展部署
  • 管理部署卷展(状态、历史记录、重新启动、撤消)
  • 获取部署指标

服务操作

  • 获取具有过滤和输出格式选项的服务
  • 描述具体服务
  • 将部署作为服务公开
  • 港口转发服务

命名空间操作

  • 通过筛选获取命名空间
  • 描述特定命名空间
  • 创建和删除命名空间
  • 获取命名空间资源配额

集群操作

  • 获取集群信息
  • 获取并描述节点
  • 管理节点调度(警戒/解除警戒)
  • 维护排水节点
  • 获取集群指标

先决条件

  • Python 3.7+
  • kubectl已安装并配置
  • 访问Kubernetes集群
  • MCP客户端(如克劳德桌面)

安装

  1. 克隆此存储库
  2. 安装依赖项:
    pip install -r requirements.txt
    

用法

运行服务器

  1. MCP Inspector开发模式:

    python -m mcp.inspector src/k8s_mcp_server.py
    
  2. 在Claude Desktop中安装:

    python -m mcp.install src/k8s_mcp_server.py
    
  3. 直接运行:

    python src/k8s_mcp_server.py
    

使用工具

一旦通过MCP客户端连接,您就可以使用自然语言与Kubernetes集群进行交互。例如:

  • “获取默认命名空间中的所有Pod”
  • “描述'web'命名空间中名为'nginx'的部署”
  • “从‘生产’命名空间中的‘前端’pod获取日志”
  • “将‘后端’部署扩展到3个副本”
  • “创建一个名为“staging”的新命名空间,标签为environment=tstaging”

项目结构

src/
├── k8s_mcp_server.py      # Main server entry point
├── k8s_tools/            # Tool modules
│   ├── __init__.py
│   ├── pod_tools.py      # Pod-related tools
│   ├── deployment_tools.py # Deployment-related tools
│   ├── service_tools.py  # Service-related tools
│   ├── namespace_tools.py # Namespace-related tools
│   └── cluster_tools.py  # Cluster-related tools
└── requirements.txt      # Project dependencies

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。