finops-copilot
クラスターを最適化するAI — そして本番環境を壊させないプラットフォーム
問題: 「AIにインフラを触らせる」ことは、自信過剰なモデルが 午前3時に本番を1レプリカにスケールダウンさせるための絶好の方法です。エージェンティック運用における 面白いエンジニアリングはモデルではなく、ガードレールです。解決策: AIにクラスターへの 型付けされ、境界のあるインターフェースをMCP経由で与え、セーフティロジックをサーバーサイドに 置くことで、モデルが迂回できなくします。AIは何を変更するかを決定し、プラットフォームは何が 許可されているかを決定します。そして、直接頼まれてもそれ以外のことを拒否します。
Model Context Protocol (MCP) サーバーは、稼働中のKubernetesクラスター上で5つのFinOpsツールを公開します。Claude(または任意のMCPクライアント — Claude Desktopなど)は、それらを使って過剰にプロビジョニングされたワークロードを特定し、適正化を提案します。変更を伴う呼び出しはすべて、何かが起こる前にポリシーでチェックされ、デフォルトでドライランになります。安全でない変更 — 保護されたprod名前空間、リソースの下限、過度に大幅な削減 — はサーバーによって拒否され、監査ログに書き込まれます。
完全にラップトップ上で動作します:kindクラスター(意図的に無駄なワークロードを配置)、約120行のMCPサーバー、そしてデフォルトでオフラインで動作するコパイロットドライバー(決定論的なモックなので、APIキーなしでもCIでも動作します)。ANTHROPIC_API_KEYが設定されている場合は実際のClaudeでも動作します。
何をするか
Claude / MCP client
│ calls typed tools
▼
┌─────────────── MCP server (finops-copilot) ───────────────┐
│ list_namespaces list_workloads estimate_cost │
│ recommend_rightsizing get_audit_log │
│ │
│ apply_rightsizing(…, dry_run=True) │
│ │ │
│ ▼ ┌─────────── policy.py (guardrails) ────────┐ │
│ every │ protected namespaces? resource floors? │ │
│ apply ─┤ max single-step cut? → REFUSE + audit │ │
│ └───────────────────────────────────────────┘ │
└────────────────────────┬──────────────────────────────────┘
│ kubectl (read specs / patch)
▼
kind cluster: staging (waste) · prod (protected)要素 | 重要な理由 | ここでの動作 |
MCP、生のkubectlではない | AIは型付けされ、監査可能なアクションを取得し、制限のないシェルは取得しない | スキーマを持つ5つのツール。クラスターに触れるのはサーバーだけです |
ガードレールはサーバーサイド | モデルがプロンプトで迂回できない安全性 |
|
デフォルトでドライラン | 安全なことがデフォルトである |
|
すべてが監査される | 「AIは何をしようとしたのか?」に答えがある | 適用(許可、拒否、ドライランのいずれも)はすべて、クライアントが読み取れる監査ログに追記されます |
Related MCP server: kube-lint-mcp
実行方法
make up # kind cluster seeded with waste + Python env (MCP deps)
make demo # the copilot finds & cuts waste — OFFLINE, no API key needed
make demo-claude # real Claude drives the same MCP tools (needs ANTHROPIC_API_KEY)
make test # unit-test the guardrail policy (no cluster needed)
make down # delete the clustermake demo は、実際のMCPサーバー上で決定論的モックコパイロットを実行します。Claude経路と同じツール、同じガードレールを使用するため、キーなしでもCIでも動作します。make demo-claude はモックを、ツールをエージェンティックに駆動するClaude(公式Anthropic SDKとそのMCPツールランナー)に置き換えます。
デモが示すこと(実際の出力)
4つのワークロード(3つは極端に過剰なリソースが割り当てられ、1つは健全)と保護されたprodを配置したstaging名前空間に対して:
無駄を発見します。 現在のリクエストでは
stagingは約$138/月かかります。このツールはCPU使用率1〜4%の3つのワークロードにフラグを立て、CPUとレプリカの削減を提案します。約$102/月(73%) の節約が見込めます。まずドライラン。 すべての変更は、正確な差分と月間節約額を示すドライランです。明示的な非ドライランの呼び出しなしには何も適用されません。
プラットフォームは本番を拒否します。
prodも削減するよう求められた場合、サーバーは拒否します —namespace 'prod' is protected。AIが求め、ガードレールがノーと言いました。ドライランでさえ、変更は一切ありません。プラットフォームは過度に大幅な削減を拒否します。 CPUリクエストを
10mにまで切り詰めるよう求められた場合、サーバーは拒否します — 下限を下回っており、90%超の一度の削減だからです。すべてのアクションがログに記録されます。 監査証跡には、5つの試行すべて(ドライラン3件、拒否2件)とその理由が表示されます。
AIは無駄を発見し、削減を提案しました。プラットフォームは何が許可されているかを決定しました。 この役割分担こそが要点です。
Claude Desktopから使う(実際のMCP)
これは実際のMCPサーバーです — 任意のMCPクライアントをこのサーバーに向けてください。Claude Desktopの場合は、claude_desktop_config.jsonに追加します:
{
"mcpServers": {
"finops": {
"command": "/path/to/mcp-finops-copilot/.venv/bin/python",
"args": ["-m", "finops.server"],
"env": { "FINOPS_CTX": "kind-mcp-finops" }
}
}
}次にClaudeにこう尋ねます: 「私のstaging名前空間のコストはいくらですか?安全に適正化できるものは何ですか?」
本番環境への対応
デモ | 本番 |
kind、 | 実際のDeploymentsを使ったEKS / AKS / GKE |
シードされたアノテーションからの使用率 | Prometheus / metrics-server( |
| あなたの組織のガードレール — RBACスコープ、PodDisruptionBudgets、変更ウィンドウ |
インメモリの監査ログ | あなたの監査シンク(stdout → Loki、イベントテーブルなど) |
例示的なコストレート | あなたのプロバイダーの実際のvCPUあたり / GBあたりの料金 |
レイアウト
finops/policy.py the guardrail layer — pure, unit-tested (make test)
finops/cost.py cost model + right-sizing heuristic
finops/kube.py kubectl read/patch helpers
finops/server.py the MCP server: 5 tools, dry-run-by-default, audited
copilot/mock_agent.py deterministic offline copilot (CI-safe)
copilot/llm_agent.py real Claude via the Anthropic SDK's MCP tool-runner
copilot/driver.py picks mock vs Claude by ANTHROPIC_API_KEY
k8s/ staging (seeded waste) + prod (protected)MITライセンスです。ラップトップで実行可能な、NDAに抵触しない小さなデモで、ひとつの鋭いアイデアを証明します: エージェンティック運用はガードレールの問題である。AIには実際のアクションを与えなさい。ただし、ノーと言うのはプラットフォームにしなさい。
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for AWS cloud spend: service breakdowns, anomalies, savings and forecasts.
FinOps MCP: query allocated, correlated cloud and AI cost across AWS, GCP, Azure and Snowflake.
Cloudflare Workers MCP server: ai-cost-optimizer
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA powerful and flexible Kubernetes MCP server implementation with support for OpenShift.2,141GoApache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server to lint and validate Kubernetes-related manifests(Helm, FluxCD, ArgoCD, Kustomize, etc.)95 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceProduction-grade MCP server for enterprise Azure cost optimization, enabling spend anomaly detection, multi-tenant auditing, budget validation, and compliance-aware recommendations.1MIT
- AlicenseNot gradedqualityCmaintenanceAn open source MCP server empowering SREs with intelligent observability, predictive analytics, and AI-driven automation across Kubernetes, OpenShift, and Tekton environments.11Apache 2.0