mcp-server-kubernetes

MIT License
3,146
352
  • Linux
  • Apple

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Docker support is in progress as mentioned in the 'In Progress' section

  • Support for Helm to install charts is listed as a planned feature

  • Allows connecting to a Kubernetes cluster to manage it, including listing, creating, deleting, and describing pods, services, deployments, and namespaces

MCP 服务器 Kubernetes

MCP 服务器可以连接到 Kubernetes 集群并对其进行管理。

https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed

与 Claude Desktop 一起使用

{ "mcpServers": { "kubernetes": { "command": "npx", "args": ["mcp-server-kubernetes"] } } }

服务器将自动连接到您当前的 kubectl 上下文。请确保您已:

  1. kubectl 已安装并位于您的 PATH 中
  2. 已配置上下文的有效 kubeconfig 文件
  3. 访问为 kubectl 配置的 Kubernetes 集群(例如 minikube、Rancher Desktop、GKE 等)
  4. 已安装 Helm v3 并将其添加到您的 PATH 中(无需 Tiller)。如果您不打算使用 Helm,则此步骤可选。

您可以通过要求 Claude 列出您的 pod 或创建测试部署来验证您的连接。

如果出现错误,请打开标准终端并运行kubectl get pods以查看是否可以连接到集群而没有凭据问题。

与 mcp-chat 一起使用

mcp-chat是 MCP 服务器的 CLI 聊天客户端。您可以使用它与 Kubernetes 服务器进行交互。

npx mcp-chat --server "npx mcp-server-kubernetes"

或者,将您现有的 Claude Desktop 配置文件从上面传递给它(Linux 应该将正确的路径传递给配置):

苹果:

npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"

视窗:

npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"

特征

  • [x] 连接到 Kubernetes 集群
  • [x] 列出所有 pod、服务、部署、节点
  • [x] 创建、描述、删除 Pod
  • [x] 列出所有命名空间,创建命名空间
  • [x] 创建自定义 pod 和部署配置,更新部署副本
  • [x] 从 pod 获取日志以进行调试(支持 pod、部署、作业和标签选择器)
  • [x] 支持 Helm v3 安装图表
    • 安装具有自定义值的图表
    • 卸载版本
    • 升级现有版本
    • 支持命名空间
    • 支持版本规范
    • 支持自定义存储库
  • [x] kubectl explain 和 kubectl api-resources 支持
  • [x] 从集群获取 Kubernetes 事件
  • [x] 端口转发到 Pod 或服务
  • [x] 创建、列出和描述 cronjobs

本地开发

git clone https://github.com/Flux159/mcp-server-kubernetes.git cd mcp-server-kubernetes bun install

开发工作流程

  1. 以开发模式启动服务器(监视文件更改):
bun run dev
  1. 运行单元测试:
bun run test
  1. 构建项目:
bun run build
  1. 使用Inspector进行本地测试
npx @modelcontextprotocol/inspector node dist/index.js # Follow further instructions on terminal for Inspector link
  1. 使用 Claude Desktop 进行本地测试
{ "mcpServers": { "mcp-server-kubernetes": { "command": "node", "args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"] } } }
  1. 使用mcp-chat进行本地测试
npm run chat

贡献

有关详细信息,请参阅CONTRIBUTING.md文件。

先进的

有关使用 SSE 传输等更多高级信息,请参阅ADVANCED_README.md

建筑学

本节介绍 MCP Kubernetes 服务器的高层架构。

请求流程

下面的序列图说明了请求如何流经系统:

发布新版本

前往发布页面,点击“草稿新版本”,点击“选择标签”,并使用“v{major}.{minor}.{patch}”语义版本格式输入新版本号,创建一个新标签。然后,输入发布标题“Release v{major}.{minor}.{patch}”,并根据需要添加描述/更新日志,然后点击“发布版本”。

这将创建一个新标签,并通过 cd.yml 工作流触发新的版本构建。成功后,新版本将发布到npm 。请注意,无需手动更新 package.json 版本,因为工作流会自动更新 package.json 文件中的版本号并将提交推送到主分支。

未计划

身份验证/向 kubectx 添加集群。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

TypeScript 实现 Kubernetes 集群中针对 pod、部署、服务的操作。

  1. Usage with Claude Desktop
    1. Usage with mcp-chat
      1. Features
        1. Local Development
          1. Development Workflow
        2. Contributing
          1. Advanced
            1. Architecture
              1. Request Flow
            2. Publishing new release
              1. Not planned
                ID: w71ieamqrt