Token导航 LogoToken导航TokenDH.com
rootcause (Yindia) logo
运维云端stdio官方级别未说明来源级核验

rootcause (Yindia)

MCP Server

RootCause是一款面向Kubernetes的AI原生SRE工具,提供事件分析、诊断和安全操作功能。

工具数

0

提示词数

0

GitHub Stars

31

资源数

0
KubernetesClaude云端部署ClaudeCursorWindsurf

安装说明

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

作者 / 组织

yindia

提供方

yindia

最后核验

2026/5/17 20:19

运行时

Docker

快速接入

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

命令预览

docker run --rm -it rootcause:local

详细介绍

根本原因🧭

![Go](https://go.dev/) ![MCP](https://modelcontextprotocol.io/) ![codecov](https://codecov.io/gh/yindia/rootcause)

Kubernetes事件的AI原生SRE。

RootCause是一个本地优先的MCP服务器,它将自然语言请求转化为证据支持的事件分析、Kubernetes诊断和更安全的操作。

RootCause内置Go作为单个二进制文件,使用您现有的kubeconfig标识针对低摩擦本地工作流进行了优化。

______________________________________________________________________

🚀 快速开始 | 🌐 客户端设置 | 🛠️ 工具 | 🧩 技能 | 🔒 安全 | ⚙️ 配置 | 🏗️ 建筑 | 🤝 贡献

______________________________________________________________________

为什么根本原因💡

RootCause是为SRE/操作员工作流程构建的,在这些工作流程中,速度很重要,但不安全的自动化是不可接受的。

  • 🚀 停止上下文切换:从一个MCP服务器调查事件、推出风险、Helm/Terraform/AWS信号和补救措施。
  • 🧠 人工智能驱动的诊断:证据优先分析,包括RCA、时间表和以行动为导向的下一步检查。
  • 💸 内置成本优化:将资源使用、工作负载最佳实践检查、Terraform计划分析和云上下文相结合,以做出优化决策。
  • 🔒 企业级护栏:角色/命名空间策略执行、编校、只读模式、破坏性工具控制和变异预检。
  • ⚡ 零学习曲线:提出自然语言操作问题,并使用提供的常见SRE流程提示模板。
  • 🌐 通用兼容性:可与Claude、Cursor、Copilot、Codex等兼容MCP的客户端配合使用。
  • 🏭 生产级工作流程:单Go二进制、kubeconfig原生认证、确定性结构化输出和广泛的测试覆盖率。

为什么团队选择它

需要根本原因答案
“发生了什么变化,为什么会破裂?”rootcause.incident_bundle, rootcause.change_timeline, rootcause.rca_generate
“现在重新启动或推出是否安全?”k8s.restart_safety_check, k8s.best_practice, k8s.safe_mutation_preflight
“我的平台生态系统健康吗?”k8s.*_detect + k8s.diagnose_* ArgoCD/Flux/证书管理器/Kyverno/看门人/Cilium
“我可以标准化SRE响应吗?”提示模板+共享呈现/证据管道的结构化输出

你能做什么?

用自然语言询问你的AI助手:

  • “为什么这次部署在推出后失败了?”
  • “现在重新启动此工作负载安全吗?”
  • “为什么ArgoCD应用程序不同步?”
  • “Flux在这个集群中是否健康?”
  • “为什么证书无法续订?”
  • “在贴片/应用之前,这种突变安全吗?”

RootCause保持其深度优先模式:证据优先诊断、根本原因分析和补救流程,而不是原始工具蔓延。

高级用户可以将这些提示映射到此README中的具体工具(Complete Feature Set, Toolchains,以及 Tools 部分)。

用例

事件响应

  • 通过以下方式构建端到端的事件证据 rootcause.incident_bundle
  • 通过以下方式生成可能的原因 rootcause.rca_generate
  • 导出时间线和尸检工件以供后续跟进

突变前的安全操作

  • 评估推出/重启风险 k8s.restart_safety_checkk8s.best_practice
  • k8s.safe_mutation_preflight 在应用/修补/删除/缩放操作之前

生态系统特定健康检查

  • ArgoCD:检测安装并诊断同步/健康漂移
  • Flux:检测控制器并诊断协调故障
  • cert manager/Kyverno/Gatekeeper/Cilium:检测足迹并诊断控制平面或策略问题

功能亮点

区域根本原因能力
事故分析rootcause.incident_bundle, rootcause.rca_generate, rootcause.change_timeline, rootcause.postmortem_export, rootcause.capabilities
Kubernetes弹性k8s.restart_safety_check, k8s.best_practice, k8s.safe_mutation_preflight
生态系统诊断ArgoCD/Flux/cert manager/Kyverno/Gatekeeper/Cilium via *_detectdiagnose_* 工具
部署安全k8s变异操作前的自动预飞行
Helm操作图表搜索/列表/获取、发布差异、回滚顾问、模板应用/卸载流程
地形分析模块/提供者搜索+ terraform.debug_plan 用于影响/风险分析
服务网格和扩展使用共享证据模型的Linkerd/Istoi/Karpenter诊断

完整功能集

类别代表性能力
Kubernetes核心(k8s.*)CRUD、日志/事件、基于图形的调试流程、重启安全、最佳实践评分、突变预检
生态系统诊断ArgoCD、Flux、证书管理器、Kyverno、看门人、Cilium via *_detectdiagnose_*
事故情报(rootcause.*)事件包编排、时间线导出、RCA生成、补救行动手册、事后导出
Helm操作(helm.*)图表注册表搜索/列表/获取、发布状态/差异、回滚顾问、安装/升级/卸载、模板应用/卸载
地形分析(terraform.*)模块/提供者/资源/数据源发现+计划调试
服务网格(istio.*, linkerd.*)代理/配置/状态诊断、策略/路由可见性、网格资源健康状况
集群自动缩放(karpenter.*)配置、节点池/节点类、中断和调度诊断
云环境(aws.*)用于跨层事件分析的IAM、VPC、EC2、EKS、ECR、STS、KMS诊断
安全和控制只读模式、破坏性门控、明确确认、在变异K8s操作之前进行自动飞行前检查

代理技能

使用中的内置技能库,使用Kubernetes和RootCause专业知识扩展您的AI编码代理 skills/.

技能元数据经过模式版本控制,并嵌入到CLI中 internal/skills/catalog/manifest.json.

快速安装

# Copy all skills to Claude
cp -r skills/claude/* ~/.claude/skills/

# Or install a specific skill
cp -r skills/claude/k8s-helm ~/.claude/skills/

将技能同步到项目代理目录中

# List supported agent targets
rootcause sync-skills --list-agents

# Sync skills for one agent into project-local defaults
rootcause sync-skills --agent claude --project-dir .

# Example: GitHub Copilot project files
rootcause sync-skills --agent copilot --project-dir .

# UX helpers
rootcause sync-skills --all-agents --dry-run
rootcause sync-skills --agent claude --skill k8s-incident --skill rootcause-rca
rootcause sync-skills --list-skills

使用的代理目录默认值 sync-skills:

代理格式项目目录
克劳德代码SKILL.md.claude/skills/
光标.mdc.cursor/skills/
食品法典委员会SKILL.md.codex/skills/
Gemini CLISKILL.md.gemini/skills/
OpenCodeSKILL.md.opencode/skills/
GitHub副本Markdown.github/skills/
风帆冲浪Markdown.windsurf/skills/
德文Markdown.devin/skills/
助手SKILL.md.aider/skills/
源代码图科迪SKILL.md.cody/skills/
亚马逊QSKILL.md.amazonq/skills/

可用技能(21)

目前包括20种技能。

类别技能
事件响应k8s-incident, rootcause-rca
核心和运营k8s-core, k8s-operations
诊断和调试k8s-diagnostics, k8s-troubleshoot
部署和交付k8s-deploy, k8s-helm, k8s-rollouts
GitOps。 k8s-gitops
网络和网格k8s-networking, k8s-service-mesh, k8s-cilium
安全和政策k8s-security, k8s-policy, k8s-gatekeeper, k8s-certs
成本和规模k8s-cost, k8s-autoscaling
存储k8s-storage
浏览器自动化k8s-browser

支持的代理包括Claude、Cursor、Codex、Gemini CLI、GitHub Copilot、Goose、Windsurf、Roo、Amp等。

技能包括一致的触发器、工作流程步骤、工具参考、故障排除说明和输出合同。

skills/README.md 获取完整文档和 skills/CATALOG.md 用于自动生成目录输出。

MCP资源

将Kubernetes数据作为可浏览资源访问:

资源URI描述
kubeconfig://contexts列出所有可用的kubeconfig上下文
kubeconfig://current-context获取当前活动上下文
namespace://current获取当前命名空间
namespace://list列出所有命名空间
cluster://info获取群集连接信息
cluster://nodes获取详细的节点信息
cluster://version获取Kubernetes版本
cluster://api-resources列出可用的API资源
manifest://deployments/{namespace}/{name}获取部署YAML
manifest://services/{namespace}/{name}获取服务YAML
manifest://pods/{namespace}/{name}获取pod YAML
manifest://configmaps/{namespace}/{name}获取ConfigMap YAML
manifest://secrets/{namespace}/{name}获取秘密YAML(数据掩码)
manifest://ingresses/{namespace}/{name}获取ingress YAML

MCP提示

Kubernetes和平台操作的预构建工作流提示:

提示描述
troubleshoot_workloadPod/部署的全面故障排除指南
deploy_application分步部署工作流程
security_audit安全扫描和RBAC分析工作流程
cost_optimization资源优化和成本分析工作流程
disaster_recovery备份和恢复计划工作流程
debug_networking服务和连接的网络调试
scale_applicationHPA/VPA最佳实践扩展指南
upgrade_clusterKubernetes集群升级规划
sre_incident_commander基于严重性的SRE事件协调工作流程
istio_mesh_diagnose诊断Istio控制平面和流量策略问题
linkerd_mesh_diagnose诊断Linkerd控制平面、代理和策略运行状况
helm_release_recovery使用回滚策略恢复失败的Helm安装/升级
terraform_drift_triage调查地形漂移并制定安全计划
aws_eks_operational_checkEKS健康、节点组和IAM集成诊断
karpenter_capacity_debug调试Karpenter配置和调度问题

还支持自定义提示替代。解决顺序:

  1. MCP_PROMPTS_FILE
  2. ROOTCAUSE_PROMPTS_FILE
  3. [prompts].fileconfig.toml
  4. 默认文件: ~/.rootcause/prompts.toml, ~/.config/rootcause/prompts.toml, ./rootcause-prompts.toml

自定义提示文件示例:

[[prompt]]
name = "security_audit"
title = "Custom Security Audit"
description = "Org-specific security policy checks"
template = "Run custom security audit for {{namespace|all namespaces}} with CIS and policy controls"

  [[prompt.arguments]]
  name = "namespace"
  description = "Target namespace"
  required = false

自定义提示会用相同的内容覆盖内置程序 name.

核心能力

  • 🤖 强大的工具目录 -Kubernetes、生态系统诊断、事件工作流、Helm、Terraform、服务网格和AWS上下文。
  • 🎯 快速驱动的工作流程 -用于事故和可靠性分析的可重复runbook模板。
  • 📊 MCP资源支持 -kubeconfig、命名空间、集群和清单访问的可读资源URI。
  • 🔐 安全第一 -无损模式、策略执行、秘密屏蔽和突变飞行前检查。
  • 🏥 高级诊断 -以根本原因为导向的输出,包括证据和建议的下一步行动。
  • 🎡 强大的Helm+地形覆盖 -在一台服务器中进行图表生命周期和计划/调试分析。
  • 🔧 CLI首次操作 -单个二进制文件、本地kubeconfig使用和工具集级控件。

入门指南

1) 运行根本原因

go run . --config config.toml

2) 连接您的MCP客户端

使用stdio传输并将MCP客户端指向 rootcause 命令。

3) 尝试高信号提示

  • “为命名空间付款生成事件包,并总结可能的根本原因。”
  • “对部署支付api进行最佳实践检查,并列出关键发现。”
  • “在执行此应用操作之前,运行安全的突变预检。”

快速开始🚀

  1. 运行服务器:
go run . --config config.example.toml
  1. 使用现有的kubeconfig(默认)或指向一个:
  • 用途 KUBECONFIG 如果设置,否则 ~/.kube/config.
  • 覆盖 --kubeconfig--context.
  1. 使用stdio连接您的MCP客户端。

RootCause是为当地发展而建立的。此版本中不需要API密钥。

默认情况下,工作流程是安全的:首先以只读方式进行诊断,然后在执行任何写入操作之前运行mutation preflight。

______________________________________________________________________

安装

自制:

brew install yindia/homebrew-yindia/rootcause

卷曲安装:

curl -fsSL https://raw.githubusercontent.com/yindia/rootcause/refs/heads/main/install.sh | sh

去安装:

go install .

或者构建一个本地二进制文件:

go build -o rootcause .

支持的操作系统:macOS、Linux和Windows。

Windows构建示例:

go build -o rootcause.exe .

码头工人

# Build local image
docker build -t rootcause:local .

# Run stdio mode (default)
docker run --rm -it rootcause:local

# Run HTTP transport
docker run --rm -p 8000:8000 rootcause:local --transport http --host 0.0.0.0 --port 8000 --path /mcp

CI映像发布是通过GitHub Actions在中配置的 .github/workflows/docker.yml 并推送到GHCR(ghcr.io//rootcause)on main 并释放标签。

______________________________________________________________________

用法

使用配置文件运行:

rootcause --config config.toml

启用工具链的子集:

rootcause --toolsets k8s,istio

启用只读模式:

rootcause --read-only

将技能同步到特定于代理的项目目录中:

rootcause sync-skills --agent claude --project-dir .

______________________________________________________________________

MCP客户端设置🌐

所有MCP客户端都使用相同的核心价值观:

  • command: rootcause
  • args:通常 --config /path/to/config.toml
  • env:可选 KUBECONFIG

通用模板

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

所有支持的AI助手

克劳德桌面版

文件: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

克劳德代码

文件: ~/.config/claude-code/mcp.json

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

光标

文件: ~/.cursor/mcp.json

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

GitHub副本(VS代码)

文件:VS代码 settings.json (启用MCP的构建)

{
  "mcp.servers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

OpenAI Codex/Codex CLI

格式可能因版本而异。等效的TOML条目:

[mcp.servers.rootcause]
command = "rootcause"
args = ["--config", "/Users/you/.config/rootcause/config.toml"]
env = { KUBECONFIG = "/Users/you/.kube/config" }

文件: ~/.config/goose/config.yaml

extensions:
  rootcause:
    command: rootcause
    args:
      - --config
      - /Users/you/.config/rootcause/config.toml

Gemini CLI

文件: ~/.gemini/settings.json

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

Roo代码/Kilo代码

文件: ~/.config/roo-code/mcp.json~/.config/kilo-code/mcp.json

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

帆板运动

文件: ~/.config/windsurf/mcp.json

{
  "mcpServers": {
    "rootcause": {
      "command": "rootcause",
      "args": ["--config", "/Users/you/.config/rootcause/config.toml"],
      "env": { "KUBECONFIG": "/Users/you/.kube/config" }
    }
  }
}

其他MCP兼容客户端

使用通用模板并将密钥映射到客户端的模式。

MCP客户端兼容性

与MCP兼容的AI助手无缝协作:

客户端状态客户端状态
克劳德桌面✅ 本地克劳德代码✅ 原住民
光标✅ 原生风帆✅ 原住民
GitHub副本✅ 原生OpenAI Codex✅ 原住民
Gemini CLI✅ 原住民✅ 原住民
Roo代码✅ 本地基洛代码✅ 原住民
amp✅ 兼容带来✅ 兼容的
OpenCode✅ 兼容Kiro命令行界面✅ 兼容
反重力✅ 兼容Clawdbot✅ 兼容
Droid(工厂)✅ 兼容任何MCP客户端✅ 兼容

验证设置(所有提供程序)

  1. 编辑MCP配置后重新启动客户端。
  2. 问:“列出RootCause工具”。
  3. 问:“跑 k8s.argocd_detect".
  4. 如果缺少工具,请进行验证 rootcause 路径, --toolsets,以及 KUBECONFIG.

建议的第一个提示(RootCause上下文)

  • “运行命名空间付款的事件包并总结根本原因。”
  • “在推出之前检查部署支付api重启安全性。”
  • “诊断命名空间ArgoCD中的ArgoCD运行状况。”
  • “在突变之前,先进行补丁操作。”

MCP客户端示例(stdio)

rootcause --config config.toml

指示MCP客户端运行上述命令并使用stdio传输。

______________________________________________________________________

操作员流程示例🧪

事件RCA流程

  1. “为命名空间付款创建事件包”
  2. “根据最新事件包生成RCA”
  3. “出口验尸稿”

此流程背后的工具:

  • rootcause.incident_bundle
  • rootcause.rca_generate
  • rootcause.postmortem_export

安全的部署流程

  1. “运行部署支付api的重启安全检查”
  2. “运行支付api的最佳实践检查”
  3. “运行突变预检以重新启动卷展”

此流程背后的工具:

  • k8s.restart_safety_check
  • k8s.best_practice
  • k8s.safe_mutation_preflight

生态系统诊断流程

  1. “检测此群集中的通量”
  2. “诊断命名空间通量系统中的通量协调健康状况”
  3. “总结首要问题和下一步行动”

此流程背后的工具:

  • k8s.flux_detect
  • k8s.diagnose_flux

______________________________________________________________________

工具链

默认启用:

工具链主要目的典型要求
k8s核心Kubernetes操作和诊断Kubernetesneneneba API访问
linkerdLinkerd健康和策略诊断Linkerd控制平面
karpenter节点配置和扩展诊断Karpenter控制器
istio服务网格配置和代理诊断Istio控制平面
helm图表注册表/发布工作流和差异Helm 3和集群访问
awsEKS/EC2/VPC/IAM/ECR/KMS/STS诊断AWS凭据
terraform注册表和计划影响分析Terraform工作流
rootcause事件包、RCA、时间线、事后导出Kubernetes访问
browser (可选)通过代理浏览器实现浏览器自动化MCP_BROWSER_ENABLED=true +代理浏览器安装

当控制平面不存在时,可选工具链返回“未检测到”。可以通过插件SDK注册其他工具链;看见 PLUGINS.md.

仅启用您需要的功能:

rootcause --toolsets k8s,helm,rootcause

可选:浏览器自动化(26个工具)

通过以下方式自动化基于web的Kubernetes操作 代理浏览器 整合。

快速设置:

# Install agent-browser
npm install -g agent-browser
agent-browser install

# Enable browser tools
export MCP_BROWSER_ENABLED=true
rootcause

您可以做什么:

  • 🌐 通过Ingress URL测试部署的应用程序
  • 📸 屏幕截图Grafana、ArgoCD或任何K8s仪表板
  • ☁️ 自动化云控制台操作(EKS、GKE、AKS)
  • 🏥 健康检查web应用程序
  • 📄 将监控仪表板导出为PDF
  • 🔐 使用持久会话测试身份验证流

26种可用工具: browser_open, browser_screenshot, browser_click, browser_fill, browser_test_ingress, browser_screenshot_grafana, browser_health_check还有19个。

完整列表: browser_open, browser_screenshot, browser_click, browser_fill, browser_test_ingress, browser_screenshot_grafana, browser_health_check, browser_snapshot, browser_get_text, browser_get_html, browser_evaluate, browser_pdf, browser_wait_for, browser_wait_for_url, browser_press, browser_select, browser_check, browser_uncheck, browser_hover, browser_type, browser_upload, browser_drag, browser_new_tab, browser_switch_tab, browser_close_tab, browser_close.

高级功能:

  • 云提供商:浏览器基础、浏览器使用
  • 持久浏览器配置文件
  • 远程CDP连接
  • 会话管理

______________________________________________________________________

工具

常见调试流程的提示模板位于 prompts/prompt.md.

核心Kubernetes(k8s.* +kubectl样式别名)

  • CRUD+发现: k8s.get, k8s.list, k8s.describe, k8s.create, k8s.apply, k8s.patch, k8s.delete, k8s.api_resources, k8s.crds
  • 操作+可观察性: k8s.logs, k8s.events, k8s.context, k8s.explain_resource, k8s.ping, k8s.events_timeline
  • 工作量操作和安全: k8s.scale, k8s.rollout, k8s.restart_safety_check, k8s.best_practice, k8s.safe_mutation_preflight
  • 生态系统检测: k8s.argocd_detect, k8s.flux_detect, k8s.cert_manager_detect, k8s.kyverno_detect, k8s.gatekeeper_detect, k8s.cilium_detect
  • 生态系统诊断: k8s.diagnose_argocd, k8s.diagnose_flux, k8s.diagnose_cert_manager, k8s.diagnose_kyverno, k8s.diagnose_gatekeeper, k8s.diagnose_cilium
  • 调试: k8s.overview, k8s.crashloop_debug, k8s.scheduling_debug, k8s.hpa_debug, k8s.vpa_debug, k8s.storage_debug, k8s.config_debug, k8s.permission_debug, k8s.network_debug, k8s.private_link_debug, k8s.debug_flow
  • 维护+拓扑: k8s.cleanup_pods, k8s.node_management, k8s.graph, k8s.resource_usage

Linkerd(linkerd.*)

  • linkerd.health, linkerd.proxy_status, linkerd.identity_issues, linkerd.policy_debug, linkerd.cr_status, linkerd.virtualservice_status, linkerd.destinationrule_status, linkerd.gateway_status, linkerd.httproute_status

Istio(istio.*)

  • istio.health, istio.proxy_status, istio.config_summary, istio.service_mesh_hosts, istio.discover_namespaces, istio.pods_by_service, istio.external_dependency_check
  • istio.proxy_clusters, istio.proxy_listeners, istio.proxy_routes, istio.proxy_endpoints, istio.proxy_bootstrap, istio.proxy_config_dump
  • istio.cr_status, istio.virtualservice_status, istio.destinationrule_status, istio.gateway_status, istio.httproute_status

卡彭特(karpenter.*)

  • karpenter.status, karpenter.node_provisioning_debug, karpenter.nodepool_debug, karpenter.nodeclass_debug, karpenter.interruption_debug

赫尔姆(helm.*)

  • 回购/注册: helm.repo_add, helm.repo_list, helm.repo_update, helm.list_charts, helm.get_chart, helm.search_charts
  • 发布操作: helm.list, helm.status, helm.diff_release, helm.rollback_advisor, helm.install, helm.upgrade, helm.uninstall, helm.template_apply, helm.template_uninstall

AWS IAM(aws.iam.*)

  • aws.iam.list_roles, aws.iam.get_role, aws.iam.get_instance_profile, aws.iam.update_role, aws.iam.delete_role
  • aws.iam.list_policies, aws.iam.get_policy, aws.iam.update_policy, aws.iam.delete_policy

AWS VPC(aws.vpc.*)

  • aws.vpc.list_vpcs, aws.vpc.get_vpc, aws.vpc.list_subnets, aws.vpc.get_subnet, aws.vpc.list_route_tables, aws.vpc.get_route_table
  • aws.vpc.list_nat_gateways, aws.vpc.get_nat_gateway, aws.vpc.list_security_groups, aws.vpc.get_security_group
  • aws.vpc.list_network_acls, aws.vpc.get_network_acl, aws.vpc.list_internet_gateways, aws.vpc.get_internet_gateway
  • aws.vpc.list_vpc_endpoints, aws.vpc.get_vpc_endpoint, aws.vpc.list_network_interfaces, aws.vpc.get_network_interface
  • aws.vpc.list_resolver_endpoints, aws.vpc.get_resolver_endpoint, aws.vpc.list_resolver_rules, aws.vpc.get_resolver_rule

AWS EC2(aws.ec2.*)

  • aws.ec2.list_instances, aws.ec2.get_instance, aws.ec2.list_auto_scaling_groups, aws.ec2.get_auto_scaling_group, aws.ec2.list_load_balancers, aws.ec2.get_load_balancer
  • aws.ec2.list_target_groups, aws.ec2.get_target_group, aws.ec2.list_listeners, aws.ec2.get_listener, aws.ec2.get_target_health
  • aws.ec2.list_listener_rules, aws.ec2.get_listener_rule, aws.ec2.list_auto_scaling_policies, aws.ec2.get_auto_scaling_policy, aws.ec2.list_scaling_activities, aws.ec2.get_scaling_activity
  • aws.ec2.list_launch_templates, aws.ec2.get_launch_template, aws.ec2.list_launch_configurations, aws.ec2.get_launch_configuration
  • aws.ec2.get_instance_iam, aws.ec2.get_security_group_rules, aws.ec2.list_spot_instance_requests, aws.ec2.get_spot_instance_request
  • aws.ec2.list_capacity_reservations, aws.ec2.get_capacity_reservation, aws.ec2.list_volumes, aws.ec2.get_volume, aws.ec2.list_snapshots, aws.ec2.get_snapshot, aws.ec2.list_volume_attachments
  • aws.ec2.list_placement_groups, aws.ec2.get_placement_group, aws.ec2.list_instance_status, aws.ec2.get_instance_status

AWS-EKSaws.eks.*)

  • aws.eks.list_clusters, aws.eks.get_cluster, aws.eks.list_nodegroups, aws.eks.get_nodegroup, aws.eks.list_addons, aws.eks.get_addon
  • aws.eks.list_fargate_profiles, aws.eks.get_fargate_profile, aws.eks.list_identity_provider_configs, aws.eks.get_identity_provider_config
  • aws.eks.list_updates, aws.eks.get_update, aws.eks.list_nodes, aws.eks.debug

AWS ECR(aws.ecr.*)

  • aws.ecr.list_repositories, aws.ecr.describe_repository, aws.ecr.list_images, aws.ecr.describe_images, aws.ecr.describe_registry, aws.ecr.get_authorization_token

AWS-STS(aws.sts.*)

  • aws.sts.get_caller_identity, aws.sts.assume_role

AWS公里(aws.kms.*)

  • aws.kms.list_keys, aws.kms.list_aliases, aws.kms.describe_key, aws.kms.get_key_policy

地形(terraform.*)

  • terraform.debug_plan
  • terraform.list_modules, terraform.get_module, terraform.list_module_versions, terraform.search_modules
  • terraform.list_providers, terraform.get_provider, terraform.list_provider_versions, terraform.get_provider_package, terraform.search_providers
  • terraform.list_resources, terraform.get_resource, terraform.search_resources
  • terraform.list_data_sources, terraform.get_data_source, terraform.search_data_sources

根本原因(rootcause.*)

  • rootcause.incident_bundle, rootcause.change_timeline, rootcause.rca_generate, rootcause.remediation_playbook, rootcause.postmortem_export, rootcause.capabilities

浏览器(browser_*,可选)

  • browser_open, browser_screenshot, browser_click, browser_fill, browser_test_ingress, browser_screenshot_grafana, browser_health_check
  • browser_snapshot, browser_get_text, browser_get_html, browser_evaluate, browser_pdf, browser_wait_for, browser_wait_for_url
  • browser_press, browser_select, browser_check, browser_uncheck, browser_hover, browser_type, browser_upload, browser_drag
  • browser_new_tab, browser_switch_tab, browser_close_tab, browser_close

Kubectl风格别名

  • kubectl_get, kubectl_list, kubectl_describe, kubectl_create, kubectl_apply, kubectl_delete, kubectl_logs, kubectl_patch, kubectl_scale, kubectl_rollout, kubectl_context, kubectl_generic, kubectl_top, explain_resource, list_api_resources, ping

______________________________________________________________________

安全模式

  • --read-only:从发现中删除appl/patch/delete/exec工具。
  • --disable-destructive:删除删除和有风险的写入工具,除非已分配(创建/缩放/卷展仍然可用)。
  • 修改工具记录在本自述文件中 Complete Feature SetSafety Modes.

默认安全策略:

  • 如果用户没有明确请求变异操作,则将该请求视为只读诊断。
  • 在分析过程中不要隐式运行变异工具。
  • 对于调查优先的工作流程,最好在中运行RootCause --read-only 模式。
  • K8s变异工具 create/apply/patch/delete/scale/rollout/cleanup_pods/node_management 运行自动 k8s.safe_mutation_preflight 执行前检查。

安全工作流程建议:

  1. 运行只读诊断(k8s.*_debug, k8s.*_detect, k8s.diagnose_*, rootcause.incident_bundle)
  2. k8s.safe_mutation_preflight 用于预期突变
  3. 仅在飞行前通过后执行突变 confirm=true

______________________________________________________________________

配置和标志

rootcause --config config.example.toml --toolsets k8s,linkerd,istio,karpenter,helm,aws

旗帜

  • --kubeconfig
  • --context
  • --toolsets (逗号分隔)
  • --config
  • --read-only
  • --disable-destructive
  • --transport (stdio|http|sse)
  • --host (适用于HTTP/SSE)
  • --port (适用于HTTP/SSE)
  • --path (适用于HTTP/SSE)
  • --log-level

如果 --config 未设置,RootCause将使用 ROOTCAUSE_CONFIG 环境变量(如果存在)。

______________________________________________________________________

AWS凭据

AWS IAM工具使用标准的AWS凭据链和区域解析。集 AWS_REGIONAWS_DEFAULT_REGION (默认为 us-east-1),可选地选择一个配置文件 AWS_PROFILEAWS_DEFAULT_PROFILE,并使用任何正常的凭据源(环境变量、共享配置/凭据文件、SSO或实例元数据)。

______________________________________________________________________

Kubeconfig分辨率

如果 --kubeconfig 未设置,RootCause遵循标准的Kubernetes加载规则:它使用 KUBECONFIG 如果存在,否则默认为 ~/.kube/config.

身份验证和授权仅在此版本中使用您的kubeconfig标识。

______________________________________________________________________

故障排除

未找到kubeconfig

  • 验证 KUBECONFIG~/.kube/config
  • 显式覆盖 --kubeconfig /path/to/config

MCP客户端中不可见的工具

  • 确认服务器正在运行,客户端指向 rootcause
  • 使用以下工具检查所选工具集 --toolsets
  • 如果使用 --read-only,变异工具将被设计隐藏

未检测到生态系统工具返回

  • 这通常意味着生态系统控制平面未安装在集群中
  • k8s._detect 首先,然后 k8s.diagnose_

飞行前阻断突变

  • k8s.safe_mutation_preflight 明确并检查未通过的检查
  • 修复策略/命名空间/资源问题,然后重试 confirm=true

______________________________________________________________________

建筑一瞥

AI Client
  -> MCP stdio server
  -> Tool registry (k8s/linkerd/istio/karpenter/helm/aws/terraform/rootcause)
  -> Shared internals (kube clients, evidence, policy, rendering, redaction)
  -> Target APIs (Kubernetes + cloud providers)

为什么这很重要:

  • 跨工具集的一致证据格式
  • 可重复使用的诊断,而不是重复的逻辑
  • 通过集中策略和飞行前检查实现更安全的操作

______________________________________________________________________

架构概述

RootCause围绕共享的Kubernetes管道和重用它的工具集进行组织。

  • 共享客户端(类型化、动态、发现、RESTMapper)在 internal/kube 并注入所有工具组。
  • 常见的安全措施 internal/policy (命名空间与集群实施和工具分配表)以及 internal/redact (标记/秘密编辑)。
  • internal/evidence 收集所有工具集使用的事件、所有者链、端点和pod状态摘要。
  • internal/render 强制执行一致的分析输出格式(根本原因、证据、下一步检查、检查的资源),并提供共享的描述助手。
  • 工具集在下面 toolsets/ 并注册命名空间工具(k8s.*, linkerd.*, karpenter.*, istio.*, helm.*, aws.iam.*, aws.vpc.*)通过共享的MCP注册表。

MCP服务器使用MCP Go SDK在stdio上运行,专为本地kubeconfig使用而设计。可选的集群内部署故意超出了阶段1的范围。

配置重新加载

发送SIGHUP以重新加载配置并重建工具注册表。 在Windows上,SIGHUP不受支持;重新启动进程以重新加载配置。

______________________________________________________________________

MCP传输

RootCause支持MCP stdio (默认), http (流式HTTP),以及 sse.

示例:

# stdio
rootcause --config config.toml --transport stdio

# HTTP (streamable)
rootcause --config config.toml --transport http --host 127.0.0.1 --port 8000 --path /mcp

# SSE
rootcause --config config.toml --transport sse --host 127.0.0.1 --port 8000 --path /mcp

今天的设计重点:

  • 人工智能辅助SRE工作流程的一流本地可靠性
  • 用于事件审查的确定性、可审计的输出
  • 安全的变异门,而不是默认的宽写行为

______________________________________________________________________

未来云就绪

AWS IAM支持现已可用。该工具集系统旨在添加更深层次的云集成(EKS/EC2/VPC/GCP/Azure),而无需更改核心MCP或共享Kubernetes库。

______________________________________________________________________

贡献指南🤝

我们欢迎代码、文档、测试和操作反馈。

贡献方式

  • 🐛 报告具有可重复步骤和预期行为的错误
  • 💡 提出具有具体操作员场景的功能
  • 🧪 改进安全、政策和生态系统诊断的测试
  • 🧩 通过共享SDK和内部库添加或改进工具集

贡献者工作流程

  1. 分叉并创建特征分支
  2. 通过测试实施重点变更
  3. 运行本地验证:
go test ./...
  1. 更新文档(README.md, prompts/prompt.md)如果行为改变
  2. 使用问题陈述、方法和验证说明打开PR

开发参考

  • 出资规则: CONTRIBUTING.md
  • 插件SDK和外部工具集: PLUGINS.md
  • 配置示例: config.toml
  • MCP评估线束: eval/README.md

PR质量检查表

  • \[\]行为符合用户/操作员的期望
  • \[\]保留安全模型(read-only破坏性浇口、飞行前)
  • \[\]为新行为添加/更新了测试
  • \[\]检查工具/文档的一致性(README.md)

目录标签

目录标签

KubernetesClaude云端部署Go本地部署事件分析AI诊断安全操作SRE工具

支持客户端

ClaudeCursorWindsurf

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotokenlocal-only

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

安装前确认

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

来源信息

继续浏览同类 MCP