mcpField
K
Kubeopt

Kubeopt

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

关于 Kubeopt

KubeOpt 分析 Kubernetes 集群成本并给出优化建议,适用于 AKS、EKS 和 GKE 环境。它提供可执行的实施计划和 kubectl 命令,并通过 MCP 工具让客户端查询集群成本与分析结果。

主要功能

  1. 01分析 AKS、EKS 和 GKE 成本
  2. 02运行 16 种优化算法
  3. 03计算资源成本与潜在节省
  4. 04生成优化计划和 kubectl 命令
  5. 05按 Pod 查看成本明细
  6. 06提供只读 GitHub Actions 扫描

适用场景

  1. 01查找集群成本节省机会
  2. 02评估工作负载的资源配置
  3. 03查看特定命名空间的 Pod 成本
  4. 04在拉取请求中汇报成本扫描结果

MCP 相关

MCP 服务通过 stdio 暴露 6 个工具,可列出集群、查询成本汇总和分析、获取建议及 Pod 成本,并触发新分析。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

KubeOpt

License Python GitHub Marketplace GitHub stars GitHub forks

Kubernetes 成本工程师

KubeOpt 会分析你的 Kubernetes 集群,找出成本优化机会,并生成可执行的实施计划,其中包含可直接复制粘贴的 kubectl 命令。

支持 Azure AKS、AWS EKS 和 Google GKE。


功能介绍

  • 连接云服务提供商 API 和 Kubernetes 集群
  • 运行 16 种优化算法(资源规格优化、HPA、存储、网络、节点池、异常检测)
  • 按资源计算实际成本与最优成本,并给出具体的节省金额
  • 生成为期 3 周的实施计划,其中包含可直接执行的 kubectl 命令
  • 提供包含成本明细、工作负载分析和优化评分的仪表板

GitHub Action

在每个拉取请求上或按计划运行 Kubernetes 成本扫描。该 Action 会将节省金额摘要作为 PR 评论发布(重新运行时会更新已有评论),并将结果写入 GitHub Step Summary。

每个 PR 中包含:

## KubeOpt Cost Scan — 2026-04-27

| Cluster          | Provider | Monthly Spend | Savings Available |
|------------------|----------|---------------|-------------------|
| prod-eks-us-east | AWS      | $4,120        | $890/mo           |
| staging-aks-weu  | Azure    | $1,340        | $210/mo           |

**Total potential savings: $1,100/mo**

<details>
<summary>Top opportunities</summary>

1. $540/mo — prod-eks-us-east — Rightsize 6 over-provisioned node groups
2. $350/mo — prod-eks-us-east — Enable HPA on 4 deployments with static replicas
3. $210/mo — staging-aks-weu  — Remove 3 idle nodes outside business hours

</details>

设置 — 两个步骤:

1. 添加机密(Settings → Secrets and variables → Actions):

机密值
KUBEOPT_URLKubeOpt 实例的 URL(例如 https://demo.kubeopt.com)
KUBEOPT_USERNAMEKubeOpt 用户名
KUBEOPT_PASSWORDKubeOpt 密码

2. 创建 .github/workflows/cost-scan.yml:

name: K8s Cost Scan

on:
  pull_request:
    types: [opened, synchronize]
  schedule:
    - cron: '0 8 * * 1'   # Every Monday at 08:00 UTC
  workflow_dispatch:

permissions:
  contents: read
  pull-requests: write

jobs:
  cost-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: kubeopt/kubeopt@v1
        with:
          kubeopt-url:      ${{ secrets.KUBEOPT_URL }}
          kubeopt-username: ${{ secrets.KUBEOPT_USERNAME }}
          kubeopt-password: ${{ secrets.KUBEOPT_PASSWORD }}

该 Action 仅执行读取操作,不会修改你的集群。PR 评论会被更新,因此重新运行时会更新现有评论,而不是添加新评论。

完整的输入、输出和高级用法


Claude AI 集成(MCP)

用通俗的语言向 Claude 询问 Kubernetes 成本。

KubeOpt 附带一个 MCP 服务(mcp_server/),通过 stdio 传输方式提供 6 个工具。连接后,Claude Desktop、Cursor 或 Windsurf 可以直接查询集群数据,无需复制粘贴仪表板内容。

提供的工具:

工具功能
list_clusters列出所有包含成本数据的受监控集群
get_cost_summary汇总所有集群的整体成本
get_cluster_analysis分析特定集群的详细信息
get_recommendations按节省金额影响排序的可执行建议
analyze_cluster触发新的分析并轮询,直到分析完成
get_pod_costs按 Pod 展示成本明细,可按命名空间筛选
前提条件
  • KubeOpt 正在本地运行(python main.py)或已部署到 Railway
  • 已安装依赖项的 Python 虚拟环境(pip install -r requirements.txt)
Claude Desktop

编辑 ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "kubeopt": {
      "command": "uvx",
      "args": ["kubeopt-mcp"],
      "env": {
        "KUBEOPT_API_URL": "https://your-kubeopt-instance.com",
        "KUBEOPT_USERNAME": "kubeopt",
        "KUBEOPT_PASSWORD": "your-password"
      }
    }
  }
}

保存后重启 Claude Desktop。

Cursor

打开 Cursor Settings → MCP 并添加新的服务条目:

{
  "kubeopt": {
    "command": "uvx",
    "args": ["kubeopt-mcp"],
    "env": {
      "KUBEOPT_API_URL": "https://your-kubeopt-instance.com",
      "KUBEOPT_USERNAME": "kubeopt",
      "KUBEOPT_PASSWORD": "your-password"
    }
  }
}
Windsurf / Codeium

编辑 ~/.codeium/windsurf/mcp_config.json(如果文件不存在,请创建):

{
  "mcpServers": {
    "kubeopt": {
      "command": "uvx",
      "args": ["kubeopt-mcp"],
      "env": {
        "KUBEOPT_API_URL": "https://your-kubeopt-instance.com",
        "KUBEOPT_USERNAME": "kubeopt",
        "KUBEOPT_PASSWORD": "your-password"
      }
    }
  }
}

保存后重启 Windsurf。

示例提示词
What are my top 3 cost savings opportunities across all clusters?
Which pods are costing the most in the production namespace?
Give me a summary of total Kubernetes spend this month.
What's the optimization score for my staging cluster?
Trigger a fresh analysis on cluster prod-aks-eastus and report back.

了解更多协议信息:modelcontextprotocol.io


GitHub Action — 完整参考

在每个拉取请求上或按计划运行 Kubernetes 成本扫描。该 Action 会将摘要作为 PR 评论发布(重新运行时会更新已有评论),并将结果写入 GitHub Step Summary。

每个 PR 中包含:

## KubeOpt Cost Scan — 2026-04-27

| Cluster          | Provider | Monthly Spend | Savings Available |
|------------------|----------|---------------|-------------------|
| prod-eks-us-east | AWS      | $4,120        | $890/mo           |
| staging-aks-weu  | Azure    | $1,340        | $210/mo           |

**Total potential savings: $1,100/mo**

<details>
<summary>Top opportunities</summary>

1. $540/mo — prod-eks-us-east — Rightsize 6 over-provisioned node groups
2. $350/mo — prod-eks-us-east — Enable HPA on 4 deployments with static replicas
3. $210/mo — staging-aks-weu  — Remove 3 idle nodes outside business hours

</details>
设置

1. 将机密添加到仓库

前往 设置 → 机密和变量 → 操作,然后添加:

机密值
KUBEOPT_URLKubeOpt 实例的 URL(例如 https://demo.kubeopt.com)
KUBEOPT_USERNAMEKubeOpt 用户名
KUBEOPT_PASSWORDKubeOpt 密码

2. 创建 .github/workflows/cost-scan.yml

name: K8s Cost Scan

on:
  pull_request:
    types: [opened, synchronize]
  schedule:
    - cron: '0 8 * * 1'   # Every Monday at 08:00 UTC
  workflow_dispatch:

permissions:
  contents: read
  pull-requests: write

jobs:
  cost-scan:
    name: KubeOpt Cost Scan
    runs-on: ubuntu-latest
    steps:
      - name: Run KubeOpt cost scan
        id: kubeopt
        uses: kubeopt/kubeopt@v1
        with:
          kubeopt-url:      ${{ secrets.KUBEOPT_URL }}
          kubeopt-username: ${{ secrets.KUBEOPT_USERNAME }}
          kubeopt-password: ${{ secrets.KUBEOPT_PASSWORD }}
          top:              5
          post-comment:     ${{ github.event_name == 'pull_request' && 'true' || 'false' }}

      - name: Print savings to log
        if: always()
        run: echo "Total savings available: ${{ steps.kubeopt.outputs.total-savings }}/mo"
输入
输入必填默认值说明
kubeopt-url是KubeOpt 实例的 URL
kubeopt-username是kubeoptKubeOpt 用户名
kubeopt-password是KubeOpt 密码
cluster-id否(所有集群)仅扫描指定集群
top否5显示的最佳节省机会数量
post-comment否true将结果作为 PR 评论发布
输出
输出说明
total-savings每月潜在节省总额(美元)
scan-summary完整的 Markdown 摘要(可在后续步骤中使用)
扫描指定集群
- uses: kubeopt/kubeopt@v1
  with:
    kubeopt-url:      ${{ secrets.KUBEOPT_URL }}
    kubeopt-username: ${{ secrets.KUBEOPT_USERNAME }}
    kubeopt-password: ${{ secrets.KUBEOPT_PASSWORD }}
    cluster-id:       prod-eks-us-east-1
    top:              10
备注
  • 此操作会在运行时检出 kubeopt/kubeopt@v1 以执行扫描。无需本地安装。
  • PR 评论采用更新或新增的方式:重新运行此操作时会更新现有评论,而不是添加新评论。
  • 发布评论需要 pull-requests: write 权限。
  • 此操作不会修改集群,只会读取数据。

架构

                         KubeOpt Platform
 +----------------------------------------------------------+
 |                                                          |
 |   React SPA (Recharts)     FastAPI REST API (v2)         |
 |   frontend/dist/           presentation/api/v2/          |
 |                                                          |
 +---------------------------+------------------------------+
                             |
          +------------------+------------------+
          |                  |                  |
  +-------v------+  +-------v------+  +--------v-------+
  |  Algorithms  |  |  Analytics   |  |  ML Models     |
  |  (16 modules)|  |  Collectors  |  |  Anomaly Det.  |
  |  rightsizing |  |  Processors  |  |  CPU Optimizer |
  |  HPA, storage|  |  Scorer      |  |  Workload Cls  |
  +--------------+  +--------------+  +----------------+
          |                  |                  |
  +-------v------------------v------------------v-------+
  |              Cloud Provider Abstraction              |
  |  6 interfaces: Auth, Executor, Metrics, Costs,      |
  |                Accounts, Inspector                   |
  +---+-----------------+-----------------+-------------+
      |                 |                 |
  +---v---+        +----v----+       +----v----+
  | Azure |        |   AWS   |       |   GCP   |
  | (AKS) |        |  (EKS)  |       |  (GKE)  |
  +-------+        +---------+       +---------+
托管服务(不在此仓库中)
服务用途端点
计划生成生成优化计划plan.kubeopt.com
AI 聊天对话式集群分析ai.kubeopt.com
许可证管理器许可证验证license.kubeopt.com

这些服务需要 PRO 或 ENTERPRISE 许可证。核心分析引擎无需这些服务即可运行。

快速开始

前提条件
  • Python 3.11+
  • Node.js 18+(用于构建前端)
  • 云服务提供商凭据(Azure、AWS 或 GCP)
本地运行
# Clone and install
git clone https://github.com/kubeopt/kubeopt.git
cd kubeopt
pip install -r requirements.txt

# Set up credentials (copy and fill in your values)
cp .env.example .env

# Build frontend
cd frontend && npm install && npm run build && cd ..

# Run
python main.py
# Open http://localhost:5001
使用 Docker 运行
docker build -t kubeopt .
docker run -p 5001:5001 --env-file .env kubeopt
通过 CLI 运行
npx kubeopt clusters          # List clusters
npx kubeopt analyze <id>      # Run analysis
npx kubeopt report <id>       # View report

云服务提供商设置

Azure(AKS)

设置以下环境变量:

AZURE_SUBSCRIPTION_ID=your-subscription-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
AZURE_TENANT_ID=your-tenant-id

需要具有 Reader 角色的 Service Principal。请参阅 docs/setup/AZURE-SETUP.md。

AWS(EKS)
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_DEFAULT_REGION=us-east-1

需要具有 EKS、Cost Explorer 和 CloudWatch 读取权限的 IAM 用户。

Google Cloud(GKE)
GCP_SERVICE_ACCOUNT_KEY={"type":"service_account",...}
GCP_BILLING_DATASET=your_billing_dataset
GCP_BILLING_ACCOUNT_ID=your-billing-account-id

请参阅 docs/setup/GCP-BILLING-SETUP.md。

项目结构

kubeopt/
  algorithms/          16 optimization algorithm modules
  analytics/           Cost collectors, processors, cluster scorer
  application/         Orchestrator, command generators
  infrastructure/
    cloud_providers/   Azure, AWS, GCP adapters (6 interfaces each)
    services/          Auth, caching, license validation, settings
    persistence/       Database, analysis engine
  machine_learning/    Anomaly detection, CPU optimizer, workload classifier
  presentation/
    api/v2/            FastAPI routers, schemas, dependencies
  frontend/            React SPA (TypeScript, Recharts, Tailwind)
  shared/
    standards/         16 YAML-based optimization standards
    config/            Application configuration
  mcp_server/          MCP server (6 tools, stdio transport)

技术栈

组件技术
后端Python 3.11+、FastAPI、uvicorn
前端React 19、TypeScript、Vite、Recharts、Tailwind CSS
机器学习Pandas、NumPy、Scikit-learn
云服务Azure SDK、boto3、google-cloud SDK
数据库SQLite(开发)、PostgreSQL(生产)
部署Docker、Railway、Kubernetes

许可证

Apache License 2.0。请参阅 LICENSE。

核心分析引擎为开源软件,可免费使用。计划生成和 AI 聊天属于托管服务,需要 PRO 或 ENTERPRISE 许可证。

贡献

请参阅 CONTRIBUTING.md 了解相关指南。

安全

如需报告安全漏洞,请发送邮件至 [email protected]。请参阅 SECURITY.md。


由 Nivaya Technologies 构建

评论

支持 Markdown

第一次接触 MCP?

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

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