Kubernetes MCP服务器
](https://github.com/containers/kubernetes-mcp-server/blob/main/LICENSE) ](https://www.npmjs.com/package/kubernetes-mcp-server) ](https://pypi.org/project/kubernetes-mcp-server/) ](https://github.com/containers/kubernetes-mcp-server/releases/latest) 
✨ 特性 | 🚀 入门指南 | 🎥 演示 | ⚙️ 配置 | 🛠️ 工具 | 💬 社区 | 🧑💻 发展
https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e
✨ 特性
强大而灵活的Kubernetes 模型上下文协议(MCP) 支持的服务器实现 Kubernetes 和 OpenShift.
- ✅ 配置:
- 自动检测Kubernetes配置中的更改并更新MCP服务器。 - 视图 并管理当前 Kubernetes .kube/config 或者在集群配置中。
- ✅ 通用Kubernetes资源:执行以下操作 任何 Kubernetes或OpenShift资源。
- 任何CRUD操作(创建或更新、获取、列出、删除)。
- ✅ 容器组:执行Pod特定的操作。
- 列表 所有命名空间或特定命名空间中的Pod。 - 获取 指定命名空间中按名称命名的pod。 - 删除 指定命名空间中按名称命名的pod。 - 显示日志 从指定的命名空间中按名称查找pod。 - 顶部 获取指定命名空间中所有pod或特定pod的资源使用指标。 - 执行 进入pod并运行命令。 - 跑 pod中的容器图像,并可选择对其进行曝光。
- ✅ 命名空间列出 Kubernetes 命名空间。
- ✅ 事件:查看所有命名空间或特定命名空间中的Kubernetes事件。
- ✅ 项目:列出OpenShift项目。
- ☸️ 舵:
- 安装 当前或提供的命名空间中的Helm图。 - 列表 Helm在所有命名空间或特定命名空间中发布。 - 卸载 当前或提供的命名空间中的Helm版本。
- 🔧 什么字体:补充通用Kubernetes资源管理的Tekton特定操作。
- 管道:通过创建PipelineRun启动Tekton Pipeline。 - 管道 运行:使用相同的规范重新启动PipelineRun。 - 任务:通过创建TaskRun启动Tekton任务。 - TaskRun:重新启动具有相同规范的TaskRun,并通过pod解析检索TaskRun日志。
- 🔭 可观测性:可选的OpenTetry分布式跟踪和指标,具有自定义采样率。包含
/stats实时统计的端点。看 HOTEL.cn.
与其他Kubernetes MCP服务器实现不同 不是 只是一个包装 kubectl 或 helm 命令行工具。 它是一个 基于Go的原生实现 与Kubernetes API服务器直接交互。
有 无需 用于在系统上安装外部依赖项或工具。 如果您使用的是本机二进制文件,则不需要在系统上安装Node或Python。
- ✅ 轻量级:服务器作为Linux、macOS和Windows的单个本机二进制文件分发。
- ✅ 高性能/低延迟:直接与Kubernetes API服务器交互,无需调用和等待外部命令的开销。
- ✅ 多集群:可以同时与多个Kubernetes集群交互(如kubeconfig文件中所定义)。
- ✅ 交叉平台的:可作为Linux、macOS和Windows的原生二进制文件,以及npm包、Python包和容器/Docker映像。
- ✅ 可配置的:支持 命令行参数, TOML配置文件以及环境变量。
- ✅ 经过充分测试:服务器有一个广泛的测试套件,以确保其在不同Kubernetes环境中的可靠性和正确性。
- 📚 文档:全面 用户文档 包括设置指南、配置参考和可观察性。
🚀 入门指南
需求
- 访问Kubernetes集群。
Claude Code
跟随 专门的Claude Code入门指南 在我们 用户文档.
对于具有专用ServiceAccount和只读访问权限的安全生产设置,还请查看 Kubernetes设置指南.
克劳德桌面版
使用npx
如果你已经安装了npm,这是最快的入门方法 kubernetes-mcp-server 在克劳德桌面上。
打开你的 claude_desktop_config.json 并将mcp服务器添加到列表中 mcpServers:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["-y", "kubernetes-mcp-server@latest"]
}
}
}VS代码/VS代码内部人员
按以下链接在VS Code Insiders中安装Kubernetes MCP服务器扩展:
或者,您可以通过运行以下命令手动安装扩展:
# For VS Code
code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'光标
按以下链接在Cursor中安装Kubernetes MCP服务器扩展:

或者,您可以通过编辑来手动安装扩展 mcp.json 文件:
{
"mcpServers": {
"kubernetes-mcp-server": {
"command": "npx",
"args": ["-y", "kubernetes-mcp-server@latest"]
}
}
}Goose命令行界面
Goose命令行界面 是使用人工智能(AI)代理最简单(也是最便宜)的方法。
使用npm
如果你已经安装了npm,这是最快的入门方法 kubernetes-mcp-server.
打开你的鹅 config.yaml 并将mcp服务器添加到列表中 mcpServers:
extensions:
kubernetes:
command: npx
args:
- -y
- kubernetes-mcp-server@latest🎥 演示
诊断并自动修复OpenShift部署
演示演示了Claude Desktop如何利用Kubernetes MCP服务器在OpenShift中自动诊断和修复部署,而无需任何用户帮助。
https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941
_氛围编程_ 一个简单的游戏并将其部署到OpenShift
在这个演示中,我将引导您完成以下过程 _氛围编程_ 一个使用VS Code的简单游戏以及如何利用 Podman MCP服务器 Kubernetes MCP服务器将其部署到OpenShift。
在VS Code中用Kubernetes MCP服务器为GitHub Copilot充电-一键设置!
在这个演示中,我将向您展示如何通过单击链接在VS代码中设置Kubernetes MCP服务器。
⚙️ 配置
Kubernetes MCP服务器可以使用命令行(CLI)参数进行配置。
您可以通过以下方式运行CLI可执行文件: npx, uvx,或下载 最新发布的二进制文件.
# Run the Kubernetes MCP server using npx (in case you have npm and node installed)
npx kubernetes-mcp-server@latest --help# Run the Kubernetes MCP server using uvx (in case you have uv and python installed)
uvx kubernetes-mcp-server@latest --help# Run the Kubernetes MCP server using the latest release binary
./kubernetes-mcp-server --help配置选项
| 选项 | 描述 |
|---|---|
--port | 以流式HTTP模式(path/MCP)和服务器发送事件(SSE)模式(path/SSE)启动MCP服务器,并在指定端口上侦听。 |
--config | (可选)主TOML配置文件的路径。看 配置参考 了解详情。 |
--config-dir | (可选)配置目录中的放置路径。文件按词汇(字母)顺序加载。默认为 conf.d 相对于主配置文件,如果 --config 已指定。看 配置参考 了解详情。 |
--kubeconfig | Kubernetes配置文件的路径。如果没有提供,它将尝试解析配置(在集群、默认位置等)。 |
--list-output | 资源列表操作的输出格式(yaml、table之一)(默认“table”) |
--read-only | 如果设置,MCP服务器将以只读模式运行,这意味着它不允许在Kubernetes集群上进行任何写入操作(创建、更新、删除)。这对于在不进行更改的情况下调试或检查集群非常有用。 |
--disable-destructive | 如果设置,MCP服务器将禁用Kubernetes集群上的所有破坏性操作(删除、更新等)。这对于调试或检查集群而不意外进行更改非常有用。此选项在以下情况下无效 --read-only 使用。 |
--stateless | 如果设置,MCP服务器将在无状态模式下运行,禁用工具并提示更改通知。这对于不需要维护客户端状态的容器部署、负载平衡和无服务器环境非常有用。 |
--toolsets | 以逗号分隔的要启用的工具集列表。检查 🛠️ 工具和功能 部分了解更多信息。 |
--disable-multi-cluster | 如果设置,MCP服务器将禁用多集群支持,并将仅使用kubeconfig文件中的当前上下文。如果您想将MCP服务器限制为单个集群,这很有用。 |
--cluster-provider | 要使用的集群提供程序策略(其中之一:kubeconfig,集群中,kcp,禁用)。如果未设置,服务器将根据环境自动检测。 |
备注:大多数CLI选项都有等效的TOML配置字段。这--disable-multi-cluster标志相当于设置cluster_provider_strategy = "disabled"在TOML。请参阅 配置参考 对于所有TOML选项。
TOML配置文件
对于复杂或持久的配置,请使用TOML配置文件而不是CLI参数:
kubernetes-mcp-server --config /etc/kubernetes-mcp-server/config.toml配置示例:
log_level = 2
read_only = true
toolsets = ["core", "config", "helm", "kubevirt"]
# Deny access to sensitive resources
[[denied_resources]]
group = ""
version = "v1"
kind = "Secret"
[telemetry]
endpoint = "http://localhost:4317"有关全面的TOML配置文档,包括:
- 所有配置选项及其默认值
- 模块化设置的插入式配置文件
- 通过SIGHUP动态配置重新加载
- 拒绝资源以限制对敏感资源类型的访问
- MCP工具搜索的服务器说明
- 自定义MCP提示
- HTTP模式的OAuth/OIDC身份验证(钥匙斗篷, 微软Entra ID)
请参阅 配置参考.
📊 MCP日志记录
服务器支持MCP日志记录功能,允许客户端通过结构化日志消息接收调试信息。 Kubernetes API错误会自动分类并记录到具有适当严重性级别的客户端。 敏感数据(令牌、密钥、密码、云凭据)在发送给客户端之前会自动进行编辑。
请参阅 MCP记录指南.
🛠️ 工具和功能
Kubernetes MCP服务器支持通过以下方式启用或禁用特定组的工具和功能(工具、资源、提示等) --toolsets 命令行标志或 toolsets 配置选项。 这允许您控制哪些Kubernetes功能可用于您的AI工具。 仅启用所需的工具集可以帮助减少上下文大小并提高LLM的工具选择准确性。
可用工具集
以下工具集可用(标有✓ 默认情况下,默认情况下启用“默认”列中的):
| 工具集 | 描述 | 默认值 |
|---|---|---|
| config | 查看和管理当前本地Kubernetes配置(kubeconfig) | ✓ |
| core | Kubernetes管理最常用的工具(Pod、通用资源、事件等) | ✓ |
| helm | 用于管理helm图表和版本的工具 | |
| kcp | 管理kcp工作区和多租户功能 | |
| kiali | 管理kiali的最常用工具,请查看 Kiali文件 了解更多详情。 | |
| kubevirt | kubevirt虚拟机管理工具,查看 KubeVirt文档 了解更多详情。 | |
| tekton | 用于管道、管道运行、任务和任务运行的tekton管道管理工具。 |
工具
如果启用了多集群支持(默认),并且您可以访问多个集群,则所有适用的工具都将包括一个额外的 context 参数指定用于该操作的Kubernetes上下文(集群)。
config
- 配置文本列表 -从kubeconfig文件中列出所有可用的上下文名称和相关的服务器url
- targets_list -列出所有可用目标
- 配置视图 -以kubeconfig YAML格式获取当前Kubernetes配置内容
- minified (boolean)-返回配置的缩小版本。如果设置为true,则仅保留当前上下文和该上下文的相关配置。如果设置为false,则配置中将返回所有上下文、集群、身份验证信息和用户。(可选,默认为true)
core
- 事件列表 -从所有命名空间列出当前集群中用于调试和故障排除的Kubernetes事件(警告、错误、状态更改)
- namespace (string)-从中检索事件的可选命名空间。如果未提供,将列出所有命名空间中的事件
- 命名空间列表 -列出当前集群中的所有Kubernetes命名空间
- 项目列表 -列出当前集群中的所有OpenShift项目
- nodes_log -从Kubernetes节点获取日志(kubelet、kube-proxy或其他系统日志)。这通过Kubernetes API代理访问节点日志到kubelet
- name (string) (必填) -从中获取日志的节点的名称 - query (string) (必填) -查询指定从中返回日志的服务或文件(必需)。示例:“kubelet”获取kubelet日志/“从节点获取特定的日志文件(例如,”/var/log/kubelet.log“或”/var/log/bube-proxy.log“) - tailLines (integer)-从日志末尾检索的行数(可选,0表示所有日志)
- nodes_stats_summary -通过kubelet的摘要API从Kubernetes节点获取详细的资源使用统计信息。提供全面的指标,包括节点、pod和容器级别的CPU、内存、文件系统和网络使用情况。在具有cgroup v2和内核4.20+的系统上,还包括PSI(压力失速信息)指标,显示CPU、内存和I/O的资源压力。请参阅https://kubernetes.io/docs/reference/instrumentation/understand-psi-metrics/有关PSI指标的详细信息
- name (string) (必填) -要从中获取统计信息的节点的名称
- nodes_top -列出Kubernetes Metrics Server记录的指定Kubernetes节点或集群中所有节点的资源消耗(CPU和内存)
- label_selector (string)-Kubernetes标签选择器(例如'node-role.kubernes.io/worker='),用于按标签过滤节点(可选,仅在未提供名称时适用) - name (string)-要从中获取资源消耗的节点的名称(可选,如果未提供,则为所有节点)
- 播客列表 -列出当前集群中所有命名空间中的所有Kubernetes Pod
- fieldSelector (string)-可选的Kubernetes字段选择器,用于按字段值过滤Pod(例如“state.phase=Running”,“spec.nodeName=node1”)。支持的字段:元数据.name、元数据.namespace、规范.nodeName、规范.restartPolicy、规范.schedulerName、规范.serviceAccountName、状态.phase(待定/运行中/成功/失败/未知)、状态.podIP、状态.nominatedNodeName。注意:CrashLoopBackOff是一个容器状态,而不是pod阶段,因此不能直接过滤。看https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/ - labelSelector (string)-可选的Kubernetes标签选择器(例如“app=myapp,env=prod”或“app-in(myapp,yourapp)”),当您想按标签过滤Pod时,请使用此选项
- pods_list_in_namespace -列出当前集群中指定命名空间中的所有Kubernetes Pod
- fieldSelector (string)-可选的Kubernetes字段选择器,用于按字段值过滤Pod(例如“state.phase=Running”,“spec.nodeName=node1”)。支持的字段:元数据.name、元数据.namespace、规范.nodeName、规范.restartPolicy、规范.schedulerName、规范.serviceAccountName、状态.phase(待定/运行中/成功/失败/未知)、状态.podIP、状态.nominatedNodeName。注意:CrashLoopBackOff是一个容器状态,而不是pod阶段,因此不能直接过滤。看https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/ - labelSelector (string)-可选的Kubernetes标签选择器(例如“app=myapp,env=prod”或“app-in(myapp,yourapp)”),当您想按标签过滤Pod时,请使用此选项 - namespace (string) (必填) -用于列出Pod的命名空间
- pods_get -使用提供的名称在当前或提供的命名空间中获取Kubernetes Pod
- name (string) (必填) -Pod的名称 - namespace (string)-从中获取Pod的命名空间
- pods_delete -删除当前或提供的命名空间中具有提供名称的Kubernetes Pod
- name (string) (必填) -要删除的Pod的名称 - namespace (string)-从中删除Pod的命名空间
- pods_top -列出Kubernetes Metrics Server记录的所有命名空间、提供的命名空间或当前命名空间中指定Kubernetes Pod的资源消耗(CPU和内存)
- all_namespaces (boolean)-如果为true,请列出所有命名空间中所有Pod的资源消耗。如果为false,请列出提供的命名空间或当前命名空间中Pod的资源消耗 - label_selector (string)-Kubernetes标签选择器(例如“app=myapp,env=prod”或“app-in(myapp,yourapp)”),当您想按标签过滤Pod时,请使用此选项(可选,仅适用于未提供名称的情况) - name (string)-要从中获取资源消耗的Pod的名称(可选,如果未提供,则命名空间中的所有Pod) - namespace (string)-从中获取Pod资源消耗的命名空间(可选,如果未提供当前命名空间并且all_namespaces为false,则为当前命名空间)
- pods_exec -使用提供的名称和命令在当前或提供的命名空间中的Kubernetes Pod中执行命令(shell访问,在容器中运行命令)
- command (array) (必填) -在Pod容器中执行的命令。第一项是要运行的命令,其余的是该命令的参数。示例:\[“ls”、“-l”、“/tmp”\] - container (string)-将执行命令的Pod容器的名称(可选) - name (string) (必填) -执行命令的Pod的名称 - namespace (string)-执行命令的Pod的命名空间
- pods_log -获取当前或提供的命名空间中具有提供名称的Kubernetes Pod的日志
- container (string)-从中获取日志的Pod容器的名称(可选) - name (string) (必填) -从中获取日志的Pod的名称 - namespace (string)-从中获取Pod日志的命名空间 - previous (boolean)-返回以前终止的容器日志(可选) - tail (integer)-从日志末尾检索的行数(可选,默认值:100)
- pods_run -使用提供的容器映像和可选名称在当前或提供的命名空间中运行Kubernetes Pod
- image (string) (必填) -要在Pod中运行的容器映像 - name (string)Pod的名称(可选,若未提供,则为随机名称) - namespace (string)-运行Pod的命名空间 - port (number)-从Pod容器中暴露的TCP/IP端口(可选,如果不提供,则不暴露端口)
- 资源列表 -通过提供当前集群中的Kubernetes资源和对象的apiVersion和种类,以及可选的命名空间和标签选择器,列出它们
(常见的apiVersion和种类包括:v1 Pod、v1 Service、v1 Node、apps/v1 Deployment、networking.k8s.io/v1 Ingress、route.openshift.io/v1 route)
- apiVersion (string) (必填) -apiVersion资源(有效apiVersion的示例有:v1、apps/v1、networking.k8s.io/v1) - fieldSelector (string)-可选的Kubernetes字段选择器,用于按字段值过滤资源(例如“state.phase=Running”、“metadata.name=myresources”)。支持的字段因资源类型而异。对于Pod:元数据.name、元数据.namespace、规范.nodeName、规范.restartPolicy、规范.schedulerName、规范.serviceAccountName、状态.phase(待定/运行中/成功/失败/未知)、状态.podIP、状态.nominatedNodeName。看https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/ - kind (string) (必填) -资源的种类(有效种类的示例有:Pod、Service、Deployment、Ingress) - labelSelector (string)-可选的Kubernetes标签选择器(例如“app=myapp,env=prod”或“app-in(myapp,yourapp)”),当您想按标签过滤资源时,请使用此选项 - namespace (string)-用于从中检索命名空间资源的可选命名空间(在群集范围的资源的情况下忽略)。如果未提供,将列出所有命名空间中的资源
- resources_get -通过提供当前集群中的Kubernetes资源的apiVersion、kind、命名空间(可选)及其名称来获取该资源
(常见的apiVersion和种类包括:v1 Pod、v1 Service、v1 Node、apps/v1 Deployment、networking.k8s.io/v1 Ingress、route.openshift.io/v1 route)
- apiVersion (string) (必填) -apiVersion资源(有效apiVersion的示例有:v1、apps/v1、networking.k8s.io/v1) - kind (string) (必填) -资源的种类(有效种类的示例有:Pod、Service、Deployment、Ingress) - name (string) (必填) -资源名称 - namespace (string)-用于从中检索命名空间资源的可选命名空间(在群集范围的资源的情况下忽略)。如果未提供,将从配置的命名空间获取资源
- 资源_创建_更新 -通过提供资源的YAML或JSON表示,在当前集群中创建或更新Kubernetes资源
(常见的apiVersion和种类包括:v1 Pod、v1 Service、v1 Node、apps/v1 Deployment、networking.k8s.io/v1 Ingress、route.openshift.io/v1 route)
- resource (string) (必填) -包含Kubernetes资源表示的JSON或YAML。应包括顶级字段,如apiVersion、kind、元数据和spec
- resources_delete -通过提供当前集群中的Kubernetes资源的apiVersion、kind、命名空间(可选)及其名称来删除该资源
(常见的apiVersion和种类包括:v1 Pod、v1 Service、v1 Node、apps/v1 Deployment、networking.k8s.io/v1 Ingress、route.openshift.io/v1 route)
- apiVersion (string) (必填) -apiVersion资源(有效apiVersion的示例有:v1、apps/v1、networking.k8s.io/v1) - gracePeriodSeconds (integer)-删除对象之前的可选持续时间(秒)。值必须是非负整数。值为零表示立即删除。如果此值为nil,则将使用指定类型的默认宽限期 - kind (string) (必填) -资源的种类(有效种类的示例有:Pod、Service、Deployment、Ingress) - name (string) (必填) -资源名称 - namespace (string)-可选命名空间,用于从中删除命名空间资源(在群集范围的资源的情况下忽略)。如果未提供,将从配置的命名空间中删除资源
- 资源_规模 -通过提供当前集群中Kubernetes资源的apiVersion、种类、名称以及可选的命名空间,获取或更新其规模。如果在工具调用中设置了比例,则比例将更新为该值。始终返回资源的当前规模
- apiVersion (string) (必填) -apiVersion资源(有效apiVersion的示例是apps/v1) - kind (string) (必填) -资源的种类(有效种类的示例有:StatefulSet、Deployment) - name (string) (必填) -资源名称 - namespace (string)-用于获取/更新命名空间资源规模的可选命名空间(对于群集范围的资源,忽略此命名空间)。如果没有提供,将从配置的命名空间获取/更新资源规模 - scale (integer)-可选比例,用于更新资源比例。如果未提供,将返回资源的当前比例,而不进行更新
helm
- helm_install -安装(部署)Helm chart以在当前或提供的命名空间中创建版本
- chart (string) (必填) -安装图表参考(例如:stable/grafana,oci://ghcr.io/nginxinc/charts/nginx-ingress) - name (string)Helm版本的名称(可选,若未提供,则为随机名称) - namespace (string)-用于安装Helm chart的命名空间(可选,如果未提供,则为当前命名空间) - values (object)-传递给Helm图表的值(可选)
- 头盔列表 -列出当前或提供的命名空间(或所有命名空间,如果指定)中的所有Helm版本
- all_namespaces (boolean)-如果为true,则列出所有命名空间中的所有Helm版本,忽略命名空间参数(可选) - namespace (string)-列出Helm版本的命名空间(可选,如果未提供,则列出所有命名空间)
- 头盔 -在当前或提供的命名空间中卸载Helm版本
- name (string) (必填) -要卸载的Helm版本的名称 - namespace (string)-用于卸载Helm版本的命名空间(可选,如果未提供,则为当前命名空间)
kcp
- kcp_workspaces_list -列出当前群集中所有可用的kcp工作区
- kcp_workspace_describer -获取特定kcp工作区的详细信息
- workspace (string) (必填) -要描述的工作空间的名称或路径
kiali
- kiali_get_mesh_traftcraph -返回指定命名空间的服务到服务流量拓扑、依赖关系和网络指标(吞吐量、响应时间、mTLS)。使用此功能诊断路由问题、延迟或查找上游/下游依赖关系。
- clusterName (string)-要包含在图中的可选集群名称。默认值是Kiali配置(KubeConfig)中的集群名称。 - graphType (string)-图的粒度。“app”按应用名称聚合,“versionedApp”按版本分隔,“workload”映射特定的Pod/部署。默认值:versionedApp。 - namespaces (string) (必填) -以逗号分隔的要映射的命名空间列表
- kiali_get_mesh_status -检索Istio服务网格的高级运行状况、拓扑和环境详细信息。返回多集群控制平面状态(istiod)、数据平面命名空间健康状况(包括环境网格状态)、可观察性堆栈健康状况(Prometheus、Grafana…)和组件连接。使用此工具作为诊断网格范围问题、验证Istio/Kiali版本或在深入特定工作负载之前检查整体健康状况的第一步。
- kiali_manage_istio_config_read -只读Istio配置:列出或获取对象。对于操作“list”,返回一个具有{name,namespace,type,validation}的对象数组。要创建、修补或删除,请使用manage_istio_config。
- action (string) (必填) -要执行的操作(只读) - clusterName (string)-可选群集名称。默认为Kiali配置中的集群名称。 - group (string)-Istio对象的API组。“获取”操作所必需的。 - kind (string)-Istio对象的类型。“获取”操作所必需的。 - namespace (string)-包含Istio对象的命名空间。对于“list”,如果没有提供,则返回所有命名空间中的对象。对于“get”,必填。 - object (string)Istio对象的名称。“获取”操作所必需的。 - serviceName (string)-过滤影响特定服务的Istio配置(VirtualServices、DestinationRules及其引用的网关)。仅适用于“列表”操作 - version (string)-API版本。将“v1”用于VirtualService、DestinationRule和网关。“获取”操作所必需的。
- kiali_manage_istio_config -创建、修补或删除Istio配置。对于列表和获取(只读),请使用manage_istio_config_read。
- action (string) (必填) -要执行的操作(写入) - clusterName (string)-可选群集名称。默认为Kiali配置中的集群名称。 - data (string)-完成JSON或YAML数据以应用或创建对象。创建和修补操作所需。您必须提供一个完整且有效的清单,其中包含资源类型的所有必填字段。数组(如服务器、http等)被完全替换,因此您必须在每个数组元素中包含所有必填字段。 - group (string) (必填) -Istio对象的API组 - kind (string) (必填) -Istio对象的类型(例如,“VirtualService”、“DestinationRule”)。 - namespace (string) (必填) -包含Istio对象的命名空间 - object (string) (必填) -Istio对象的名称 - version (string) (必填) -API版本。将“v1”用于VirtualService、DestinationRule和网关。
- kiali_get_resource_details -获取资源列表或检索特定资源的详细数据。如果省略“resourceName”,则返回一个列表。如果提供了“resourceName”,它将返回该特定资源的详细信息。
- clusterName (string)-可选。要从中获取资源的群集的名称。如果没有提供,将使用Kiali KubeConfig中的默认集群名称 - namespaces (string)-以逗号分隔的要查询的命名空间列表(例如,“bookinfo”或“bookinfo,default”)。如果没有提供,它将跨所有可访问的命名空间进行查询。 - resourceName (string)-可选。资源的具体名称。如果留空,该工具将返回指定类型的所有资源的列表。如果提供,该工具将返回此特定资源的详细信息。 - resourceType (string) (必填) -要查询的资源类型。Kiali应用程序使用“app”(按Kubernetes“app”标签分组)。将“argoapp”用于ArgoCD应用程序CRD(需要安装ArgoCD,Kiali服务帐户必须对applications.argoproj.io具有读取权限)。
- kiali_list_traces -列出命名空间中服务的分布式跟踪。返回一个摘要(命名空间、服务、total_found、avg_duration_ms)和一个包含id、duration_m s、spans_count、root_op、slowest_service、has_errors的跟踪列表。使用带有跟踪id的get_trace_details来获取完整的层次结构。
- clusterName (string)-可选群集名称。默认为Kiali配置中的集群名称。 - errorOnly (boolean)-如果为真,则只考虑包含错误的痕迹。默认值为false。 - limit (integer)-要返回的最大跟踪数。默认值10。 - lookbackSeconds (integer)-要找多远。默认值为600(10米)。 - namespace (string) (必填) -服务的Kubernetes命名空间。 - serviceName (string) (必填) -要搜索跟踪的服务名称(必需)。最多返回多条跟踪。
- kiali_get_trace_details -通过trace_id获取单个分布式跟踪,并返回其调用层次结构(具有持续时间、状态和嵌套调用的服务树)。在list_traces之后使用此函数深入到特定的跟踪中。
- traceId (string) (必填) -要获取和汇总的跟踪ID。如果提供,则忽略名称空间/service_name。
- kiali_get_pod_性能 -返回一个人类可读的文本摘要,其中包含当前Pod CPU/内存使用情况(来自Prometheus)与Kubernetes请求/限制(来自Pod规范)的比较。对于回答诸如“此工作负载是否使用了太多内存?”之类的问题很有用
- clusterName (string)-可选。要从中获取资源的群集的名称。如果没有提供,将使用Kiali KubeConfig中的默认集群名称 - namespace (string) (必填) -Pod的Kubernetes命名空间。 - podName (string)-Kubernetes Pod名称。如果提供了workloadName,该工具将首先尝试从该工作负载中解析Pod。 - queryTime (string)-查询的可选结束时间戳(RFC3339)。默认为现在。 - timeRange (string)-用于计算CPU速率的时间窗口(普罗米修斯持续时间如“5m”、“10m”、“1h”、“1d”)。默认为“10m”。 - workloadName (string)-Kubernetes工作负载名称(例如部署/StatefulSet/等)。工具将查找工作负载并选择其中一个Pod。如果没有找到,它将退回到将此值视为podName。
- kiali_get_logs -获取命名空间中Kubernetes Pod的日志(或将解析为Pod的工作负载名称)。输出为纯文本,与kubernetes mcp服务器pods_log匹配。
- clusterName (string)-可选。要从中获取日志的群集的名称。如果没有提供,将使用Kiali KubeConfig中的默认集群名称 - container (string)-可选。从中获取日志的Pod容器的名称。 - format (string)-聊天输出格式。“代码块”将日志包装在~~~围栏中(推荐)。'plain'返回原始文本,如kubernetes mcp服务器pods_log。 - name (string) (必填) -从中获取日志的Pod的名称。如果它不存在,它将被视为工作负载名称,并选择一个正在运行的pod。 - namespace (string) (必填) -从中获取Pod日志的命名空间 - previous (boolean)-可选。返回以前终止的容器日志 - severity (string)-客户端应用了可选的严重性过滤器。接受“错误”、“警告”或“错误、警告”等组合。 - tail (integer)-从日志末尾检索的行数(可选,默认为50)。不能超过200行。 - workload (string)-可选。工作负载名称覆盖(在名称查找失败时使用)。
- kiali_get-metrics -返回给定资源的Istio指标(延迟分位数、流量趋势、吞吐量、有效载荷大小)的紧凑JSON摘要。
- byLabels (string)-逗号分隔的标签列表,用于按(例如,“source_workload,destination_service”)对指标进行分组。可选的 - clusterName (string)-要从中获取指标的群集名称。可选,默认为Kiali配置中的集群名称(KubeConfig) - direction (string)-交通方向。可选,默认为“出站” - namespace (string) (必填) -从中获取度量的命名空间 - quantiles (string)-直方图度量的逗号分隔的分位数列表(例如,“0.5,0.95,0.99”)。可选的 - rateInterval (string)-度量的速率间隔(例如“1m”、“5m”)。可选,默认为“10m” - reporter (string)-指标报告员。可选,默认为“source” - requestProtocol (string)-按请求协议过滤(例如,“http”、“grpc”、“tcp”)。可选的 - resourceName (string) (必填) -要获取指标的资源的名称 - resourceType (string) (必填) -获取指标的资源类型 - step (string)-数据点之间的步长(秒)(例如“15”)。可选,默认为15秒
kubevirt
- vm_clone -通过创建VirtualMachineClone资源克隆KubeVirt虚拟机。这将使用KubeVirtual-Clone API创建具有新名称的源VM的副本
- name (string) (必填) -要克隆的源虚拟机的名称 - namespace (string) (必填) -源虚拟机的命名空间 - targetName (string) (必填) -新克隆虚拟机的名称
- vm_create -使用指定的配置在集群中创建KubeVirt VirtualMachine,自动解析实例类型、首选项和容器磁盘映像。默认情况下,VM将以“暂停”状态创建;使用autostart参数立即启动它。
- autostart (boolean)-创建后自动启动VM的可选标志(将runStrategy设置为Always而不是Halted)。默认为false。 - instancetype (string)-VM的可选实例类型名称(例如,“u1.small”、“u1.midge”、“u1.large”) - name (string) (必填) -虚拟机的名称 - namespace (string) (必填) -虚拟机的命名空间 - networks (array)-连接到VM的可选辅助网络接口。每个项目都指定了一个要附加的Multus NetworkAttachmentDefinition。接受简单字符串(NetworkAttachmentDefinition名称)或具有“name”(VM中的接口名称)和“networkName”(NetworkAttachment Definition名称)属性的对象。每个网络在VM上创建一个网桥接口。 - performance (string)-VM实例类型的可选性能系列提示(例如,'u1'表示通用,'o1'表示超量使用,'c1'表示计算优化,'m1'表示内存优化)。如果未指定,则默认为“u1”(通用)。 - preference (string)-VM的可选首选项名称 - size (string)-VM的可选工作负载大小提示(例如,“小”、“中”、“大”、“xlarge”)。如果没有明确指定,则用于自动选择适当的实例类型。 - storage (string)-使用DataSources时,VM根磁盘的可选存储大小(例如,“30Gi”、“50Gi”和“100Gi”)。默认为30Gi。使用容器磁盘时忽略。 - workload (string)VM的工作负载。接受操作系统名称(例如,“fedora”(默认)、“ubuntu”、“centos”、“centros stream”、“debian”、“rhel”、“opensuse”、“opensuse tumblewed”、“opensuse leap”)或全容器磁盘映像URL
- vm_guest_info -从VirtualMachine的QEMU客户代理获取客户操作系统信息。需要在VM内安装并运行来宾代理。提供有关操作系统、文件系统、网络接口和登录用户的详细信息。
- info_type (string)-要检索的信息类型:“全部”(默认值-所有可用信息)、“操作系统详细信息”、“文件系统”(磁盘和文件系统信息)、”用户“(登录用户)、”网络“(网络接口和IP) - name (string) (必填) -虚拟机的名称 - namespace (string) (必填) -虚拟机的命名空间
- vm_lifecycle -管理KubeVirt虚拟机生命周期:启动、停止或重新启动虚拟机
- action (string) (必填) -要执行的生命周期操作:“start”(将runStrategy更改为Always)、“stop”(将run Strategy更改成Halted)或“restart”(停止然后启动VM) - name (string) (必填) -虚拟机的名称 - namespace (string) (必填) -虚拟机的命名空间
tekton
- 泰克通_管道_启动 -通过创建引用Tekton Pipeline的PipelineRun来启动它
- name (string) (必填) -要启动的管道名称 - namespace (string)-管道命名空间 - params (object)-传递给管道的参数值。键是参数名称;值可以是字符串、字符串数组或对象(字符串到字符串的映射),具体取决于Pipeline规范中定义的参数类型
- tekton_pipelinerun_重新启动 -通过创建具有相同规格的新PipelineRun来重新启动Tekton PipelineRun
- name (string) (必填) -要重新启动的PipelineRun的名称 - namespace (string)-PipelineRun的命名空间
- tekton_task_start -通过创建引用Tekton任务的TaskRun来启动该任务
- name (string) (必填) -要启动的任务的名称 - namespace (string)-任务的命名空间 - params (object)-传递给任务的参数值。键是参数名称;值可以是字符串、字符串数组或对象(字符串到字符串的映射),具体取决于任务规范中定义的参数类型
- tekton_taskrun_restart -通过创建具有相同规范的新TaskRun来重新启动Tekton TaskRun
- name (string) (必填) -要重新启动的TaskRun的名称 - namespace (string)-TaskRun的命名空间
- tekton_taskrun_logs -通过解析Tekton TaskRun的底层pod来获取其日志
- name (string) (必填) -从中获取日志的TaskRun的名称 - namespace (string)-TaskRun的命名空间 - tail (integer)-从日志末尾检索的行数(可选,默认值:100)
提示
core
- 群集健康检查 -对Kubernetes/OpenShift集群进行全面的健康评估
- namespace (string)-用于限制健康检查范围的可选命名空间(默认值:所有命名空间) - check_events (string)-包括最近的警告/错误事件(真/假,默认值:真)
kubevirt
- 虚拟机故障排除 -生成用于诊断KubeVirt VirtualMachine问题的分步故障排除指南
- namespace (string) (必填) -要排除故障的VirtualMachine的命名空间 - name (string) (必填) -要排除故障的虚拟机的名称
资源
资源模板
Helm 图表
A. Helm 图表 可用于简化Kubernetes MCP服务器的部署。
helm install kubernetes-mcp-server oci://ghcr.io/containers/charts/kubernetes-mcp-server有关包括OAuth、遥测和资源限制在内的配置选项,请参阅 图表自述 和 values.yaml.
💬 社区
加入对话并与其他用户和贡献者联系:
🧑💻 发展
与mcp检查员一起运行
编译项目并运行Kubernetes MCP服务器 mcp检查员 检查MCP服务器。
# Compile the project
make build
# Run the Kubernetes MCP server with mcp-inspector
npx @modelcontextprotocol/inspector@latest $(pwd)/kubernetes-mcp-server______________________________________________________________________
mcp名称:io.github.containers/kubernes-mcp-server

