Kubernetes MCP 服务器

一个基于Go语言实现的MCP协议服务器,用于简化Kubernetes API交互并提供AI友好的数据格式转换。

  • by OnlyLight
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 onlylight/k8s-mcp-server

使用说明

构建MCP服务器kubernetes

1.项目结构

k8s-mcp-server/
├── cmd/server/          # Main application entry point
├── pkg/
│   ├── mcp/            # MCP protocol implementation
│   ├── k8s/            # Kubernetes client wrapper
│   └── types/          # Shared type definitions
├── internal/
│   ├── config/         # Configuration management
│   └── logging/        # Logging setup
├── go.mod
├── go.sum
├── Makefile            # Build and test scripts
└── scripts/            # Helper scripts

1.1.依赖项

# Real MCP Go library from mark3labs
go get github.com/mark3labs/mcp-go@v0.36.0

# Kubernetes client
go get k8s.io/client-go@v0.31.2
go get k8s.io/api@v0.31.2
go get k8s.io/apimachinery@v0.31.2

# Logging and utilities
go get github.com/sirupsen/logrus@v1.9.3
go get gopkg.in/yaml.v3@v3.0.1

1.2.配置设置

internal/config/config.go 此代码的作用: 创建一个配置管理系统,定义我们的MCP服务器将如何连接到Kubernetes以及它将使用什么设置。

数据流: 环境变量→ 文件读取→ YAML解析→ 配置结构→ 返回给呼叫者

1.3.日志记录设置

internal/logging/logger.go

此代码的作用: 创建一个复杂的日志记录系统,通过结构化日志记录和正确的错误处理来跟踪MCP协议操作和Kubernetes API调用。

数据转换: 字符串参数→ 结构化日志字段→ 格式化输出→ 标准输出

2.Kubernetes

2.1.Kubernetes类型

pkg/k8s/types.go 此代码的作用: 定义简化的数据结构,仅从复杂的Kubernetes对象中提取基本信息,使AI模型更容易理解和处理。

数据转换: 复杂的Kubernetes API对象→ 简化结构→ JSON可序列化数据→ AI友好格式

2.2.Kubernetes客户端实现

pkg/k8s/client.go 此代码的作用:

  • 通过连接处理、健康检查和pod列表功能实现核心Kubernetes客户端功能,将复杂的Kubernetesneneneba API响应转换为我们简化的数据结构。

  • 通过类似于pod列表的数据转换实现服务和部署列表功能,分别提取网络和扩展信息。

2.3.AI格式化程序

pkg/mcp/formatters.go 此代码的作用: 创建格式化程序,将原始Kubernetes JSON转换为AI友好的markdown输出。