Kubernetes管理服务器

MCP Kubernetes Server是一个通过语言模型交互控制Kubernetes集群的服务,提供简化的Kubernetes资源管理接口。

  • by abhijeetka
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 abhijeetka/mcp-k8s-server

使用说明

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整合的好处

  1. 自然语言接口:使用会话语言管理Kubernetes资源
  2. 降低命令复杂性:无需记住kubectl的确切语法
  3. 错误预防:LLM可以验证输入并提供有用的错误消息
  4. 情境感知:LLM可以跨多个操作维护上下文
  5. 结构化交互: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服务器的贡献!如果你想贡献:

  1. 分叉存储库
  2. 为您的功能创建新分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 根据需要编写或更新测试
  5. 提交您的更改(git commit -m 'Add some amazing feature')
  6. 推到您的分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

对于重大更改,请先打开一个问题来讨论您想要更改的内容。

通过Smithery安装

通过以下方式自动安装Kubernetes Server for Claude Desktop 史密瑟里:

npx -y @smithery/cli install @abhijeetka/mcp-k8s-server --client claude