Kubernetes集群管理服务器

一个通过标准化接口提供Kubernetes集群管理能力的模型上下文协议(MCP)服务器,使AI助手能够以编程方式与Kubernetes集群交互。

  • by Hadyaziz05
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Hadyaziz05/k8s-mcp-server

使用说明

Kubernetes MCP服务器

一种模型上下文协议(MCP)服务器,通过标准化接口提供Kubernetes集群管理功能。该服务器使AI助手能够以编程方式与Kubernetes集群进行交互。

特性

服务器为Kubernetes操作提供了四个主要工具:

  • kubectl_apply -从YAML内容应用Kubernetes清单
  • kubectl_get -检索Kubernetes资源(Pod、部署、服务、节点、命名空间)
  • kubectl_describe -获取特定资源的详细信息
  • kubectl_delete -从YAML内容中删除Kubernetes资源

先决条件

  • Docker(用于容器化部署)
  • 使用有效身份访问Kubernetes集群 ~/.kube/config 文件

安装

Docker部署

  1. 构建Docker镜像:
docker build -t k8s-mcp-server .
  1. 运行挂载了kubeconfig的容器:
docker run -it --rm \
  -v ~/.kube:/home/mcpuser/.kube:ro \
  k8s-mcp-server

VS代码中与GitHub Copilot的集成

您可以在Visual Studio Code中将此MCP服务器与GitHub Copilot集成,通过自然语言与Kubernetes集群进行交互。

设置步骤

  1. 创建MCP配置文件

    在以下位置创建文件 .vscode/mcp.json 在您的工作区中包含以下内容:

    {
      "inputs": [
        {
          "type": "promptString",
          "id": "kubeconfig_path",
          "description": "Path to your local .kube folder (e.g., /Users/username/.kube)"
        }
      ],
      "servers": {
        "k8s": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "-v", "${input:kubeconfig_path}:/home/mcpuser/.kube:ro",
            "<your-docker-username>/kubectl-mcp-server:latest"
          ],
          "env": {
            "DEFAULT_CONFIG": "config"
          }
        }
      }
    }
    
    • 点击 添加服务器
    • 当被要求输入kubeconfig路径时,请输入您的 .kube 文件夹(例如。, /Users/yourusername/.kube).
    • 等待服务器成功启动。
  2. 启用Kubernetes工具

    • 在副驾驶聊天框中,选择 代理 从弹出菜单中。
    • 点击 选择工具 图标以查看可用操作。
    • 在“工具”下拉列表中 MCP服务器:k8s,选中此框以启用Kubernetes工具。
    • 您将看到可用操作的列表: kubectl_apply, kubectl_get, kubectl_describe,以及 kubectl_delete.
  3. 开始使用Kubernetes命令

    在Copilot聊天框中,您现在可以提问或给出与Kubernetes集群相关的命令:

    • “列出默认命名空间中的所有Pod”
    • “描述前端部署”
    • “应用此部署清单:[粘贴YAML]”
    • “显示生产命名空间中的所有服务”

    Kubernetes MCP服务器将处理您的请求,并直接在聊天界面中提供响应。您可能会被要求提供其他权限或信息以完成某些操作。

贡献

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

k8s mcp服务器