kubeaid-mcp
KubeAid MCP
一个用于KubeAid管理的Kubernetes集群的MCP服务器。 将其接入Claude Code、Claude Desktop、Cursor或任何兼容MCP的客户端, 即可提出诸如*"哪些应用不同步?"、"为什么kube-prometheus降级了?"或"同步cert-manager应用"*等问题——模型通过调用此服务器的工具来回答,这些工具通过您自己的kubeconfig凭据与您的集群通信。
基于官方@modelcontextprotocol/sdk和@kubernetes/client-node用TypeScript构建。
作者: Deep Poharkar
为什么专门针对KubeAid?
KubeAid以GitOps方式运行集群:每个应用都是从你的kubeaid-config仓库生成的ArgoCD Application,并且默认禁用自动同步——Git与集群之间的漂移是正常的,需要等待有意的同步。通用的Kubernetes助手不理解这种工作流。此服务器理解:
ArgoCD
ApplicationCR是一等公民:同步状态、健康状态、失败条件和漂移资源只需一次工具调用即可获取。同步被建模为KubeAid中明确的"立即部署"决策——通过选择加入的标志进行门控,支持
dry_run,并且绝不允许在你标记为受保护的上下文中执行。捆绑的提示词编码了KubeAid的操作习惯:同步前先审查漂移,在kubeaid-config仓库中修复问题,而不是手动编辑集群。
工具
读取工具——始终注册:
工具 | 功能 |
| 服务器可以定位的Kubeconfig上下文,带有默认和写保护标志。 |
| 每个KubeAid管理的ArgoCD应用,包含同步状态、健康状态、修订版本和自动同步标志。支持 |
| 深入查看一个应用:来源、错误条件、漂移/不健康资源、上次同步结果、部署历史。 |
| 命名空间及其状态和年龄。 |
| 节点及其就绪状态、角色、kubelet版本、内部IP。 |
| 具有kubectl风格派生状态(CrashLoopBackOff等)、就绪计数、重启次数、节点、年龄的Pod。 |
| 每个容器的状态和上次崩溃详情、条件,以及Pod的近期事件。 |
| 尾部容器日志; |
| 部署及其就绪/最新/可用计数。 |
| 近期事件,可选仅警告,按命名空间或集群范围。 |
| 按apiVersion/kind/name描述任何资源——包括CRD,如 |
写入工具——仅在KUBEAID_MCP_ALLOW_WRITES=true时注册:
工具 | 说明 |
| 触发ArgoCD同步(KubeAid的"部署"操作)。支持 |
| 设置部署的副本数。 |
| 滚动重启部署/有状态集/守护进程集。 |
| 删除卡住的Pod,以便其控制器替换它。 |
每个工具都接受可选的context参数,以便从单个服务器进程定位kubeconfig中的任何集群。
提示词
提示词在客户端中作为斜杠命令/菜单项出现,并使用上述工具引导模型完成工作流:
提示词 | 工作流 |
| 对降级/不同步的应用进行根因分析:条件 → 资源 → Pod日志 → 建议。 |
| 列出所有漂移的应用,评估每个待处理同步的风险,然后询问后再同步任何内容。 |
| 扫描节点、应用、Pod和警告事件;按严重程度报告发现。 |
快速开始
需要Node.js 20+。
git clone <your-repo-url> kubeaid-mcp
cd kubeaid-mcp
npm install
npm run buildClaude Code
claude mcp add kubeaid -- node "$(pwd)/dist/index.js"默认只读。要在保持生产环境不可触碰的同时启用写入:
claude mcp add kubeaid \
-e KUBEAID_MCP_ALLOW_WRITES=true \
-e KUBEAID_MCP_PROTECTED_CONTEXTS=prod-cluster-1,prod-cluster-2 \
-- node "$(pwd)/dist/index.js"Claude Desktop
启用设置 → 开发者 → 本地MCP服务器,然后添加到该页面打开的配置文件中:
{
"mcpServers": {
"kubeaid": {
"command": "node",
"args": ["/absolute/path/to/kubeaid-mcp/dist/index.js"],
"env": {
"KUBEAID_MCP_ALLOW_WRITES": "true",
"KUBEAID_MCP_PROTECTED_CONTEXTS": "prod-cluster-1"
}
}
}
}之后完全退出并重新打开应用。
配置
所有配置都是环境变量,在启动时读取一次:
变量 | 默认值 | 含义 |
| client-node默认查找( | Kubeconfig路径。 |
| 跟随当前上下文实时变化 | 固定默认上下文。未设置时, |
|
| 保存ArgoCD的 |
|
| 是否注册变更工具。 |
| 无 | 逗号分隔的上下文,即使启用了写入,也拒绝所有变更调用。 |
安全模型
三个独立的层:
能力门控 — 禁用写入(默认)时,变更工具永远不会注册,因此模型甚至无法看到它们。
受保护的上下文 — 每个变更处理器都会根据
KUBEAID_MCP_PROTECTED_CONTEXTS重新检查目标上下文,并拒绝受保护的上下文,无论模型要求什么。客户端确认 — 工具带有MCP
readOnlyHint/destructiveHint注释,因此行为良好的客户端会在风险调用前提示你。
服务器本身不持有任何凭据;它只能执行你的kubeconfig身份通过RBAC已被授权执行的操作。
开发
npm run typecheck # strict TS, no emit
npm run build # compile to dist/
npm run smoke # spawn the server, MCP handshake, list tools + prompts
KUBEAID_MCP_ALLOW_WRITES=true npm run smoke # verify write tools register冒烟测试不需要集群——它通过stdio驱动原始JSON-RPC协议。
路线图
check_chart_updates:将部署的图表版本与上游KubeAidargocd-helm-charts目录进行比较。密封秘密辅助工具:列出
SealedSecret状态,标记失败的解封。Prometheus/Alertmanager工具:从KubeAid附带的kube-prometheus堆栈中显示触发的警报。
致谢
许可证
MIT © 2026 Deep Poharkar
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/deep-poharkar/kubeaid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server