返回市场
MCP-K8S-服务器

MCP-K8S-服务器

作者:abhijeetka9 星标更新:2025-03-31

项目介绍

MCP Kubernetes Server

smithery badge

这是一个用于Kubernetes的MCP(模型上下文协议)服务器,通过与大型语言模型(LLMs)的交互来控制Kubernetes集群。

概述

此客户端允许您通过MCP工具执行常见的Kubernetes操作。它封装了kubectl命令,提供了一个简单的接口来管理Kubernetes资源。模型上下文协议(MCP)使语言模型与Kubernetes操作之间的无缝交互成为可能。

什么是MCP?

模型上下文协议(MCP)是一个框架,它使语言模型能够以结构化的方式与外部工具和服务进行交互。它提供了:

  • 向语言模型暴露功能的标准方法
  • 操作的上下文管理
  • 工具发现和文档
  • 模型与工具之间的类型安全交互

使用示例

  • 在生产命名空间中为我创建一个名为nginx-app的新部署,并使用镜像nginx:latest,副本数为3。
  • 将生产命名空间中的nginx-app部署更新到版本1.19。
  • 将生产命名空间中的nginx-app部署扩展到5个副本。
  • 获取生产命名空间中的所有Pod。
  • 获取集群中的所有命名空间。
  • 获取集群中的所有节点。
  • 获取集群中的所有服务。
  • 获取集群中的所有部署。
  • 获取集群中的所有作业。
  • 获取集群中的所有CronJob。
  • 获取集群中的所有StatefulSet。
  • 获取集群中的所有DaemonSet。
  • 当前上下文是什么?
  • 列出所有上下文。
  • 切换到上下文<上下文名称>。
  • 获取生产命名空间中<pod-name> Pod的日志。
  • 获取生产命名空间中的所有事件。
  • 在生产命名空间中用key1=value1标注<pod-name> Pod。
  • 从生产命名空间中的<pod-name> Pod中移除标注key1。
  • 在生产命名空间中向<pod-name> Pod添加标签key1=value1。
  • 从生产命名空间中的<pod-name> Pod中移除标签key1。
  • 在生产命名空间中将nginx-app部署暴露在80端口上。
  • 将生产命名空间中名为<resource-name>的Pod、部署或服务端口转发到本地端口8080。
  • 删除生产命名空间中名为<resource-name>的Pod、部署、服务、作业、CronJob、StatefulSet或DaemonSet。

即将推出的功能

  • 创建集群角色。
  • 删除集群角色。
  • 创建集群角色绑定。
  • 删除集群角色绑定。
  • 创建命名空间。
  • 删除命名空间。
  • 创建服务账户。
  • 删除服务账户。
  • 创建角色。
  • 删除角色。
  • 创建角色绑定。
  • 删除角色绑定。

大型语言模型集成

此MCP客户端设计为与大型语言模型(LLMs)无缝协作。函数被装饰为@mcp.tool(),使其可以通过模型上下文协议框架访问。

示例LLM提示

LLMs可以使用自然语言与您的Kubernetes集群进行交互。以下是一些示例提示:

  • “在生产命名空间中创建一个新的nginx部署,副本数为3”
  • “将nginx-app部署扩展到5个副本”
  • “将nginx-app的镜像更新到版本1.19”

LLM会解释这些自然语言请求并调用适当的MCP函数,使用正确的参数。

LLM集成的好处

  1. 自然语言界面:使用对话语言管理Kubernetes资源
  2. 减少命令复杂性:无需记住确切的kubectl语法
  3. 防止错误:LLMs可以验证输入并提供有用的错误消息
  4. 上下文感知:LLMs可以在多个操作之间维护上下文
  5. 结构化交互:MCP确保LLMs与工具之间的类型安全和文档化的交互

要求

  • 通过kubectl配置的Kubernetes集群访问权限
  • Python 3.x
  • 安装并配置了MCP框架

安全注意事项

当与LLMs一起使用此客户端时,请确保:

  • 对您的Kubernetes集群设置了适当的操作权限
  • MCP服务器运行在一个安全的环境中
  • API访问已正确认证和授权

与Claude Desktop的使用

{
    "mcpServers": {
        "Kubernetes": {
            "command": "uv",
            "args": [
                "--directory",
                "~/mcp/mcp-k8s-server",
                "run",
                "kubernetes.py"
            ]
        }
    }
}

贡献

我们欢迎对MCP Kubernetes Server的贡献!如果您想贡献:

  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. 打开一个Pull Request

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

通过Smithery安装

要通过Smithery自动安装Kubernetes Server for Claude Desktop:

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