Token导航 LogoToken导航TokenDH.com
Simple K8s MCP Server logo
运维云端未说明官方级别未说明来源级核验

Simple K8s MCP Server

MCP Server

一个简化的Kubernetes MCP服务器,用于学习Go和K8s集成,提供管理Kubernetes命名空间和Pod的接口。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Kubernetes管理GoGo语言

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hendzormati

提供方

hendzormati

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

简单的K8s MCP服务器

一个简化的Kubernetes MCP(模型上下文协议)服务器,用于学习Go和K8s集成。该项目提供了一个易于使用的界面,用于通过各种模式(包括stdio和SSE)管理Kubernetes命名空间和Pod。

特性

命名空间管理

  • 列出命名空间:获取集群中所有命名空间的详细信息
  • 获取命名空间:检索特定命名空间的全面详细信息
  • 创建命名空间:使用可选标签和注释创建新的命名空间
  • 更新命名空间:修改现有命名空间的标签和注释
  • 删除命名空间:标准命名空间删除和状态监视
  • 智能删除命名空间:智能删除,自动选择最佳策略
  • 强制删除命名空间:使用多种策略增强对卡住命名空间的删除
  • 获取命名空间YAML:以YAML格式导出命名空间配置
  • 资源配额管理:设置和获取命名空间的资源配额
  • 限额范围管理:配置和检索限制范围
  • 命名空间事件:获取与特定命名空间相关的事件

Pod管理

  • 列出Pod:使用过滤选项获取命名空间中的所有Pod
  • 获取Pod:检索特定Pod的详细信息
  • 获取Pod日志:从pod容器流式传输或检索日志
  • 获取Pod指标:监控CPU和内存使用情况
  • 描述Pod:获取全面的pod描述(kubectl describes等效)
  • 删除Pod:删除具有可配置宽限期的特定Pod
  • 重新启动Pod:通过删除和重新创建来重新启动Pod
  • 创建Pod:从JSON清单部署新Pod
  • 更新Pod:修改pod标签和注释
  • 获取Pod事件:检索与特定Pod相关的事件

多环境支持

  • 自动检测:自动检测并配置不同的群集类型
  • K3s集成:对K3集群的原生支持,具有增强的删除策略
  • 集群内部署:在Kubernetes中作为pod部署时无缝工作
  • 标准Kubernetes:与托管和自托管集群完全兼容

先决条件

  • 转到1.21或更高版本
  • 访问Kubernetes集群(K8s或K3s)
  • kubectl 配置了适当的群集访问权限

安装和设置

1.安装Go(如果尚未安装)

wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

2.克隆和构建

git clone https://github.com/hendzormati/simple-k8s-mcp-server.git
cd simple-k8s-mcp-server
go mod tidy
go build -o main src/main.go

3.设置测试环境(可选)

kubectl run test-pod --image=nginx --restart=Never

群集设置

适用于K3s集群

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.32.6+k3s1" \
  sh -s - \
  --write-kubeconfig-mode 644

服务器会自动检测K3的安装并应用适当的优化。

对于标准Kubernetes

确保您的 ~/.kube/config 已正确配置或设置 KUBECONFIG 环境变量。

用法

标准模式

在stdio模式下启动服务器以进行直接CLI交互:

./main --mode stdio

命令示例:

创建命名空间:

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"createNamespace","arguments":{"name":"test-interactive","labels":"{}","annotations":"{}"}}}

获取命名空间详细信息:

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"getNamespace","arguments":{"name":"test-interactive"}}}

删除命名空间:

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"deleteNamespace","arguments":{"name":"test-interactive"}}}

智能删除(建议用于K3):

{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"smartDeleteNamespace","arguments":{"name":"stuck-namespace","force":true}}}

SSE模式

以SSE模式启动服务器进行web集成:

./main --mode sse --host 192.168.1.14 --port 8080

SSE模式与n8n工作流等自动化平台完美配合,为Kubernetes管理提供了一个对话界面。

对话流程示例:

用户: “您已连接到群集吗?”

服务器: “是的,我已连接到Kubernetes集群,并准备帮助您管理资源。”

用户: “创建一个名为ns-delete的命名空间”

服务器: 已成功创建命名空间“ns delete”

用户: “现在为我描述一下”

服务器: 命名空间'ns-delete'创建于2025-08-15T18:29:14+01:00,标签为kubernetes.io/元数据.name:ns-delete,其当前状态为活动

用户: “我想用标签更新它,举个例子”

服务器: 命名空间“ns delete”已更新为标签“environment:test”

用户: “现在删除它”

服务器: “警告:删除命名空间'ns-delete'将删除其中的所有资源。是否确实要继续?”

用户: “是”

服务器: 命名空间“ns delete”正在终止。如果它卡住,可以使用forceDeleteNamespace将其删除

用户: “现在列出命名空间”

服务器: 当前的命名空间是:default、kube-node-lease、kube-poublic和kube-system。ns-delete命名空间不再列出,表示它已被成功删除

增强的删除功能

此服务器包括专门为命名空间可能陷入“终止”状态的环境设计的高级删除功能:

  • 智能删除:自动在常规删除和强制删除之间进行选择
  • 多种策略:对卡住的命名空间使用4种不同的方法
  • K3s已优化:针对K3s API发现问题的特殊处理
  • 定稿管理:自动删除阻塞终结器

测试环境

该项目已在以下方面进行了彻底测试:

  • Killerkoda:在线Kubernetes游乐场环境
  • K3s集群:轻量级Kubernetes发行版
  • 标准Kubernetes:各种管理和自托管集群

可用服务器模式

  • 标准:用于脚本和CLI工具的直接命令行界面
  • SSE:web应用程序和自动化平台的服务器发送事件模式
  • 超文本传输协议:标准HTTP API模式

配置选项

服务器会自动从以下位置检测您的群集配置:

  1. 集群内服务帐户(作为pod运行时)
  2. KUBECONFIG 环境变量
  3. K3s默认位置(/etc/rancher/k3s/k3s.yaml)
  4. 标准kubeconfig位置(~/.kube/config)

致谢

这个项目的灵感来自 k8s mcp服务器 项目。在保持核心MCP协议兼容性的同时,这个简化版本侧重于学习Go和Kubernetes的集成,以及增强的命名空间和pod管理功能。

许可证

这个项目是开源的,可以在MIT许可证下使用。请参阅 许可证 文件以获取更多信息。

目录标签

目录标签

Kubernetes管理GoGo语言本地部署命名空间管理Pod管理K3s集成

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP