使用说明

项目简介

MCP-DevOps 是一款基于 Model Context Protocol (MCP) 构建的 Kubernetes 管理系统,旨在通过自然语言交互简化云原生应用的运维工作。它采用客户端-服务器架构,服务端提供 Kubernetes 资源操作和系统诊断能力,客户端则提供友好的命令行和 Web 界面,用户可以通过自然语言指令与系统进行交互,实现智能化的 Kubernetes 集群管理和故障排查。

主要功能点

  • Kubernetes 资源管理: 支持 Pod、Deployment、Service、StatefulSet、Ingress、ConfigMap、Secret 等核心 Kubernetes 资源的查看、创建、更新和删除。
  • 智能故障诊断: 提供集群健康检查、Pod/节点/Deployment 诊断工具,帮助用户快速定位和分析集群问题。
  • 告警处理与通知: 集成 Alertmanager 告警,支持告警分析和企业微信消息通知,实现告警的智能处理和及时触达。
  • Linux 系统排查: 提供常用的 Linux 系统诊断工具,例如系统信息查看、进程管理、资源监控、网络诊断和日志分析。
  • Kubernetes 组件排查: 能够检查 Kubelet、容器运行时、Kube-Proxy、CNI 等 Kubernetes 核心组件的状态,辅助排查集群底层问题。
  • 自然语言交互: 用户可以使用自然语言描述意图,系统通过 AI 理解并执行相应的操作,降低使用门槛。
  • 多客户端支持: 提供命令行客户端和 Web 客户端,满足不同场景下的使用需求。

安装步骤

  1. 克隆仓库

    git clone https://github.com/yunzck8s/mcp-devops.git
    cd mcp-devops
  2. 配置环境变量 复制项目根目录下的 '.env.example' 文件为 '.env',并根据实际情况修改以下配置:

    # 服务器配置
    MCP_SERVER_ADDRESS=0.0.0.0:12345  # MCP 服务器监听地址和端口
    API_KEY=your-secret-api-key       # (可选) 服务器 API 密钥
    
    # 客户端配置
    MCP_SERVER_URL=http://127.0.0.1:12345/sse # MCP 服务器 SSE 地址
    OPENAI_API_KEY=your-openai-api-key       # OpenAI API Key (用于 AI 功能)
    OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # (可选) OpenAI API Base URL,例如使用国内模型服务
    OPENAI_MODEL=qwen-max                  # (可选) 使用的 OpenAI 模型名称
    
    # 企业微信配置 (用于告警通知)
    WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-webhook-key

    注意: 'MCP_SERVER_URL' 配置项需要指向服务器的 SSE endpoint 地址,默认为 'http://<服务器IP>:12345/sse'。

  3. 启动 MCP 服务器

    cd server
    go run main.go

    确保服务器运行在可以访问 Kubernetes 集群的环境中,并已配置好 'kubeconfig' 文件。

  4. 启动 MCP 客户端

    • 命令行客户端:
      cd client
      go run main.go
    • Web 客户端:
      cd client/web
      npm install
      npm run dev
      Web 客户端将在 'http://localhost:3000' 启动,默认登录账号 'admin',密码 'admin123'。

服务器配置

MCP 服务器通过命令行启动,无需额外的 JSON 配置文件。服务器的配置主要通过环境变量 '.env' 文件进行管理,包括监听地址和端口、API 密钥等。

MCP 客户端配置信息 (JSON 格式,仅供参考,MCP 客户端无需手动配置,通过环境变量配置即可)

{
  "serverName": "Kubernetes MCP Server",
  "command": "go",
  "args": [
    "run",
    "main.go"
  ],
  "description": "启动 Kubernetes MCP 服务器"
}

参数说明:

  • 'serverName': 服务器名称,用于标识服务器。
  • 'command': 启动服务器的可执行命令,这里是 'go' 运行 'main.go' 文件。
  • 'args': 传递给 'command' 的参数,这里是 'run main.go',表示运行 'server' 目录下的 'main.go' 文件。
  • 'description': 服务器描述信息。

注意: 实际 MCP 客户端 无需 手动配置此 JSON 信息,客户端通过环境变量 'MCP_SERVER_URL' 连接到服务器。上述 JSON 配置信息仅为帮助理解 MCP 服务器的启动方式而提供。MCP 客户端的配置主要通过 '.env' 文件中的 'MCP_SERVER_URL' 环境变量指定服务器地址即可。

基本使用方法

  1. 启动客户端后,在命令行或 Web 界面中,使用自然语言描述您的 Kubernetes 或系统管理需求,例如:

    • '查看所有命名空间'
    • '查看 default 命名空间中的所有 Pod'
    • '描述 pod-name 这个 Pod'
    • '查看 pod-name 的日志'
    • '将 deployment-name 扩展到 3 个副本'
    • '检查集群健康状态'
    • '诊断 Pod my-pod 的问题'
    • '发送企业微信消息"Kubernetes集群重启完成"'
  2. 系统将通过 AI 理解您的指令,并调用相应的 MCP 工具执行操作,返回结果。

  3. 您可以根据需要使用更多自然语言指令,管理 Kubernetes 资源、进行故障诊断和接收告警通知。

信息

分类

开发者工具