mcpField
I
infracost

infracost

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

infracost について

infracost は Infracost CLI を実行し、Infrastructure as Code のコスト変化を見積もり、比較、公開する MCP サーバーです。クラウドインフラの開発やレビューで、レポート作成やプルリクエストへのコメント、CLI 設定に利用できます。

主な機能

  1. 01インフラコストの基準値を作成
  2. 02計画変更によるコスト差分を比較
  3. 03JSON・テーブル・HTML形式で出力
  4. 04プルリクエストにコストコメントを投稿
  5. 05レポートのアップロードとCLI設定
  6. 06使用量ファイルのテンプレート生成

活用シーン

  1. 01Terraform プロジェクトの月額コストを見積もる
  2. 02プルリクエストのコスト影響を確認する
  3. 03Infracost Cloud にコストレポートをアップロードする
  4. 04リソース種別ごとの使用量ファイルを作成する

MCP 対応

MCP サーバーは、コスト見積もり、差分比較、レポート、共同作業、設定操作に使う 8 種類の Infracost CLI ツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"downatthebottomofthemolehole-infracost": {
"command": "npx",
"args": [
"-y",
"@downatthebottomofthemolehole/infracost-mcp-server"
]
}
}
}
起動コマンドnpx -y @downatthebottomofthemolehole/infracost-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@downatthebottomofthemolehole/infracost-mcp-server1.0.1

ツール

8

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pathstringいいえTerraform/IaC ディレクトリまたはプラン JSON ファイルへのパス。
apiKeystringいいえInfracost API キー(INFRACOST_API_KEY 環境変数も使用できます)。
fieldsarrayいいえ出力に含めるフィールド(all、price、monthlyQuantity、unit、hourlyCost、monthlyCost)。
formatstringいいえ出力形式:table、json、html、diff、github-comment、gitlab-comment、azure-repos-comment、slack-message など。
showSkusbooleanいいえ出力に SKU の詳細を表示します。
compareTostringいいえ比較用のベースライン Infracost JSON のパス。
extraArgsarrayいいえ追加の CLI 引数。
usageFilestringいいえリソース使用量の見積もりに使用する Infracost 使用量ファイルのパス。
configFilestringいいえInfracost 設定ファイルのパス。
syncUsageFilebooleanいいえ使用量ファイルを不足しているリソースと同期します。
timeoutSecondsnumberいいえコマンドのタイムアウト(秒)。
workingDirectorystringいいえコマンドを実行するディレクトリ。デフォルトは現在のディレクトリです。
terraformPlanFlagsstringいいえ'terraform plan' に渡すフラグ。
terraformWorkspacestringいいえ使用する Terraform ワークスペース。

詳細

Infracost MCP サーバー

Down At The Bottom Of The Mole Hole banner

CI/Publish Coverage npm License: MIT Node Version

注記: これはコミュニティがメンテナンスする MCP サーバーです。Infracost の公式 Model Context Protocol サーバーではありません。

Terraform やその他の Infrastructure as Code プロジェクトで、インフラコストの変更を見積もり、比較し、公開するために Infracost CLI を実行する Model Context Protocol(MCP)サーバーです。

概要

このサーバーは、見積もり、レポート、コラボレーション、運用のワークフローに対応する8つの MCP ツールを提供します。

  • infracost_breakdown:ベースラインとなるコスト見積もりを生成します。
  • infracost_diff:予定されているコスト変更を比較します。
  • infracost_output:既存の Infracost JSON をさまざまな形式でレンダリングします。
  • infracost_comment:対応する SCM プラットフォームに PR コメントを投稿します。
  • infracost_upload:レポートを Infracost Cloud にアップロードします。
  • infracost_configure:CLI 設定を取得または設定します。
  • infracost_auth:認証フローを実行します。
  • infracost_generate_usage:適切なデフォルト値を使って使用量ファイルを生成します。
プラットフォーム互換性

この MCP サーバーはプラットフォームに依存せず、ローカル環境と CI 環境の両方で動作します。

  • ローカル開発
  • GitHub Actions
  • GitLab CI/CD
  • Azure DevOps
  • CircleCI、Jenkins、Bitbucket Pipelines
  • AI エージェントおよび Copilot ワークフロー

主な要件は、Node.js と Infracost CLI バイナリです。

ツール一覧
ツールカテゴリ一般的な結果
infracost_breakdown見積もり現在の IaC の月次コストベースライン
infracost_diff比較予定されている変更によるコスト差分
infracost_outputレポートレンダリングされたテーブル/JSON/HTML/コメント出力
infracost_commentコラボレーション影響の見積もりを含む PR コメント
infracost_uploadクラウド同期Infracost Cloud で閲覧できるコストレポート
infracost_configure設定保存された CLI 設定の更新/読み取り
infracost_auth認証Infracost Cloud のログインフロー
infracost_generate_usageユーティリティデフォルト値が入力済みの使用量ファイルテンプレート

ツール

infracost_breakdown

infracost breakdown を実行します。

入力:

  • workingDirectory(文字列、任意):コマンドの作業ディレクトリです。
  • path(文字列、任意):Terraform/IaC ディレクトリまたはプラン JSON のパスです。
  • configFile(文字列、任意):Infracost 設定ファイルのパスです。
  • usageFile(文字列、任意):使用量ファイルのパスです。
  • format(文字列、任意):出力形式です。デフォルト:table。
  • fields(文字列[]、任意):出力に含めるフィールドです。
  • showSkus(ブール値、任意):SKU の詳細を含めます。
  • syncUsageFile(ブール値、任意):検出されたリソースに合わせて使用量ファイルを同期します。
  • compareTo(文字列、任意):ベースラインとなる Infracost JSON のパスです。
  • terraformWorkspace(文字列、任意):Terraform ワークスペースです。
  • terraformPlanFlags(文字列、任意):terraform plan のフラグです。
  • timeoutSeconds(数値、任意):タイムアウト時間(秒)です。
  • extraArgs(文字列[]、任意):追加の CLI 引数です。
infracost_diff

infracost diffを実行します。

入力:

  • workingDirectory(string、任意):コマンドの作業ディレクトリ。
  • path(string、任意):Terraform/IaC ディレクトリまたはプラン JSON へのパス。
  • configFile(string、任意):Infracost 設定ファイルへのパス。
  • usageFile(string、任意):使用状況ファイルへのパス。
  • format(string、任意):出力形式。デフォルト:table。
  • compareTo(string、任意):ベースラインとなる Infracost JSON のパス。
  • showSkus(boolean、任意):SKU の詳細を含めます。
  • syncUsageFile(boolean、任意):検出されたリソースに合わせて使用状況ファイルを同期します。
  • terraformWorkspace(string、任意):Terraform ワークスペース。
  • terraformPlanFlags(string、任意):terraform planのフラグ。
  • timeoutSeconds(number、任意):タイムアウト(秒)。
  • extraArgs(string[]、任意):追加の CLI 引数。
infracost_output

infracost outputを実行します。

入力:

  • workingDirectory(string、任意):コマンドの作業ディレクトリ。
  • path(string、任意):Infracost JSON ファイルへのパス。省略した場合は自動検出されます。
  • format(string、任意):出力形式。デフォルト:table。
  • fields(string[]、任意):出力に含めるフィールド。
  • showSkus(boolean、任意):SKU の詳細を含めます。
  • timeoutSeconds(number、任意):タイムアウト(秒)。
  • extraArgs(string[]、任意):追加の CLI 引数。
infracost_comment

infracost commentを実行します。

入力:

  • workingDirectory(string、任意):コマンドの作業ディレクトリ。
  • platform(string、任意):プラットフォーム(github、gitlab、azure-repos、bitbucket)。デフォルト:github。
  • path(string、任意):Infracost JSON ファイルへのパス。省略した場合は自動検出されます。
  • repo(string、任意):リポジトリ(owner/repo)。
  • pullRequest(string、任意):プルリクエスト番号。
  • commit(string、任意):コミット SHA。
  • token(string、任意):プラットフォームのトークン。
  • tag(string、任意):コメントタグ。
  • behavior(string、任意):コメントの更新動作。
  • dryRun(boolean、任意):投稿せずに生成します。
  • timeoutSeconds(number、任意):タイムアウト(秒)。
  • extraArgs(string[]、任意):追加の CLI 引数。
infracost_upload

infracost uploadを実行します。

入力:

  • workingDirectory(string、任意):コマンドの作業ディレクトリ。
  • path(string、任意):Infracost JSON ファイルへのパス。省略した場合は自動検出されます。
  • timeoutSeconds(number、任意):タイムアウト(秒)。
  • extraArgs(string[]、任意):追加の CLI 引数。
infracost_configure

infracost configureを実行します。

入力:

  • workingDirectory(string、任意):コマンドの作業ディレクトリ。
  • set(string、任意):設定値を設定します。
  • get(string、任意):設定値を読み取ります。
  • timeoutSeconds(number、任意):タイムアウト(秒)。
  • extraArgs(string[]、任意):追加の CLI 引数。
infracost_auth

infracost auth loginを実行します。

入力:

  • workingDirectory(string、任意):コマンドの作業ディレクトリ。
  • timeoutSeconds(number、任意):タイムアウト(秒)。
  • extraArgs(string[]、任意):追加の CLI 引数。
infracost_generate_usage

指定したリソースタイプの使用量ファイルを、適切なデフォルト値を設定して生成します。このユーティリティツールは、ワークロードに合わせてカスタマイズできる入力済みテンプレートを提供し、infracost_configure を補完します。未加工の JSON と、書式設定されたガイダンスの両方を返します。

入力:

  • resourceTypes(string[]、必須):含めるリソースタイプ(例:["aws_lambda_function", "aws_s3_bucket"])。
  • outputFilePath(string、任意):使用量ファイルの保存先パス(ガイダンスのみ)。
  • includeGuidance(boolean、任意):書式設定されたガイダンスを含めます。デフォルト:true。
  • onlyJson(boolean、任意):未加工の JSON のみを返します(ガイダンスなし)。デフォルト:false。

対応するリソースタイプ:aws_lambda_function、aws_instance、aws_db_instance、aws_s3_bucket、aws_dynamodb_table、aws_ebs_volume、aws_cloudfront_distribution、aws_lb、aws_nat_gateway、google_compute_instance、google_storage_bucket、azurerm_windows_virtual_machine、azurerm_linux_virtual_machine、azurerm_storage_account、azurerm_mssql_database。

プロンプトのレシピ集

Copilot Chat で @infracost を使用し、以下の簡潔なプロンプトを入力します。 パスを指定しない場合、CLI ツールはデフォルトで現在のワークスペースのルートを使用します。 Copilot のコンテキストとしてファイルまたはフォルダー(#file または #folder)を追加した場合は、プロンプトで参照してください。ツールはそのパスを対象にします。 サーバーは一般的なレポートファイル(infracost-diff.json、infracost-base.json、infracost.json)を自動検出するため、通常は infracost_output、infracost_comment、infracost_upload に path を渡す必要はありません。

クイックプロンプト
@infracost run infracost_breakdown
@infracost run infracost_diff
@infracost run infracost_output
@infracost run infracost_comment with dryRun true
@infracost run infracost_upload
内訳を実行する(infracost_breakdown)
@infracost run infracost_breakdown

期待される出力:コマンド出力、終了コード、stdout、stderr を含むベースラインのコスト見積もり。

差分を実行する(infracost_diff)
@infracost run infracost_diff

期待される出力:計画された変更と現在のベースラインを比較したコストの差分。

出力をレンダリングする(infracost_output)
@infracost run infracost_output with format html

期待される出力:既存の Infracost JSON から書式設定された出力(可能な場合は自動検出)。

PR コメントを投稿する(infracost_comment)
@infracost run infracost_comment with repo owner/repo and pullRequest 123 and dryRun true

期待される出力:生成されたコメントのペイロード、またはドライランモードでない場合は投稿されたコメント。プラットフォームのデフォルトは github です。

レポートをアップロードする(infracost_upload)
@infracost run infracost_upload

期待される出力:Infracost Cloud への取り込み完了の確認。

CLI を設定する(infracost_configure)
@infracost run infracost_configure with:
- set: currency=USD

期待される出力:CLI からの設定更新の確認。

認証する(infracost_auth)
@infracost run infracost_auth

期待される出力:認証フローのプロンプト、またはログイン成功の詳細。

使用量ファイルを生成する(infracost_generate_usage)
@infracost run infracost_generate_usage with:
- resourceTypes: ["aws_lambda_function", "aws_s3_bucket", "aws_dynamodb_table"]
- outputFilePath: ./infracost-usage.json
- includeGuidance: true

期待される出力:適切なデフォルト値が設定された入力済みの使用量ファイル JSON と、カスタマイズ方法および使用方法に関するガイダンス。プログラムで処理する場合は、onlyJson: true を指定すると JSON のみが返されます。

依存関係

システム依存関係
  • Node.js >=24.14.0
  • npm(Node.js に同梱)
  • インストールされ、PATH から利用できる Infracost CLI(または INFRACOST_BINARY_PATH 経由)
npm の依存関係

実行時:

  • @modelcontextprotocol/sdk(MCP サーバー SDK)

開発時:

  • typescript(ビルド/コンパイル)
  • tsx(開発用ランナー)
  • vitest(単体テストランナー)
  • @types/node(Node.js の型定義)
環境変数
  • INFRACOST_API_KEY:クラウド連携機能用の Infracost API キー。
  • INFRACOST_BINARY_PATH:Infracost バイナリのパスを上書きします。

インストール

npm install
npm run build

設定

VS Code Copilot Chat での使用

このワークスペースは .vscode/mcp.json で事前設定されています。

{
  "servers": {
    "infracost": {
      "type": "stdio",
      "command": "node",
      "args": ["./dist/index.js"]
    }
  }
}

MCP 設定を変更した後は、VS Code を再読み込みします(Cmd+Shift+P -> Developer: Reload Window)。

その後、Copilot Chat から @infracost を使ってサーバーに問い合わせます。例:

@infracost run infracost_breakdown
@infracost run infracost_diff
その他の MCP クライアントでの使用

ビルド済みのエントリーポイントを使い、stdio トランスポートを使用します。

{
  "name": "infracost-mcp-server",
  "type": "stdio",
  "command": "node",
  "args": ["/absolute/path/to/infracost-mcp/dist/index.js"]
}

まず npm run build を実行してビルドし、その後 MCP クライアントを起動します。

実行

npm start

開発モード:

npm run dev

ビルド済みモード:

npm run start

デバッグ

.vscode/launch.json を使用します。

  • Debug MCP Server(npm run dev を実行します)
  • Debug MCP Server (Built)(ビルド後に dist/index.js を実行します)

src/index.ts にブレークポイントを設定してから、F5 を押します。

テスト

Copilot Chat のシナリオ、手動での JSON-RPC チェック、トラブルシューティングのガイダンスについては、docs/TESTING.md をご覧ください。

Copilot Chat でのクイック検証プロンプト:

@infracost run infracost_breakdown

インタラクティブな VS Code ワークフロー

1. PR のコスト影響レビュー
  1. ベースラインを生成します。
@infracost run infracost_breakdown with:
- path: .
- format: json
  1. 差分を生成します。
@infracost run infracost_diff with:
- path: .
- format: diff
  1. PR コメントの下書きを作成します。
@infracost run infracost_comment with:
- platform: github
- path: infracost-diff.json
- repo: owner/repo
- pullRequest: 123
- dryRun: true
2. レポート作成パイプラインのセットアップ
  1. 人が読めるレポートをレンダリングします。
@infracost run infracost_output with:
- path: infracost-diff.json
- format: html
  1. 一元管理用にアップロードします。
@infracost run infracost_upload with:
- path: infracost-diff.json
3. 環境のブートストラップ
  1. デフォルトを設定します。
@infracost run infracost_configure with:
- set: currency=USD
  1. 認証します。
@infracost run infracost_auth
ベストプラクティス
  • モノレポ内で実行する場合は、workingDirectory を明示してください。
  • 機械処理には --format json を、人によるトリアージには --format table を使用してください。
  • 大規模な Terraform プランを処理できるよう、timeoutSeconds を十分に大きくしてください。
  • 本番環境の PR スレッドに投稿する前に、dryRun=true を設定した infracost_comment の使用を推奨します。
  • Infracost Cloud で過去の状況を確認するには、infracost_upload を使用してください。

その他のユースケース

  • プルリクエストでのマージ前コストゲート。
  • CI で定期的に実行するベースラインコストのスナップショット。
  • リリーストレイン向けのコスト差分レポート。
  • アップロード済みレポートに基づくチームレベルの FinOps ダッシュボード。

関連プロジェクト

Infracost リソース
Model Context Protocol

コミュニティとコントリビューション

クレジットとライセンス

Down At The Bottom Of The Mole Hole 組織のもと、Carl Dawson がメンテナンスしています。

開発

npm run lint
npm test
npm run build

ライセンス

MIT ライセンスのもとでライセンスされています。

コメント

MCP は初めてですか?

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

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