🚀 MCP Kubernetes 服务器
这是一个通过与大语言模型(LLMs)交互来控制Kubernetes集群的MCP(Model Context Protocol)服务器,借助它能更便捷地管理Kubernetes资源。
🚀 快速开始
此客户端允许您通过MCP工具执行常见的Kubernetes操作。它封装了kubectl命令,提供了一个简单的接口来管理Kubernetes资源。MCP使语言模型与Kubernetes操作之间的交互无缝衔接。
✨ 主要特性
什么是MCP?
MCP是一个框架,使得语言模型能够以结构化的方式与外部工具和服务进行交互。它提供了:
- 向语言模型暴露功能的标准化方法
- 操作上下文管理
- 工具发现和文档记录
- 语言模型与工具之间的类型安全交互
💻 使用示例
基础用法
以下是一些使用该MCP服务器的常见操作示例:
- 为我创建一个名为nginx-app、镜像为nginx:latest的部署,在生产命名空间中配置3个副本。
- 将部署nginx-app更新到版本1.19,在生产命名空间中。
- 将部署nginx-app扩展到5个副本,在生产命名空间中。
- 获取生产命名空间中的 pods。
- 获取集群中的所有命名空间。
- 获取集群中的所有节点。
- 获取集群中的所有服务。
- 获取集群中的所有部署。
- 获取集群中的所有作业。
- 获取集群中的所有cronjob。
- 获取集群中的所有状态集。
- 获取当前上下文。
- 列出所有上下文。
- 切换到上下文<上下文名称>。
- 获取pod< pod名称>在生产命名空间中的日志。
- 获取生产命名空间中的事件。
- 为pod< pod名称>添加键1=值1的注释,在生产命名空间中。
- 从pod< pod名称>删除注释键1,在生产命名空间中。
- 将标签键1=值1添加到pod< pod名称>,在生产命名空间中。
- 从pod< pod名称>删除标签键1,在生产命名空间中。
- 在生产命名空间中将nginx-app部署暴露在80端口上。
- 将pod、部署、服务名为<资源名称>的本地端口8080转发到生产命名空间中。
- 在生产命名空间中删除名为<资源名称>的pod、部署、服务、作业、cronjob、状态集、daemonset。
高级用法
计划功能
- 创建集群角色。
- 删除集群角色。
- 创建集群角色绑定。
- 删除集群角色绑定。
- 创建命名空间。
- 删除命名空间。
- 创建服务账户。
- 删除服务账户。
- 创建角色。
- 删除角色。
- 创建角色绑定。
- 删除角色绑定。
📚 详细文档
LLM 集成
此MCP客户端设计用于与大语言模型(LLMs)无缝集成。函数使用@mcp.tool()进行装饰,使它们可以通过MCP框架为LLM可访问。
示例 LLM 提示语
LLM可以通过自然语言与您的Kubernetes集群交互。以下是示例提示:
- “在生产命名空间中创建一个名为nginx的新部署,具有3个副本”
- “将nginx-app部署扩展到5个副本”
- “将nginx-app镜像更新到版本1.19”
LLM将解释这些自然语言请求并调用适当的MCP函数,使用正确的参数。
LLM 集成的优势
- 自然语言接口:使用对话式语言管理Kubernetes资源
- 减少命令复杂性:无需记住精确的kubectl语法
- 错误预防:LLM可以验证输入并提供有用的错误消息
- 上下文感知:LLM可以维护操作之间的上下文
- 结构化交互:MCP确保类型安全和文档记录的语言模型与工具之间的交互
📦 安装指南
先决条件
- 配置好的Kubernetes集群
- 安装并配置了kubectl
- 安装Python及其包管理工具(如pip)
通过 Smithery 安装
要通过Smithery自动为Claude Desktop安装Kubernetes服务器:
npx -y @smithery/cli install @
项目徽章
