
Github
HSn0918
README
Kubernetes MCP
<div align="center"> <img src="logo.png" alt="Kubernetes MCP Logo" width="200"> </div>
English | 中文
✨ 一个使用 Go 语言设计的模型上下文协议 (MCP) 服务器实现,用于与 Kubernetes 集群交互。该服务器允许兼容 MCP 的客户端通过定义的工具执行 Kubernetes 操作。
📌 核心功能
- 🔹 MCP 服务器: 实现
mcp-go
库以提供 MCP 功能 - 🔹 Kubernetes 交互: 使用
controller-runtime
客户端与集群交互 - 🔹 传输方法: 支持标准 I/O (
stdio
) 或服务器发送事件 (sse
) // 但 stdio 尚未实现
🛠️ 资源管理工具
📊 已实现的 API 组
🔸 核心 API 组 (v1)
- 列出、获取、描述、创建、更新、删除操作
- 集群范围:列出命名空间、列出节点
- 获取 Pod 日志功能
🔸 Apps API 组 (apps/v1)
- 完全支持 Deployment、ReplicaSet、StatefulSet、DaemonSet
🔸 Batch API 组 (batch/v1)
- 完全支持 Job、CronJob
🔸 Networking API 组 (networking.k8s.io/v1)
- 完全支持 Ingress、NetworkPolicy
🔸 RBAC API 组 (rbac.authorization.k8s.io/v1)
- 完全支持 Role、RoleBinding、ClusterRole、ClusterRoleBinding
🔸 Storage API 组 (storage.k8s.io/v1)
- 完全支持 StorageClass、VolumeAttachment
🔸 Policy API 组 (policy/v1beta1)
- 完全支持 PodSecurityPolicy、PodDisruptionBudget
🔸 API Extensions API 组 (apiextensions.k8s.io/v1)
- 完全支持 CustomResourceDefinition
🔸 Autoscaling API 组 (autoscaling/v1)
- 完全支持 HorizontalPodAutoscaler
📋 要求
- 📌 Go 1.24
- 📌 Kubernetes 集群访问 (通过
kubeconfig
或集群内服务帐户)
📦 主要依赖项
🧩 核心库:
github.com/mark3labs/mcp-go
- MCP 协议实现sigs.k8s.io/controller-runtime
- Kubernetes 客户端k8s.io/client-go
- 核心 Kubernetes 库github.com/spf13/cobra
- CLI 结构go.uber.org/zap
- 日志sigs.k8s.io/yaml
- YAML 处理
🔨 构建方法
📥 从源代码构建
git clone https://github.com/HSn0918/kubernetes-mcp.git
cd kubernetes-mcp
go build -o kubernetes-mcp ./cmd/kubernetes-mcp
./kubernetes-mcp server --transport=sse --port 8080
🐳 Docker 构建
# 构建镜像
docker build -t kubernetes-mcp:latest \
--build-arg VERSION=$(git describe --tags --always) \
--build-arg COMMIT=$(git rev-parse HEAD) \
--build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") .
# 使用 stdio 传输运行
docker run -v ~/.kube:/root/.kube kubernetes-mcp:latest server transport stdio
# 使用 SSE 传输运行
docker run -p 8080:8080 -v ~/.kube:/root/.kube kubernetes-mcp:latest server transport sse
# 使用 SSE 传输和自定义基本 URL 运行
docker run -p 8080:8080 -v ~/.kube:/root/.kube kubernetes-mcp:latest server transport sse --base-url="http://your-host:8080"
# 查看版本信息
docker run kubernetes-mcp:latest version
# 指定自定义 kubeconfig
docker run -v /path/to/config:/config kubernetes-mcp:latest server transport sse --kubeconfig=/config
🚀 用法
🔄 启动服务器
# 使用标准 I/O
./kubernetes-mcp server transport stdio
# 使用 SSE (服务器发送事件)
./kubernetes-mcp server transport sse --port 8080
# 为 SSE 连接指定自定义基本 URL
./kubernetes-mcp server transport sse --port 8080 --base-url="http://your-server-address:8080"
# 设置 CORS 允许的来源
./kubernetes-mcp server transport sse --allow-origins="*"
# 指定 Kubeconfig
./kubernetes-mcp server transport sse --kubeconfig /path/to/your/kubeconfig
# 查看版本
./kubernetes-mcp version
⚙️ 命令结构
该应用程序使用分层命令结构:
kubernetes-mcp
├── server
│ └── transport
│ ├── sse
│ │ ├── --port=8080
│ │ ├── --health-port=8081
│ │ ├── --base-url="http://example.com:8080"
│ │ └── --allow-origins="*"
│ └── stdio
└── version
⚙️ 配置选项
可以与任何命令一起使用的全局选项:
- 🔧 配置文件:
--kubeconfig
(Kubernetes 配置的路径) - 🔧 日志级别:
--log-level
(debug/info/warn/error) - 🔧 日志格式:
--log-format
(console/json)
SSE 传输特定选项:
- 🔧 端口:
--port
(默认 8080) - 🔧 健康检查端口:
--health-port
(默认 8081) - 🔧 基本 URL:
--base-url
(客户端将用于连接到服务器的 URL) - 🔧 CORS 允许的来源:
--allow-origins
(逗号分隔的列表或 "*" 表示全部)
🧩 高级功能
🔍 结构化工具
- 🔍 GET_CLUSTER_INFO: 获取集群信息和版本详细信息
- 🔍 GET_API_RESOURCES: 列出集群中可用的 API 资源
- 🔍 SEARCH_RESOURCES: 跨命名空间和资源类型搜索
- 🔍 EXPLAIN_RESOURCE: 获取资源结构和字段详细信息
- 🔍 APPLY_MANIFEST: 将 YAML 清单应用于集群
- 🔍 VALIDATE_MANIFEST: 验证 YAML 清单格式
- 🔍 DIFF_MANIFEST: 将 YAML 与现有集群资源进行比较
- 🔍 GET_EVENTS: 获取与特定资源相关的事件
💡 提示系统
- 🔖 KUBERNETES_YAML_PROMPT: 生成标准 Kubernetes YAML
- 🔖 KUBERNETES_QUERY_PROMPT: Kubernetes 操作指南
- 🔖 TROUBLESHOOT_PODS_PROMPT: Pod 故障排除指南
- 🔖 TROUBLESHOOT_NODES_PROMPT: Node 故障排除指南
🔄 标准资源操作
每个 API 组都支持以下操作:
- 列出资源: 获取资源列表,可按命名空间和标签过滤
- 获取资源: 以 YAML 格式检索特定资源
- 描述资源: 获取资源详细的可读描述
- 创建资源: 从 YAML 创建新资源
- 更新资源: 使用 YAML 更新现有资源
- 删除资源: 删除特定资源
🌟 核心 API 组特殊操作
- 获取 Pod 日志: 检索特定 Pod 容器的日志
- 列出命名空间: 查看集群中所有可用的命名空间
- 列出节点: 查看所有节点及其在集群中的状态
📊 日志分析功能
- 错误模式识别: 识别常见的错误模式和频率
- 基于时间的分布分析: 分析错误随时间发生的模式
- HTTP 状态代码跟踪: 监控和分类 HTTP 响应代码
- 性能指标: 跟踪响应时间和资源使用情况统计信息
📊 集群指标功能
- 🔍 GET_NODE_METRICS: 检索节点资源使用情况指标,包括 CPU 和内存利用率
- 🔍 GET_POD_METRICS: 获取 Pod 资源使用情况指标,以监控容器 CPU 和内存消耗
- 🔍 GET_RESOURCE_METRICS: 获取整体集群资源使用情况,包括 CPU、内存、存储和 Pod 计数统计信息
- 🔍 GET_TOP_CONSUMERS: 识别资源消耗最高的 Pod,以查明资源瓶颈
所有指标 API 都支持:
- 灵活的排序:按 CPU、内存消耗或利用率百分比排序
- 详细的过滤:使用字段选择器和标签选择器来精确定位资源
- 结果限制:控制返回的结果数量
- JSON 格式:所有响应都以结构化的 JSON 格式返回,以便于处理
📝 集群指标提示系统
- 🔖 CLUSTER_RESOURCE_USAGE: 检索集群资源使用情况的指南
- 🔖 NODE_RESOURCE_USAGE: 检索节点资源使用情况的指南
- 🔖 POD_RESOURCE_USAGE: 检索 Pod 资源使用情况的指南
📋 API 响应格式
所有 API 响应现在都以 JSON 格式标准化:
- 🔸 结构化响应: 所有 API 响应都以一致的 JSON 结构返回
- 🔸 节点列表: 包括详细信息,例如节点名称、状态、角色、标签、污点和可分配资源
- 🔸 命名空间列表: 包括命名空间名称、状态、标签、注释和其他详细信息
- 🔸 日志和日志分析: 日志内容和分析结果以结构化格式返回,以便于处理
- 🔸 资源指标: CPU、内存、存储指标以结构化格式返回,包括原始值和百分比
- 🔸 时间格式: 支持人类可读的时间格式,包括英语和中文,例如“5 minutes ago”/“5分钟前”
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。