mcpField
K
Kubernetes MCP Server 🚀

Kubernetes MCP Server 🚀

本地服务
github.com/briankscheong云与基础设施378 周前更新

关于 Kubernetes MCP Server 🚀

Kubernetes MCP Server 为开发者、运维人员和 AI 工具提供与 Kubernetes 集群交互的接口。它支持资源查询、日志读取和部分管理操作,并可通过只读模式限制变更。

主要功能

  1. 01查询集群资源与状态
  2. 02读取 Pod 日志
  3. 03删除 Pod 和扩缩部署
  4. 04stdio 与 SSE 传输
  5. 05只读模式和命名空间限制

适用场景

  1. 01检查 Pod、部署和服务状态
  2. 02排查 Pod 日志与集群问题
  3. 03通过 AI 工具执行集群操作

MCP 相关

该 MCP 服务将 Kubernetes 资源查询、日志读取及管理操作作为工具提供给 MCP 客户端。支持 stdio 和 SSE 传输,并可启用只读模式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Kubernetes MCP 服务 🚀

Go MCP License Kubernetes

Kubernetes MCP 服务是一个 Model Context Protocol (MCP) 服务,可与 Kubernetes API 无缝集成,为开发者、运维人员和 AI 工具提供高级自动化与交互能力。

目录

概览 📊

此 MCP 服务支持 AI 工具使用自然语言与 Kubernetes 集群交互,并提供以下能力:

  • 🔍 获取并分析集群资源
  • 📈 监控部署、Pod 和服务
  • 🛠️ 通过 AI 接口执行常见的 kubectl 操作
  • 🔧 借助 AI 助手排查集群问题

先决条件 ✅

  1. 可访问 API 的 Kubernetes 集群
  2. 有效的 kubeconfig 文件或服务账号凭据
  3. 执行所需操作的适当 RBAC 权限

安装 💻

与 Claude Desktop 配合使用

将以下内容添加到 Claude Desktop 配置文件(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "kubernetes": {
      "command": "path/to/k8smcp",
      "args": [
        "stdio",
        "--kubeconfig=/path/to/your/kubeconfig"
      ]
    }
  }
}
与 VS Code 配合使用

将以下内容添加到 VS Code 用户设置(JSON)文件或工作区中的 .vscode/mcp.json:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "kubeconfig_path",
        "description": "Path to kubeconfig file",
        "default": "${env:HOME}/.kube/config"
      }
    ],
    "servers": {
      "kubernetes": {
        "command": "path/to/k8smcp",
        "args": [
          "stdio",
          "--kubeconfig=/path/to/your/kubeconfig"
        ]
      }
    }
  }
}
与 Cline 配合使用

将以下内容添加到 Cline 配置文件(选择“Configure MCP Servers”后,该文件路径为 path/to/cline_mcp_settings.json):

{
  "mcpServers": {
    "kubernetes": {
      "disabled": false,
      "timeout": 60,
      "command": "path/to/k8smcp",
      "args": [
        "stdio",
        "--read-only=false"
        "--kubeconfig=/path/to/your/kubeconfig"
      ],
      "env": {
        "K8S_MCP_TOOLSETS": "all"
      },
      "transportType": "stdio"
    }
  }
}

请务必将 command 的值更新为 k8smcp 可执行文件的路径。你可以通过 args 或 env 设置服务配置。

从源代码构建

克隆仓库并构建二进制文件:

git clone https://github.com/briankscheong/k8s-mcp-server.git
cd k8s-mcp-server
make build

也可以直接使用 Go 安装:

go install github.com/briankscheong/k8s-mcp-server/cmd/k8s-mcp-server@latest

命令行选项 ⌨️

A Kubernetes MCP Server that provides tools for interacting with Kubernetes clusters.

Environment Variables:
  K8S_MCP_KUBECONFIG            Path to kubeconfig file
  K8S_MCP_NAMESPACE             Default Kubernetes namespace
  K8S_MCP_IN_CLUSTER            Use in-cluster config (true/false)
  K8S_MCP_READ_ONLY             Restrict to read-only operations (true/false)
  K8S_MCP_RESOURCE_TYPES        Comma-separated list of resource types
  K8S_MCP_TOOLSETS              Comma-separated list of toolsets to enable
  K8S_MCP_EXPORT_TRANSLATIONS   Export translations (true/false)

Usage:
  k8smcp [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  sse         Start sse server
  stdio       Start stdio server

Flags:
      --export-translations      Save translations to a JSON file
  -h, --help                     help for k8smcp
      --in-cluster               Use in-cluster config instead of kubeconfig file
      --kubeconfig string        Path to the kubeconfig file (default "/Users/briancheong/.kube/config")
      --namespace string         Default Kubernetes namespace to target (default "default")
      --read-only                Restrict operations to read-only (no create, update, delete) (default true)
      --resource-types strings   Comma separated list of Kubernetes resource types to enable (pods,deployments,services,configmaps,namespaces,nodes) (default [all])
      --toolsets strings         Comma separated list of tools to enable (default [all])
  -v, --version                  version for k8smcp

Use "k8smcp [command] --help" for more information about a command.

服务传输选项 🔄

stdio

stdio 传输是默认选项,也是大多数用户进行本地集成时的推荐选项:

k8smcp stdio --kubeconfig=/path/to/your/kubeconfig
SSE

sse 传输支持基于 HTTP 的 JSON-RPC 消息传输。将服务部署在 Kubernetes 集群中且需要开放端口供客户端连接时,此选项会很有用。

k8smcp sse --in-cluster=true

说明

如果服务部署在 Kubernetes 集群中,需要设置 --in-cluster=true 标志。

访问控制 🔒

默认情况下,服务使用所提供的 kubeconfig 或服务账号的权限。为了增强安全性,你可以:

  1. 创建具有受限 RBAC 权限的专用服务账号
  2. 设置命名空间限制,防止跨命名空间操作
  3. 启用只读模式,防止修改集群状态

工具 🧰

Kubernetes MCP 服务提供了一套全面的工具,用于与 Kubernetes 集群交互。

资源操作 📦
  • get_pod - 获取特定 Pod 的详细信息

    • namespace:Pod 命名空间(字符串,可选,默认使用当前命名空间)
    • name:Pod 名称(字符串,必需)
  • list_pods - 列出命名空间中的 Pod

    • namespace:要列出 Pod 的命名空间(字符串,可选,默认使用当前命名空间)
    • label_selector:按标签选择器筛选 Pod(字符串,可选)
    • field_selector:按字段选择器筛选 Pod(字符串,可选)
  • get_pod_logs - 获取 Pod 日志

    • namespace:Pod 命名空间(字符串,可选,默认使用当前命名空间)
    • name:Pod 名称(字符串,必需)
    • container:容器名称(字符串,可选,默认使用第一个容器)
    • tail_lines:从末尾获取的行数(数字,可选)
    • previous:获取上一个容器实例的日志(布尔值,可选)
  • get_deployment - 获取特定部署的信息

    • namespace:部署命名空间(字符串,可选,默认使用当前命名空间)
    • name:部署名称(字符串,必需)
  • list_deployments - 列出命名空间中的部署

    • namespace:要列出部署的命名空间(字符串,可选,默认使用当前命名空间)
    • label_selector:按标签选择器筛选部署(字符串,可选)
  • get_service - 获取特定服务的信息

    • namespace:服务命名空间(字符串,可选,默认使用当前命名空间)
    • name:服务名称(字符串,必需)
  • list_services - 列出命名空间中的服务

    • namespace:要列出服务的命名空间(字符串,可选,默认使用当前命名空间)
    • label_selector:按标签选择器筛选服务(字符串,可选)
  • get_configmap - 获取特定 ConfigMap 的信息

    • namespace:ConfigMap 命名空间(字符串,可选,默认使用当前命名空间)
    • name:ConfigMap 名称(字符串,必需)
  • list_configmaps - 列出命名空间中的 ConfigMap

    • namespace:要列出 ConfigMap 的命名空间(字符串,可选,默认使用当前命名空间)
    • label_selector:按标签选择器筛选 ConfigMap(字符串,可选)
  • list_namespaces - 列出集群中的所有命名空间

    • 无需参数
  • list_nodes - 列出集群中的所有节点

    • 无需参数
管理操作 ⚙️
  • delete_pod - 从命名空间中删除 Pod

    • namespace:Pod 命名空间(字符串,可选,默认使用当前命名空间)
    • name:Pod 名称(字符串,必需)
    • grace_period_seconds:删除前的宽限期(数字,可选)
  • scale_deployment - 将部署扩缩容至指定副本数

    • namespace:部署命名空间(字符串,可选,默认使用当前命名空间)
    • name:部署名称(字符串,必需)
    • replicas:副本数(数字,必需)

重要

默认情况下,涉及修改集群资源的工具处于禁用状态。要启用这些工具,必须设置 --read-only=false 标志或 K8S_MCP_READ_ONLY=false 环境变量。

后续增强 🔮

  • 增强 RBAC 集成,实现精细化访问控制
  • 支持更多 kubernetes 资源
  • 支持自定义资源定义(CRD)
  • 支持部署的 Helm chart 管理功能
  • 集群监控和告警集成
  • 支持同时连接多个集群

参与贡献 👥

欢迎贡献!请随时提交 Pull Request。

  1. 复刻此仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add some amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证 ⚖️

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。


Kubernetes + AI

用 ❤️ 为 Kubernetes 和 AI 社区打造。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。