mcpField
K
Kubeopt

Kubeopt

ローカル
github.com/kubeoptクラウド・インフラ125 週間前に更新

Kubeopt について

KubeOptは、AKS、EKS、GKE環境のKubernetesクラスターコストを分析し、最適化を提案します。実行可能な計画とkubectlコマンドを生成し、MCPツールからクライアントがコストや分析結果を照会できます。

主な機能

  1. 01AKS、EKS、GKEのコスト分析
  2. 0216種類の最適化アルゴリズム
  3. 03リソースコストと削減見込みを算出
  4. 04計画とkubectlコマンドを生成
  5. 05Podごとのコスト内訳を表示
  6. 06読み取り専用のGitHub Actionsスキャン

活用シーン

  1. 01クラスターのコスト削減機会を特定
  2. 02ワークロードのリソース割り当てを評価
  3. 03名前空間内のPodコストを確認
  4. 04プルリクエストでコストスキャンを報告

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、ストレージ、ネットワーク、ノードプール、異常検知)
  • リソースごとに具体的な削減額を示し、実際のコストと最適なコストを算出します
  • すぐに実行できる kubectl コマンド付きの 3 週間の実装計画を生成します
  • コストの内訳、ワークロード分析、最適化スコアを表示するダッシュボード

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>

セットアップ — 2 つのステップ:

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)

Kubernetes のコストについて、自然な英語で Claude に質問できます。

KubeOpt には、stdio トランスポートを介して 6 つのツールを公開する MCP サーバー(mcp_server/)が付属しています。接続すると、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. リポジトリにシークレットを追加する

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:
    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月間の節約可能額の合計(USD)
scan-summaryMarkdown 形式の概要全体(後続のステップで使用します)
特定のクラスターをスキャンする
- 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 ロールを持つサービスプリンシパルが必要です。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
MLPandas、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 が開発

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。