Kubernetes资源管理MCP服务器

一个用于Kubernetes资源管理的模型上下文协议(MCP)服务器实现,通过标准化协议使AI助手和LLM能够与Kubernetes集群交互,简化集群操作。

  • by TheisFerre
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 theisferre/kubernetes-mcp-server

使用说明

Kubernetes MCP服务器

Kubernetes资源管理的模型上下文协议(MCP)服务器实现。该项目既是Kubernetes操作的实用工具,也是理解MCP协议的学习练习。

🎯 概述

此MCP服务器使AI助手和LLM能够通过标准化协议与Kubernetes集群进行交互。它提供了一套全面的工具来管理常见的Kubernetes资源,使通过自然语言接口执行集群操作变得更加容易。

✨ 特性

支持的Kubernetes资源

  • 容器组 -管理单个工作负载单元
  • 部署 -处理应用程序部署
  • 状态集 -管理有状态的应用程序
  • DaemonSets -控制节点级服务
  • 副本集 -管理pod副本
  • 工作 -运行批处理工作负载
  • CronJobs -安排重复任务
  • 服务 -公开应用程序
  • 配置地图 -管理配置数据
  • 秘密 -处理敏感信息

可用操作

对于每种资源类型,支持以下操作:

  • get -检索资源详细信息
  • list -列出命名空间中的资源
  • create -创建新资源
  • update -修改现有资源
  • delete -删除资源

🚀 安装

先决条件

  • Go 1.24+已安装
  • 访问Kubernetes集群
  • kubectl 配置了群集访问权限
  • 有效的kubeconfig文件(通常位于 ~/.kube/config)

从源头构建

git clone https://github.com/TheisFerre/kubernetes-mcp-server.git
cd kubernetes-mcp-server
go build -o kubernetes-mcp-server .

⚙️ 配置

在VS代码中设置

  1. 安装MCP扩展 如果您还没有,请使用VS Code。

  2. 配置MCP服务器 通过将其添加到VS Code MCP配置文件中(mcp.json):

{
  "servers": {
    "golang-k8s-mcp": {
      "command": "/path/to/your/kubernetes-mcp-server/kubernetes-mcp-server",
      "args": [],
      "env": {}
    }
  }
}
  1. 重新启动VS代码 加载新的MCP服务器。

  2. 验证设置 通过检查Kubernetes工具是否在您的AI助手界面中可用。

Kubernetes集群访问

服务器会自动检测并使用kubectl配置:

  • 默认kubeconfig位置: ~/.kube/config
  • 使用kubectl中配置的当前上下文
  • 从kubeconfig继承集群访问权限

🛠️ 使用示例

在VS Code中配置后,您可以使用自然语言与Kubernetes集群进行交互:

基本操作

  • “列出默认命名空间中的所有Pod”
  • “获取web命名空间中nginx部署的详细信息”
  • “从批处理命名空间中删除旧作业作业”

资源管理

  • “使用以下规范创建新部署:[JSON]”
  • “将我的应用程序部署的副本计数更新为3”
  • “显示生产命名空间中的所有服务”

高级查询

  • “列出所有命名空间中所有失败的Pod”
  • “获取数据库机密的配置”
  • “显示自动化命名空间中所有cronjobs的状态”

🏗️ 建筑

服务器采用模块化架构构建:

kubernetes-mcp-server/
├── main.go                 # Entry point and server initialization
├── pkg/
│   ├── client/            # Kubernetes client configuration
│   │   └── client.go      # kubeconfig and cluster connection
│   └── tools/             # MCP tool implementations
│       ├── tools.go       # Tool registration and routing
│       ├── pod.go         # Pod operations
│       ├── deployment.go  # Deployment operations
│       └── ...           # Other resource handlers

关键组件

  1. MCP服务器:使用 mcp-go 协议合规性库
  2. Kubernetes客户端:利用官方 client-go 集群通信库
  3. 工具注册表:Kubernetes资源工具的动态注册系统
  4. 资源处理程序:每种Kubernetes资源类型的专用处理程序

🔧 发展

添加新资源类型

要添加对新Kubernetes资源的支持:

  1. 将资源常数添加到 pkg/tools/tools.go
  2. 按照现有模式创建新的处理程序函数
  3. 在中注册资源 InitializeTools 函数
  4. 在中添加开关盒 addTool 函数

地方发展

# Run the server locally
go run main.go

# Build for different platforms
GOOS=linux GOARCH=amd64 go build -o kubernetes-mcp-server-linux .
GOOS=windows GOARCH=amd64 go build -o kubernetes-mcp-server.exe .