nable について
nable はコーディングエージェント向けのローカル優先 FinOps ツール兼コマンドガードです。インフラ起動前の料金を算出し、取り消せない操作には人の確認を求め、クラウドと AI の支出を調べます。
主な機能
- 01実行前のコマンド料金算出
- 02不可逆操作の人による承認
- 03ローカルのハッシュチェーン台帳
- 04AWS の無駄を読み取り専用で検出
- 05AI 支出の予算と内訳
活用シーン
- 01高額なインフラ起動の確認
- 02未承認の破壊的コマンドの防止
- 03アイドル状態の AWS リソースの発見
- 04プロジェクトやチーム別の AI 支出追跡
MCP 対応
nable は Claude、Cursor、VS Code でローカル MCP サーバーとして動作します。ガードは Claude Code、Cursor、Codex CLI の MCP ツール呼び出しも確認します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
nable
nable は、コーディングエージェントが実行する前に、その操作の料金を見積もります。無料、ローカルで動作、ワンコマンド。
nable は、Claude Code、Cursor、Codex CLI、GitHub Copilot、Gemini CLI、Cline でコーディングエージェントが実行しようとしているコマンドの前にチェックを挟みます(最初の3つでは MCP ツールの呼び出しにも対応します)。起動操作は実行前に定価で見積もられ、元に戻せない操作(削除、終了、コミットメント購入)は人間による確認で停止し、すべての判定がハッシュチェーン付きの台帳にローカルで記録されます。このガードにクラウドアカウント、API キー、ライセンスは不要です。
nable は、クラウドと AI のコストを管理するためのオープンソース(Apache-2.0)のローカルファーストな FinOps ツールでもあります。無料 API のみを使って AWS アカウント内の無駄を見つける読み取り専用スキャン、モデルごとの料金とセッションごとの上限を設定できる AI コーディングエージェントの利用料金管理、プロジェクト、チーム、ユーザーごとの AI コストの内訳を提供します。ターミナルで実行することも、Claude、Cursor、VS Code 内の MCP サーバーとして実行することもできます。nable が請求データを独自のサービスに送信することはありません。エディター内で質問した場合、すべての MCP ツールの結果と同様に、回答を求める内容はチャット相手のモデルに送信されます。
試してみる
uvx nable guard install # Claude Code, this project. --all: every agent found. --global: every project.
uvx nable guard try # see it first: four sample commands through the gate, nothing executed
エージェントが料金のかかる起動操作や削除操作を試みたときに返される内容(実際の出力。クラウドアカウントは不要です):
$ uvx nable guard check --command "aws ec2 run-instances --instance-type p4d.24xlarge --count 8"
ask nable guard: 8x p4d.24xlarge at $21.9576/hr (on-demand us-east-1 list price) is ~$128,233/mo. The +$128,233/mo impact is over your $500 auto threshold; a human should review it. Budget not checked: there is no spend figure on this machine yet; `nable budget refresh` computes one.
$ uvx nable guard check --command "terraform destroy -auto-approve"
ask nable guard: This would destroy infrastructure (`terraform destroy -auto-approve`). It cannot be undone; confirm to proceed.
Claude Code プラグインを使っていますか?インストールすると、追加の手順なしでガードが有効になります。
/plugin marketplace add getnable/finopsmcp
/plugin install nable@nable
nable guard off(または FINOPS_GUARD=off)を実行すると、nable のすべてのフックが一時停止し、nable guard on を実行すると再開します。エージェント自身が nable guard off を試みた場合は、先に確認を求められます。
Claude Code、Cursor、Copilot CLI では、ask を選ぶと、確認するまでエージェントが停止します。Codex CLI、Gemini CLI、Cline、Copilot のクラウドエージェントでは、コマンドが拒否され、理由が表示されます(エージェントごとの表は、下の「ガードフック」を参照してください)。しきい値未満の起動操作は表示されません。たとえば t3.micro は月額約 $8 で、デフォルトの月額 $500(FINOPS_POLICY_MAX_AUTO_USD)を下回ります。フックを読み込ませるため、インストール後にエージェントを再起動してください。
クラウドアカウントが必要なもの:料金の見積もりと確認には不要です。予算による停止、nable guard reconcile(CloudTrail)、下記のスキャンでは、自分のアカウントを読み取り専用で参照します。
すでに稼働しているものをスキャンする
uvx nable scan
nable scan · profile prod
account 3521… · this account only
scanning 17 regions …
us-east-1 ......... 17 findings
eu-west-1 ......... 1 finding
────────────────────────────────────────────
$659/mo recoverable
$350/mo 1 idle RDS instance (db.r5.xlarge MySQL, no connections in 14 days), eu-west-1
$210/mo 14 unattached EBS volumes (2.1 TB, gp2), us-east-1
$98.55/mo 3 idle NAT gateways, us-east-1
run `nable scan --spend` for the spend breakdown (uses Cost Explorer, ~$0.02)
お使いのマシンにすでにある AWS 認証情報を使用し、無料のクラウド API のみを読み取るため、スキャンによって料金が発生することはありません。uvx nable scan --demo は、アカウントがなくてもサンプルデータで実行できます。CI 用には --json を、より詳細な内訳を確認するには --spend を追加してください。
uvx nable commitments status は、アカウントが保有する RDS、EC2、ElastiCache、Redshift、OpenSearch、MemoryDB のリザベーションと Savings Plans、およびそれぞれの終了時期を、無料の読み取りで一覧表示します。--fail-within 30 を指定すると CI チェックとして実行されます(30 日以内に終了するものがある場合は終了コード 1、読み取れないものがある場合は 2)。examples/github-actions/commitments-status.yml は、GitHub OIDC で引き受ける読み取り専用ロールを使って毎週実行し、JSON を保存します。
その後、nable は次のことを行います。
- 支出を可視化します。 AWS、Azure、GCP、Kubernetes、15 の AI、データ、SaaS プロバイダーにわたる支出を、1 か所にまとめて表示します。
- 無駄を見つけます。(アイドル状態のサーバー、過剰なサイズのデータベース、放置されたストレージなど)それぞれの金額も示します。
- 承認を得て修正します。 プルリクエストを作成し、変更が実施されたことを確認して、削減額を測定します。CUR の明細項目で確認できる場合は請求額から、それ以外の場合は実効料金または定価から算出し、推定値として表示します。
- AI エージェントの予算を管理します。
nable ai-budgetはローカルログから Claude Code と Codex CLI の使用料金をモデルごとに算出し、セッション単位の上限を設定します。nable ai-costs --by project|team|userは OpenAI、Anthropic、LiteLLM、Langfuse の支出をプロジェクト、チーム、ユーザー別に分類します。

エディターで使う
uvx nable は Claude、Cursor、VS Code 内でローカル MCP サーバーとして実行されます。既存の Claude または Cursor のメンバーシップを利用するため、API キーもトークンごとの料金も不要です。その後、次のように質問できます。
- 「先月、AWS の請求額が急増したのはなぜですか?」
- 「OpenAI と Anthropic にいくら使っていますか?」
- 「どのインスタンスのサイズを縮小すべきですか?」
- 「月額 200 ドルを超える無駄があれば、Jira チケットを作成してください」
nable の比較
| nable | AWS Cost Explorer | Vantage / CloudHealth | Infracost | |
|---|---|---|---|---|
| オープンソース | はい(Apache-2.0) | いいえ(AWS の Billing MCP サーバーはオープンソースです) | いいえ | CLI は Apache-2.0、Infracost Cloud は SaaS です |
| データの保存場所 | お使いのマシン | AWS | ベンダーの SaaS | お使いのマシンまたは CI。リソースの価格は Infracost のホスト型価格 API を通じて取得します |
| 対応クラウド | AWS、Azure、GCP、Kubernetes | AWS のみ | マルチクラウド | IaC、あらゆるクラウド |
| AI と GPU の支出 | はい(OpenAI、Anthropic、Bedrock、Vertex AI、GPU) | AWS サービスのみ(Bedrock、SageMaker、GPU インスタンス) | Vantage:はい。CloudHealth:AI とトークンのダッシュボード | いいえ |
| Claude / Cursor / VS Code で動作 | はい(ローカル MCP) | AWS の Billing and Cost Management MCP サーバー | Vantage:ホスト型 MCP サーバー。CloudHealth:見つかりませんでした | Claude Code、Cursor などのエージェントプラグイン、IDE 拡張機能 |
| エージェントがコマンドを実行する前に価格を算出 | はい:Claude Code、Cursor、Codex CLI、Copilot、Gemini CLI、Cline のフックが起動時の価格を算出し、後戻りできない操作を停止し、すべての判定を記録します | いいえ | いいえ | コマンドのフックとしては対応していません。エージェントスキルは IaC の記述中に価格を算出し、CI はプルリクエストの価格を算出します |
| 無駄を解消 | プルリクエストを作成し、承認はユーザーが行います | いいえ | Vantage:承認を得て修正する FinOps エージェント。IaC のプルリクエストは見つかりませんでした | IaC コードのポリシー違反に対する AutoFix PR。稼働中のリソースの使用状況に基づくものではありません |
| 回答する内容 | エージェントがこれから使う費用、現在の支出と無駄 | AWS の支出 | マルチクラウドの支出 | デプロイ前の IaC 変更のコスト |
| 価格 | 無料(ローカル)。有料プランは定額で、支出額に対する割合ではありません | コンソールは無料。API はリクエスト 1 回あたり $0.01 | Vantage:追跡する支出額が月額 $2,500 までは無料、それ以降は有料。CloudHealth:有料 | CLI は無料。Infracost Cloud は有料 |
Infracost は、インフラストラクチャの変更を記述中およびプルリクエスト内で価格算出します。nable のガードは、どこから来たコマンドでも、エージェントがこれから実行しようとしているコマンドの価格を算出し、スキャンではすでに稼働しているリソースの無駄を検出します。他の製品の各行は 2026-10-13 に確認しました。出典は CAPABILITIES.md に記載されています。詳しい比較:nable と Vantage、CloudHealth との比較、Kubecost との比較。
エージェントガード
nable guard install は Claude Code にフックを追加します(--all を指定すると、見つかった対応エージェントすべて(Cursor、Codex CLI、GitHub Copilot、Gemini CLI、Cline)に追加します)。このフックは、インフラストラクチャの各コマンド、または Claude Code、Cursor、Codex の MCP 呼び出しが実行される前にチェックします。後戻りできない操作(破棄、終了、コミットメントの購入)は事前確認を求めます。また、起動は定価で価格を算出するため、月額約 $128k の run-instances(8x p4d.24xlarge)は、そのまま実行されるのではなく確認を求めます。EC2 Capacity Reservation も同様に価格を算出します。何も実行しなくても作成時点から課金されるためです。コミットメント期間が設定されている場合はコミットメントの購入として扱われ、ポリシーに従って確認を求めます。対象となる購入と対象外の購入は、CHANGELOG.md に記載されています。また、呼び出しのパターンも監視します。1 時間あたりに許可する月額ランレートの上限(FINOPS_POLICY_VELOCITY_CAP_USD。デフォルトは操作ごとのしきい値である月額 $500 の 4 倍)を設け、同じ作成処理の繰り返しをループとして検出します(同一の create-stack が 10 分間に 3 回実行されると確認を求めます)。すべての判定は、ハッシュチェーンで保護されたローカル台帳に記録されます。
最新の状態を保つ AI 予算。 Claude Code、Codex、または Cursor の支出上限が設定されている場合、ガードは各呼び出しをその上限と照らして判断します。Cursor の使用量は Admin API(CURSOR_ADMIN_API_KEY)から取得します。フックがネットワーク応答を待つことはなく、保存されたデータが 1 時間以上古くなるとバックグラウンドで更新し、その旨を通知します(FINOPS_GUARD_BACKGROUND_REFRESH=0 で無効にできます)。FINOPS_GUARD_AUTO_REFRESH_BUDGET=1 を設定すると、クラウド予算の金額も同じ方法で更新します。課金される呼び出しを行わず、ローカルのコスト履歴から再計算します。
チームおよび開発者ごとの AI 予算をプレーンファイルで管理できます。 組織モデルの budgets.yaml にある ai_budget ファクトを使うと、チーム(monthly_usd と、そのメンバーそれぞれの per_person_usd)、1 人(メールアドレスまたは github:login)、または組織の月次予算を、定価相当の米ドルで設定できます。ここでの金額は、エージェントのトークンがプロバイダーの公表レート(llm_prices)でいくらになるかを示すもので、請求額ではなく使用量に基づきます。エージェントが次にシェルまたは MCP を呼び出したとき、ガードはこのマシンの月初からのコーディングエージェントの支出を、その人の予算、設定されていなければチームの per_person_usd(個人予算の提案は確認を求めるだけで、確認済みの個人予算を取り消すことはありません)、さらにチームと組織の monthly_usd と照合します(このマシン単独の支出なので、チームの金額は実際より少なくしか計上されない可能性があり、その旨も確認時に示されます)。予算の超過率が 1 を超えると、ファイル名、ファクトキー、金額、価格の参照元を示して確認を求めます。FINOPS_GUARD_STOP_ON_BUDGET=1 または on_budget_breach: deny を設定すると、拒否されます。提案された予算、または信頼していないリポジトリからの予算の場合は、確認を求めるだけです。このガードと nable ai-budget 独自の上限のうち、より厳しい方が適用されます。予算の対象者は、FINOPS_GUARD_PERSON が設定されていればその値、そうでなければ git の user.email です(1 回読み込まれ、保持されます)。エージェントが git config(設定可能な include.path や includeIf の読み込み先も含む)を使う場合も、git 設定ファイルに直接書き込む場合も、ガードはエージェントが git の user.email を変更する前に確認を求めます。リポジトリの .git/config、~/.gitconfig、XDG の設定ファイルは、ガードが監視するファイルに含まれます。別の方法でメールアドレスが変更された場合は、次の呼び出し時に変更前と変更後の両方を示して 1 回だけ確認を求め、月末までは変更前の予算が適用されます。llm_prices に料金の参照元がないモデルのトークンも集計してその旨を示しますが、推測した料金で価格を付けることはありません。
nable org set ai_budget --subject team:payments --monthly-usd 5000 --per-person-usd 400
nable org set ai_budget --subject person:[email protected] --monthly-usd 300
予算に連動した停止。 価格が設定された変更は、設定済みのクラウド予算(set_budget ツールまたは budget.yml)とも照合されます。月初からの支出に、その変更の月末までの費用を加えると予算の上限を超える場合、ガードは予算名、これまでの支出、変更の月額、予測超過額を示して確認を求めます。nable.policy.yaml(nable のデータディレクトリ内。既定では ~/.finops、または FINOPS_POLICY_FILE で指定した場所)にある on_budget_breach: deny を設定すると、ハードストップになります。FINOPS_GUARD_STOP_ON_BUDGET=1 または =0 を設定すると、1 回のセッションまたは CI 実行についてこの動作を上書きできます。合計、プロバイダー、サービスの予算はコマンド自体から適用されます。チームおよびアカウントの予算は、エージェントの実行環境で FINOPS_GUARD_TEAM または FINOPS_GUARD_ACCOUNT にそれらの名前が指定されている場合に適用されます。フックはデータベースではなく、小規模な支出サマリーを読み込みます。予算の確認ごとにこのサマリーが書き込まれます。スケジュールに登録するのは nable budget refresh です。数値が 48 時間より古い(FINOPS_GUARD_BUDGET_MAX_AGE_HOURS)場合、または先月のものの場合は使用されず、その旨が価格設定された変更の判定結果に示されます。nable guard doctor を実行すると、ガードが適用する予算、変更を適用できない予算、および数値の経過時間が一覧表示されます。
nable guard report --session <id> # what it asked, blocked and let through, in dollars
nable guard reconcile --hours 24 # CloudTrail's creates, destroys and commitments against the ledger
nable guard export --format cef # the verified ledger, for a SIEM
nable budget refresh # recompute budgets and the guard's spend figure
nable budget ci-gate --fail-on-breach --json # a pipeline step that fails on a breached budget
ci-gate は --fail-on-breach が渡されない限り、結果を報告して 0 で終了します。このオプションを渡すと、予算超過(支出が重大しきい値以上)の場合は 1 で終了し、確認を実行できない場合は 2 で終了します。--budget-file budget.yml を指定すると、最初にファイルを同期します。
reconcile には cloudtrail:LookupEvents(無料、読み取り専用)が必要です。台帳にはリソース ID が含まれていないため、種類と時刻に基づいて照合します。ガードはシートベルトであり、セキュリティ境界ではありません。nable guard doctor を実行すると、ガードが検出できないものが一覧表示されます。
ガード自身の設定も保護します。 ガードの動作を決めるファイル(組織モデル、nable.policy.yaml、インストール済みパック、台帳、オフスイッチ、各エージェントの設定にあるフックエントリー)を書き込む、移動する、または削除するエージェントには、最初に確認を求めます。これは、すべてのエージェントのシェルから行われる操作に加え、Claude Code の Write および Edit ツールを通じて行われる操作にも適用されます。エージェントが任意のエントリーポイント(nable、finops、finops-mcp、uvx、python -m)から実行する nable guard off、nable org confirm、nable pack install についても同様です。
組織に合わせてカスタマイズ
nable org init は、組織がすでに公開している情報(CODEOWNERS、Terraform、AWS Organizations、タグ、アカウント名、名前空間名)を読み取り、誰が何を所有しているか、各環境が何に当たるか、どのタグキーがチームやコストセンターを表すかを提案します。その後、支出額の多い順に最大10個の質問をし、その多くはまとめて尋ねます(「payments はこれら8件を所有し、月額$18,500です。はい、いいえ、または編集」)。回答は、あなたが管理する nable.org/ フォルダーにプレーンな YAML として保存されます。プルリクエストでレビューしたい場合はリポジトリ内に保存し(nable org init --here)、そうでない場合は nable のデータディレクトリに保存します。
nable org init # propose, then ask the week-one questions
nable org status # what is confirmed, proposed, stale or in conflict, and spend coverage
nable org questions # the open questions, with the command that answers each
nable org export --format json
人が確認した内容によって、nable の動作が変わります。ガードの確認では所有者を尋ね(「payments が所有(#payments-oncall)」)、ガードは作業中のリポジトリから、チーム予算とチームごとのしきい値に使うチームを取得します。チケットには所有者のチームとチャンネルが記載され、検出結果には所有者が記載されます。また、コストの帰属と本番/非本番の判定には、推測よりも確認済みの情報が優先して使われます。エージェント、アダプター、MCP ツールにできるのは提案までです。確認は CLI またはマージ済みのプルリクエストを通じて、人が行います。推測によって nable がより慎重になることはあっても、慎重さが損なわれることはありません。クローンしたリポジトリに含まれる nable.org/ は、あなた自身のモデルに重ねて読み込まれますが、nable org trust を実行するまでは、そこに記載された所有者は「可能性が高い」と表示され、しきい値はあなたの設定を引き下げる場合にのみ適用されます。
同じ質問を何度も繰り返しません
ガードは、各質問への回答方法を記録します(Claude Code、Cursor、Copilot は、尋ねられたコマンドが実行されたときに報告します)。同じ範囲で同じ種類の変更が5回以上承認され、1週間にわたって却下も取り消しもなかった場合、nable はその範囲のしきい値を提案し、その根拠を示します。「9月19日以降に6回承認、最大月額$1,121、却下・取り消しなし」のように表示されます。人が nable org confirm で確認すると、以降その変更はプロンプトなしで実行されます。却下が繰り返されると、より早い段階で尋ねるよう提案します。後戻りできない操作では、必ず確認を求めます。
nable learn infer --dry-run # what nable would propose, and why
nable guard report # asks approved, declined and unknown, per action and scope
nable org set freeze --scope environment:prod --start 2026-11-26T00:00-05:00 --end 2026-12-01T00:00-05:00 --reason "Black Friday"
nable guard approve <id> # let one blocked command through, once, from your own terminal
変更凍結と承認フローも組織の情報です。凍結中は、その範囲内の価格が発生する変更と後戻りできない操作すべてで確認を求めます(凍結を拒否モードで確認済みの場合は拒否されます)。修復用プルリクエストとチケットは、指定した承認者に送られます。確認のために一時停止できないエージェント(Codex CLI、Gemini CLI、Cline、Copilot クラウドエージェント)には、承認 ID とともに拒否応答が返されます。人が nable guard approve <id> を実行すると、同一のコマンドが15分以内に1回だけ実行されます。
パック
パックを使うと、組織独自のルール(ポリシー、強化のみ可能なガードルール、修復手順書、価格表、レポートテンプレート、コーディングエージェントのスキル、サンドボックス化されたコネクター、組織アダプター、チケットまたは Slack の送信先)で nable を拡張できます。各パックは nable-pack.toml で、読み取り可能な対象、受け取るシークレット、アクセス可能なホストを宣言します。インストール時にその内容を確認でき、より多くの権限を求める更新には、改めて承認が必要です。
nable pack install ./my-pack # a folder, a .tar.gz, git+https://...@<commit>, or ns/name from a registry
nable pack audit # what is installed, what each may do, and whether any file changed
nable pack validate ./my-pack # for authors
ns/name 形式のインストールでは、組織のポリシーにある packs.registry、--registry、または NABLE_PACK_REGISTRY で指定したレジストリインデックスを読み込みます。デフォルトのインデックス(GitHub 上の getnable/registry)はまだ公開されておらず、404 を返すため、独自のインデックスを指定してください。組織のポリシーファイルでは、パックの取得元を制限し、要求できる内容に上限を設定し、署名を必須にできます(nable.policy.yaml の packs:)。詳細、機能一覧、ノート PC 上でのサンドボックス化の正直な制約については、docs/PACKS.md を参照してください。
有料ワークスペースに取り込む
ここまでの内容はすべてお使いのマシンで動作し、そこにとどまります。有料ワークスペースに移行すると、nable cloud connect によって、次の3つがワークスペースに取り込まれます。組織モデル(組織ディレクトリ内のファイル。budgets.yaml も含みます)、ガードの判断台帳(各行は保存されたとおりそのまま)、およびこのマシンのコーディングエージェントの使用状況です。使用状況は、直近28日間の終了済みの日について、UTC の日付、開発者、エージェント、モデル、プロジェクトごとに1件の agent_usage レコードとして記録されます。ただし、Claude Code がトランスクリプトをそれより短い期間しか保持していない場合は、その期間分のみです(方向別のトークン数と、引用された llm_prices の行に価格があるトークンに限った定価相当の USD 額。プロジェクトは組織モデルに記載されている場合のみリポジトリ名となり、それ以外は unmapped です。プロンプト、ファイル内容、パス、ホスト名は含まれません)。開発者は送信者として記録されます。--as WHO が指定されていればその値、指定されていなければ、ターミナルで使用している git の user.email、次に $USER が使われます。ドライランでは開発者が表示され、ワークスペースではレコードが開発者、チーム、プロジェクト別に集計されます。台帳のレコードにはエージェントのコマンドと、ガードが判断したパスが含まれます。認証情報は秘匿化されますが、それ以外は変更されないため、パス、ホスト、ユーザー名が記載されることがあります。ドライランでは、そのようなレコードの件数も表示されます。最初にドライランが実行され、ドライランでは何も送信されません。データの送信先、対象ファイルとレコード数、サイズ、sha256、確認コードが表示され、正確な送信データが保存されるので、内容を確認できます。
nable cloud connect --box https://your-workspace.example.com # the dry run
nable cloud connect --box https://your-workspace.example.com --send --confirm <code>
nable cloud status --box https://your-workspace.example.com # what the workspace holds
--send を指定すると、確認コードが示す送信先に、コードが指定するデータをそのまま送信します(コードは送信先、改行、データを連結したものの sha256 です)。確認後に何かが変更されていれば、送信は拒否されます。ご自身のターミナルで実行するか、--as WHO を指定してください。ガードはエージェントの実行前に確認を求めます。HTTPS のみで、エアギャップモードでは実行できません。ワークスペースキーは、ワークスペースの /workspace ページで作成するアナリストキーです。NABLE_WORKSPACE_KEY、モード 0600 の --key-file、または入力内容を表示しないプロンプトから読み込まれます。コマンドラインから取得されることも、保存されることもありません。ハッシュチェーンが途切れている台帳、および信頼していないリポジトリの nable.org/ は表示されますが、送信されません。
セットアップ
Python 3.11 以降が必要です。uv が必要な場合は、curl -LsSf https://astral.sh/uv/install.sh | sh を実行してください(または brew install uv)。
uvx nable
セットアップウィザードは、お使いのマシンにすでにある AWS または GCP の認証情報(SSO ログイン、CLI プロファイル、またはデフォルトの認証情報)を検出し、選択したものに接続して、エディターを設定します。通常、キーを入力する必要はありません。
CI、cron、スクリプト、またはターミナルを持たないエージェントでの使用については、docs/HEADLESS.md に、stdin を閉じたときの各コマンドの動作、--json の出力と終了コード、すべての環境変数、エアギャップモード、stdio 経由の MCP が記載されています。
Cursor ワンクリック: nable を Cursor に追加
ローカルツールは永久無料です。チーム向けのホステッド版(ターミナル不要のダッシュボード、SSO、スケジュールレポート、常時稼働エージェント)は、getnable.com/pricing でご利用いただけます。
エディターの手動設定 — セットアップで自動設定されなかった場合にのみ必要です
finops setup で自動設定されない場合は、次を実行してください。
finops setup claude
または、claude_desktop_config.json に手動で追加してください。
uvx を使用する場合(推奨):
{
"mcpServers": {
"nable": { "command": "uvx", "args": ["--python", "3.12", "finops-mcp"] }
}
}
絶対パスを使用する場合:
{
"mcpServers": {
"nable": { "command": "/usr/local/bin/finops-mcp" }
}
}
which finops-mcp で表示されるパスを使用してください。
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
uvx を使う理由: Claude Desktop は GUI アプリであり、シェルの PATH を引き継ぎません。uvx は、独立した環境で finops-mcp を実行します。Python のインストールが管理されている企業のマシンでも、最も確実な方法です。
エージェントにコスト制御を追加する — コーディングエージェント向けのアクション前予算ゲート
nable は、エージェントが読み取るだけのツールではありません。コストに影響する変更を実施する**前に**エージェントが呼び出す事前アクションゲートです。変更のコストを見積もり、予算と照合し、より安価な方法を提示します。nable が変更を適用することはありません。提案のみを行い、エージェントが提案して、人間が承認します。エージェントのシステムプロンプトに1行追加してください(Claude Code、Cursor、または任意の MCP クライアント)。
インフラの変更(terraform apply、helm upgrade、リソースの作成やサイズ変更)を適用する前、または高額なジョブを開始する前に、まず
check_action_policyをアクションと変更内容(terraform plan、helm diff、またはmonthly_delta_usd)とともに呼び出してください。判定、金額への影響、提示された場合はより安価な方法を伝えてください。blockまたはescalateのアクションは決して適用せず、人間に提示してください。nable は助言のみを行い、提案のみを行います。
ゲートはポリシーに照らして allow / warn / block / escalate を返し、月額および年額への金額の影響と、変更がコンピューティングに関する場合はスポットの代替案も返します。削除、終了、コミットメントの購入といった取り消せない操作や、予算超過となる変更は必ず人間にエスカレーションされます。また、ポリシーで on_budget_breach: deny が設定されている場合、予算超過となる変更はその場でブロックされます。
エージェント自身にも予算を設定できます。 nable ai-budget を一度実行すると、定額プランか従量課金 API か、また料金はいくらかを尋ね、設定を記憶します。定額プランでは、固定料金に含まれるコンピューティングをどれだけ使ったかを追跡し、残りが少なくなる前に警告します。従量課金では、金額の上限に基づいて制御します。check_ai_budget も、タスクの途中でエージェントに対して同じ確認を行います。Claude Code の使用状況をローカルで読み取り、アップロードすることはありません。各応答は使用したモデルごとの公開料金で計算され、キャッシュへの書き込みと読み取りも含まれます。レポートではモデル別およびセッション別にコストを分類します。タスクごとの上限(nable ai-budget --session-cap 40、またはエージェントへの「このタスクで使えるのは最大 $40 です」という指示)は、サブエージェントを含む1つの Claude Code セッションを対象に計測され、check_ai_budget は上限までの残額を返します。システムプロンプトに次の内容を追加してください。
大きなタスクを始める前に、
check_ai_budgetを呼び出してください。warnまたはoverが返された場合は、続行する前に現在の状況を伝えてください。
プランに設定された非公開のレート制限に対する架空の割合ではなく、実際の使用状況と予算に対する消費ペースを報告します。
Claude Code、Cursor、Codex、Copilot、Gemini CLI、Cline 用のガードフックと、管理対象のデプロイ
nable guard install を実行すると、エージェントのシェルコマンドの前にフックとして同じチェックが設置されるため、エージェントがゲートの呼び出しを忘れた場合でもチェックが実行されます。
nable guard install --all --global # every supported agent found on this machine
nable guard install --harness gemini # one agent, this project only
nable guard doctor # what is covered here, and what is not
| エージェント | フックの設置場所 | 監視対象 | ポリシーで人間の確認が必要な場合 |
|---|---|---|---|
| Claude Code | .claude/settings.json | シェルコマンド、MCP ツール | 確認を求めます |
| Cursor | .cursor/hooks.json | シェルコマンド、MCP ツール | 確認を求めます |
| Codex CLI | .codex/hooks.json | シェルコマンド、MCP ツール | 理由を示して拒否します |
| GitHub Copilot | .github/hooks/nable-guard.json | シェルコマンド | Copilot CLI では確認を求め、クラウドエージェントでは理由を示して拒否します |
| Gemini CLI | .gemini/settings.json | シェルコマンド | 理由を示して拒否します |
| Cline(macOS、Linux) | .clinerules/hooks/PreToolUse | シェルコマンド | 理由を示してタスクを停止します |
--global を指定すると、ユーザーレベルのファイルに書き込みます(~/.claude/settings.json、~/.cursor/hooks.json、$CODEX_HOME/hooks.json、~/.copilot/hooks/、~/.gemini/settings.json、~/Documents/Cline/Hooks/)。ユーザーがインストールしたフックは、ユーザー自身で削除できます。
管理対象のデプロイ。 ユーザーが削除できないポリシーとしてフックを設定するには、エージェントの管理者設定を通じてデプロイしてください。<version> をテスト済みのリリース(nable --version)に置き換え、ユーザーの PATH に uvx が含まれていることを確認してください。または、uvx を使う形式の代わりに、インストール済みの finops バイナリの絶対パスを使用してください。
{
"hooks": {
"PreToolUse": [
{
"matcher": "^(Bash|mcp__.*)$",
"hooks": [
{"type": "command", "command": "uvx --from finops-mcp==<version> finops guard hook", "timeout": 30}
]
}
]
}
}
Codex は /etc/codex/requirements.toml(Windows では %ProgramData%\OpenAI\Codex\requirements.toml)を読み込みます。ここにあるフックは管理対象であり、常に有効で、「Hooks need review」の手順なしで信頼され、ユーザーが無効にすることはできません。
[[hooks.PreToolUse]]
matcher = "^(Bash|mcp__.*)$"
[[hooks.PreToolUse.hooks]]
type = "command"
command = "uvx --from finops-mcp==<version> finops guard hook"
timeout = 30
どちらにも、管理対象のフックだけを実行し、ユーザー、プロジェクト、プラグインのすべてのフックを無視する切り替え設定があります。Claude Code の管理対象設定では "allowManagedHooksOnly": true、Codex の requirements.toml のトップレベルでは allow_managed_hooks_only = true を指定します。誰のフックも実行すべきでない場合にのみ設定してください。Copilot CLI にも、ポリシーフックファイルで同様の仕組みがあります。対象は /etc/github-copilot/policy.d/*.json(root が所有し、グループやその他のユーザーには書き込み権限がないファイル)で、.github/hooks/nable-guard.json と同じ形式です。
参照先:Claude Code の管理対象設定、
allowManagedHooksOnly、
openai/codex の Codex codex-rs/config/src/config_requirements.rs および codex-rs/hooks/src/engine/discovery.rs、
Copilot フックのリファレンス。
このガードはシートベルトであり、セキュリティ境界ではありません。エージェントには読み取り専用のクラウド認証情報を渡し、書き込みアクセスは人間が管理してください。
コネクター(支出データソース 20 種):各プロバイダーから取得するデータと Azure のロール
| プロバイダー | 取得するデータ |
|---|---|
| AWS | Cost Explorer(API はリクエストごとに $0.01 が課金されます。nable scan は --spend を渡さない限り、無料の API のみを使用します) · Athena 経由の CUR 明細(スキャンしたバイト数に応じて課金) · Organizations |
| Azure | Cost Management API · Advisor のコスト削減推奨事項 · VM の適正サイズ化(Azure Monitor) · ネイティブの予算 · 予測 |
| GCP | Cloud Billing API と BigQuery の請求額エクスポート · Recommender |
| Kubernetes | kubeconfig を使った定価ベースの見積もり |
| OpenCost | クラスター内で OpenCost を実行している場合の Allocation API |
| OpenAI | モデル別の API 使用量とトークン支出 |
| Anthropic | Claude API の使用量とトークン支出 |
| Amazon Bedrock | Cost Explorer 経由のモデル別支出 |
| Vertex AI | BigQuery の請求額エクスポートから取得する支出 |
| OpenRouter | ゲートウェイの使用量 |
| LiteLLM | セルフホスト型プロキシに記録された支出 |
| Langfuse | 日次メトリクス API:モデルのコスト、トークン使用量、トレース数 |
| Datadog | Usage Metering API v2:実際の金額 |
| Snowflake | ACCOUNT_USAGE.METERING_HISTORY |
| Databricks | DBU 使用量と SQL ウェアハウスの支出 |
| MongoDB Atlas | Invoice API |
| Twilio | Usage Records API |
| Cloudflare | Billing API |
| Vercel | Invoice API(Enterprise) |
| New Relic | データ取り込み量とユーザー数 |
支出額はありませんが、Modal、Together、Replicate も接続されています(nable はキーを確認しますが、公開 API が期間ごとのコストを返さないため、請求書のインポートを案内します)。また、Cohere と Mistral(nable cohere と nable mistral はキーを保存しますが、使用量を読み取る機能はまだありません)も接続されています。STRIPE_SECRET_KEY が設定されている場合、Stripe は MRR と有料顧客数をユニットエコノミクスに取り込みますが、コストのデータソースではありません。
Azure のロール。 Azure ツールでは、各サブスクリプションのサービスプリンシパルに付与する 3 つの RBAC ロールを使用します(確認するには finops doctor を実行します)。
# repeat per subscription
az role assignment create --assignee <client-id> --role 'Cost Management Reader' --scope /subscriptions/<sub-id>
az role assignment create --assignee <client-id> --role Reader --scope /subscriptions/<sub-id>
az role assignment create --assignee <client-id> --role 'Monitoring Reader' --scope /subscriptions/<sub-id>
よくある質問 — 無料と有料の違い、プロバイダー、Cost Explorer/Vantage との比較
**FinOps MCP サーバーとは何ですか?** AI エディターからクラウドコストに関する質問に答える MCP(Model Context Protocol)サーバーです。nable はローカルでその役割を果たすため、Claude、Cursor、または VS Code に AWS、Azure、GCP、AI の利用料金について質問すると、お使いのマシン上の実際のコストデータを読み取って回答します。nable は無料ですか? はい。ターミナルスキャン、すべてのコストクエリ、異常検知、すべての無駄や適正化に関する検出結果、すべてのコネクターは永久に無料です。インストールするたびに、Pro 機能を7日間試せます。Pro(月額25ドル)では、チケット作成(Jira、Linear、GitHub Issues)、リクエストに応じて送信されるメールレポートとダイジェスト、アカウント横断の組織全体の集計が追加されます。Team(月額1,000ドルの定額、シート数無制限)では、会話型 Slack ボットとチャットでの修正が追加されます。予測、コミットメントの推奨、修正 PR、Ledger は、料金を決定中のため現在無料です。依頼がなくてもスケジュールに従って送信されるレポートとアラートは nable Cloud の機能です。このインストールでは、依頼したときに送信されます。
請求データがマシンの外に送信されることはありますか? nable はデータをアップロードしません。お使いのマシン上のコストデータを読み取るだけで、nable のサービスには送信しません。また、テレメトリーは有効にしない限りオフで(コストの数値が含まれることもありません)、ファイルをどこかに送信する操作は nable cloud connect --send だけです。この操作は、組織モデルとガード台帳を有料ワークスペースに転送するために実行するもので、ドライランで表示された、対象のバイト数とその環境に対する確認コードを入力した場合にのみ送信されます。エディターでは、MCP ツールのすべての結果と同様に、質問への回答はチャットで使用しているモデルに届きます。nable scan およびその他の CLI 操作ではモデルを使用しません。エグレスが発生しないことはソースで確認できます。
対応しているクラウドやプロバイダーを教えてください。 AWS、Azure、GCP、Kubernetes(kubeconfig による推定、または OpenCost)、AI および LLM プロバイダー(OpenAI、Anthropic、Bedrock、Vertex AI、OpenRouter、LiteLLM、Langfuse)、データプラットフォーム(Databricks、Snowflake、MongoDB Atlas)、SaaS(Datadog、New Relic、Cloudflare、Twilio、Vercel)に対応しています。Modal、Together、Replicate、Cohere、Mistral には接続できますが、現時点では利用額を返しません(「コネクター」を参照)。
AWS Cost Explorer とはどう違いますか? Cost Explorer は AWS 専用で、API のリクエストごとに料金が発生します。nable は複数のクラウドに対応し、ターミナルや Claude/Cursor で動作します。また、クラウドコンソールでは確認できない AI プロバイダーの利用額(OpenAI、Anthropic など)もカバーし、プルリクエストとして修正を提案します。nable scan はデフォルトで有料 API を一切呼び出しません。
Vantage や CloudHealth のオープンソース代替ツールはありますか? nable は、コストクエリ、無駄の検出、適正化、AI/GPU コストに対応するオープンソース(Apache-2.0)のローカル優先の代替ツールです。ホスト型 SaaS ではなく、お使いのマシン上で動作します。
トラブルシューティング — インストールとセットアップの問題を解決する
finops-doctor # checks credentials, DB, network, audit log
finops setup claude # re-run editor configuration only
| 症状 | 解決方法 |
|---|---|
| Claude にツールが表示されない | uvx の設定に切り替えるか、絶対パスを使用します |
command not found: finops-mcp | pip install finops-mcp で再インストールするか、uvx を使用します |
| AWS からデータが返されない | finops setup aws を実行します |
No matching distribution found for finops-mcp | Python のバージョンが3.11未満です。3.11以降にインストールしてください(uvx --python 3.12 nable、または python3.11 -m pip install finops-mcp)。 |
cryptography のビルドエラー/maturin failed | uv が Python 3.10 でコンパイルしようとしました。3.11以降を使用してください:uvx --python 3.12 nable。 |
| 企業ネットワークで SSL エラーが発生する | pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org finops-mcp |
| 自宅では動作するが、職場では動作しない | uvx を使用します(企業の IT 部門がカスタム PATH エントリーを削除することがよくあります) |
すべて Apache-2.0 です。ホスト型のエンタープライズレイヤー(Web ダッシュボード、スケジューラー、双方向 Slack ボット、SSO、コントロールプレーン)は、別のプライベートリポジトリにあります。このリポジトリに含まれる内容:CAPABILITIES.md、すべての MCP ツール:docs/tool-inventory.txt。
getnable.com · ドキュメント · プライバシー · セキュリティ
mcp-name: io.github.getnable/finops-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。