使用说明
构建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输出。