使用说明
MCP Kubernetes服务器
这是Kubernetes的MCP(模型上下文协议)服务器,通过与LLM的交互提供对Kubernetes集群的控制。
概述
此客户端允许您通过MCP工具执行常见的Kubernetes操作。它包起来了 kubectl 命令,为管理Kubernetes资源提供一个简单的接口。模型上下文协议(MCP)实现了语言模型和Kubernetes操作之间的无缝交互。
什么是MCP?
模型上下文协议(MCP)是一个框架,它使语言模型能够以结构化的方式与外部工具和服务进行交互。它提供:
- 向语言模型公开功能的标准化方法
- 运营的上下文管理
- 工具发现和文档
- 模型和工具之间的类型安全交互
使用示例
- 为我创建一个新的部署,名为nginx-app,镜像为nginx:生产命名空间中的最新版本,有3个副本。
- 在生产命名空间中将部署nginx应用程序更新到1.19版本。
- 将部署nginx应用程序扩展到生产命名空间中的5个副本。
- 把生产命名空间中的Pod给我。
- 获取集群中的所有命名空间。
- 获取集群中的所有节点。
- 为我获取集群中的所有服务。
- 获取集群中的所有部署。
- 给我集群中的所有作业。
- 把集群中的所有cronjobs都给我。
- 为我获取集群中的所有状态集。
- 为我获取集群中的所有守护进程。
- 当前的背景是什么。
- 列出所有上下文。
- 切换到上下文 .
- 把豆荚的原木给我 在生产命名空间中。
- 获取生产命名空间中的事件。
- 注释pod 生产命名空间中的key1=value1。
- 从pod中删除注释键1 在生产命名空间中。
- 将标签key1=value1添加到pod 在生产命名空间中。
- 从吊舱中卸下标签key1 在生产命名空间中。
- 在端口80的生产命名空间中公开部署nginx应用程序。
- 端口转发pod、部署、带名称的服务 在生产命名空间中,将数据传输到本地端口8080。
- 删除pod、部署、服务、作业、cronjob、状态集、带名称的守护进程 在生产命名空间中。
即将推出的功能
- 创建集群角色。
- 删除群集角色。
- 创建集群角色绑定。
- 删除群集角色绑定。
- 创建命名空间。
- 删除命名空间。
- 创建服务帐户。
- 删除服务帐户。
- 创建角色。
- 删除角色。
- 创建角色绑定。a
- 删除角色绑定。
LLM集成
此MCP客户端旨在与大型语言模型(LLM)无缝协作。功能以装饰 @mcp.tool(),使LLM可以通过模型上下文协议框架访问它们。
LLM提示示例
LLM可以使用自然语言与Kubernetes集群进行交互。以下是一些示例提示:
- “在生产命名空间中创建一个具有3个副本的新nginx部署”
- “将nginx应用程序部署扩展到5个副本”
- “将nginx应用程序的映像更新到1.19版本”
LLM将解释这些自然语言请求,并使用正确的参数调用相应的MCP函数。
LLM整合的好处
- 自然语言接口:使用会话语言管理Kubernetes资源
- 降低命令复杂性:无需记住kubectl的确切语法
- 错误预防:LLM可以验证输入并提供有用的错误消息
- 情境感知:LLM可以跨多个操作维护上下文
- 结构化交互:MCP确保LLM和工具之间的类型安全和有记录的交互
需求
- 通过配置Kubernetes集群访问
kubectl - Python 3.x
- 安装并配置MCP框架
安全说明
将此客户端与LLM一起使用时,请确保:
- Kubernetes集群有适当的访问控制
- MCP服务器正在安全环境中运行
- API访问通过了正确的身份验证和授权
使用Claude Desktop
{
"mcpServers": {
"Kubernetes": {
"command": "uv",
"args": [
"--directory",
"~/mcp/mcp-k8s-server",
"run",
"kubernetes.py"
]
}
}
}
贡献
我们欢迎对MCP Kubernetes服务器的贡献!如果你想贡献:
- 分叉存储库
- 为您的功能创建新分支(
git checkout -b feature/amazing-feature) - 进行更改
- 根据需要编写或更新测试
- 提交您的更改(
git commit -m 'Add some amazing feature') - 推到您的分支(
git push origin feature/amazing-feature) - 打开拉取请求
对于重大更改,请先打开一个问题来讨论您想要更改的内容。
通过Smithery安装
通过以下方式自动安装Kubernetes Server for Claude Desktop 史密瑟里:
npx -y @smithery/cli install @abhijeetka/mcp-k8s-server --client claude
