aws-finops-mcp-server について
aws-finops-mcp-server は、AI アシスタントに AWS FinOps の機能を提供する MCP サーバーです。自然言語でクラウドコストの分析、無駄の監査、予算の確認を行えます。ローカルで動作し、既存の AWS CLI 設定を使って AWS API を直接呼び出すため、認証情報はユーザーのマシンから外に出ません。
主な機能
- 01タグ、期間、グループ化によるコスト照会
- 02未使用の EC2 インスタンス、EBS ボリューム、Elastic IP の監査
- 03AWS Budgets の予算状況の確認
- 04複数の AWS CLI プロファイルとリージョンをまたぐ照会
- 05認証情報のローカル保持と AWS CLI 設定の利用
活用シーン
- 01先月の AWS 支出を牽引したサービスの確認
- 02定期的な無駄の監査とコストレポートの作成
- 03staging と production アカウントのコスト比較
MCP 対応
本プロジェクトは MCP サーバーとして、Claude Desktop や Amazon Q CLI などの MCP クライアントに get_cost と run_finops_audit のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AWS FinOps MCP サーバー
AI アシスタントから AWS FinOps の強力な機能を直接利用できる MCP(Model Context Protocol)サーバーです。クラウドコストを分析し、無駄がないか監査して、自然言語で予算に関する分析情報を得られます。認証情報はローカルマシン上で安全に保管されます。
AWS FinOps MCP サーバーを使う理由
AWS のコスト管理は複雑になることがあります。「先月の S3 の支出額はいくらでしたか?」「未使用の EC2 インスタンスはありますか?」といった質問の答えを見つけるには、多くの場合、AWS コンソールを操作したり、スクリプトを作成したりする必要があります。
このサーバーは、LLM の強力な自然言語理解機能を AWS アカウントの財務データに直接接続し、その隔たりを埋めます。チャット画面を離れることなく、複雑な質問をして、すぐに実行可能な分析情報を得られます。
ユースケース:
Claude Desktop へのプロンプト:「過去 90 日間について、すべての AWS CLI プロファイルの
usage-type別コストを取得してください。また、リージョンap-south-1のすべてのプロファイルのaudit reportを取得してください。データを簡潔にまとめた、プロフェッショナルな FinOps レポートを作成してください。」

Amazon Q CLI へのプロンプト:「
aws-finopsMCP サーバーを使って、profile 04の過去 6 か月分の各月のコストデータを取得し、合計コストと各サービスのコストが毎月どのように変化したかを示す表形式で提示してもらえますか?」

Claude Desktop へのプロンプト:「AWS FinOps MCP サーバーで利用できるすべてのツールを使用して、経営陣向けの包括的な FinOps レポートを作成してください。利用可能なすべての CLI プロファイルを使用し、必要な場合は常にリージョン ap-south-1 を使用してください。」

AWS FinOps MCP サーバーを使って Claude が作成したその他のレポート例
目次
- MCP サーバーとは?
- AWS FinOps MCP サーバーを使う理由
- 主な機能
- 前提条件
- インストール
- 設定
- 使用方法とプロンプト例
- ツールリファレンス
- コストに関する考慮事項
- 開発とコントリビューション
- ライセンス
主な機能
- 詳細なコスト分析:タグ、期間、サービスのグループ分けを使って AWS のコストデータを照会できます。
- FinOps 監査の自動化:停止中の EC2 インスタンス、アタッチされていない EBS ボリューム、関連付けられていない Elastic IP など、クラウドコストの無駄につながる一般的な原因をすぐに見つけられます。
- 予算のモニタリング:AWS Budgets のステータスを確認して、予算内か、予算超過か、または上限を超える見込みかを把握できます。
- 複数のプロファイルとリージョンに対応:1 つのコマンドで、設定済みの AWS アカウントやリージョンの一部またはすべてにわたってシームレスに照会できます。
- セキュリティを考慮した設計:AWS 認証情報がマシンの外部に出ることはありません。サーバーはローカルで実行され、既存の AWS CLI 設定を使って AWS に直接 API コールを行います。
前提条件
一般的な要件
- Python 3.10 以降:互換性のあるバージョンの Python がインストールされていることを確認してください。
- MCP クライアント:MCP をサポートするアプリケーションです。このガイドでは、例として Claude for Desktop を使用します。
AWS の要件と IAM 権限
- AWS CLI:AWS CLI をマシンにインストールする必要があります。
- AWS アカウントとプロファイル:少なくとも 1 つの AWS プロファイルを設定する必要があります。
- IAM 権限:プロファイルに関連付けられた AWS ID(IAM ユーザーまたはロール)には、正常に動作するための特定の読み取り専用権限が必要です。
以下の JSON を使って IAM ポリシーを作成し、ユーザーまたはロールにアタッチしてください。これらの権限は読み取り専用で、必要なサービスのみにアクセスできます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowFinOpsMCPServer",
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsage",
"budgets:ViewBudget",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ec2:DescribeAddresses",
"sts:GetCallerIdentity"
],
"Resource": "*"
}
]
}
インストール
AWS FinOps MCP Server をインストールする方法はいくつかあります。
オプション 1:pipx を使用(推奨)
pipx install aws-finops-mcp-server
pipx がインストールされていない場合は、次のコマンドでインストールしてください。
python -m pip install --user pipx
python -m pipx ensurepath
オプション 2:uv を使用(高速な Python パッケージインストーラー)
uv は、非常に高速な最新の Python パッケージインストーラー兼リゾルバーです。
# Install uv if you don't have it yet
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create project directory
mkdir aws-finops-mcp-server && cd aws-finops-mcp-server
# Create and activate python virtual environment
uv venv && source .venv/bin/activate
# Install aws-finops-dashboard
uv pip install aws-finops-mcp-server
オプション 3:ソースからインストール
# Clone the repository
git clone https://github.com/ravikiranvm/aws-finops-mcp-server.git
cd aws-finops-mcp-server
# Create and activate python virtual environment
python -m venv .venv && source .venv/bin/activate
# Install using pip
pip install -e .
設定
ステップ 1:AWS CLI プロファイルの設定
まだ設定していない場合は、AWS プロファイルを設定してください。使用する各プロファイルについて、次のコマンドを実行します。
aws configure --profile your-profile-name
CLI から次の情報を求められます。
AWS Access Key ID:認証情報のアクセスキーです。AWS Secret Access Key:認証情報のシークレットキーです。Default region name:例:us-east-1。Default output format:例:json。
デフォルトのプロファイルでは、--profile フラグを省略できます。
ステップ 2:MCP クライアントの設定(Claude for Desktop)
このサーバーを Claude for Desktop で使用するには、アプリケーションにサーバーの実行方法を指定する必要があります。
-
Claude for Desktop の設定ファイルを開きます。ファイルは次の場所にあります。
- macOS / Linux:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS / Linux:
-
mcpServersオブジェクトに次の項目を追加します。ファイルが存在しないか、空の場合は、JSON の構造を作成する必要があります。{ "mcpServers": { "aws_finops": { "command": "aws-finops-mcp-server", "args": [] } } } -
ファイルを保存し、Claude for Desktop を完全に再起動します。
再起動後、サーバーがバックグラウンドで起動し、ツールを Claude で利用できるようになります。
⚠️ 注意:
このツールをインストールした後(例:pipx install aws-finops-mcp-server)、aws-finops-mcp-serverコマンドがシステムのPATHから利用できることを確認してください。インストール先を確認するには、次のコマンドを実行します。
which aws-finops-mcp-server
/Users/yourname/.local/bin/aws-finops-mcp-serverのようなパスが返されても、そのパスがPATH に含まれていない場合は、次のいずれかを行ってください。
pipx ensurepathを実行して、ターミナルを再起動する、またはmcpServersの設定でフルパスを使用する。{ "mcpServers": { "aws_finops": { "command": "/full/path/to/aws-finops-mcp-server", "args": [] } } }
使用方法とプロンプト例
AWS の財務について、自然な英語で質問できるようになりました。
ユースケース:コストと使用状況の分析
基本的なクエリ: 「今月の
defaultプロファイルの AWS コストを表示してください。」
期間を指定したクエリ: 「
devプロファイルの過去 14 日間の AWS コストを取得してください」
フィルターとグループ化を指定したクエリ: 「先月の
productionプロファイルのコストを、タグCostCenter=Project-Alphaでフィルタリングし、INSTANCE_TYPEでグループ化した場合、いくらでしたか?」
複数のプロファイルを対象としたクエリ: 「過去 30 日間の
stagingプロファイルとproductionプロファイルのコストを比較してください。」
ユースケース:FinOps の無駄と節約の監査
簡易監査: 「
us-east-1のdefaultプロファイルで FinOps 監査を実行してください。」
複数のリージョンとプロファイルを対象とした監査: 「
prod-usプロファイルとprod-euプロファイルについて、us-west-2とeu-west-1で未使用のリソースを確認してください。」
すべてのプロファイルを対象とした包括的な監査: 「
us-east-1で、設定済みのすべてのプロファイルに対して FinOps 監査を実行してください。」
対応クライアント
- Claude Desktop
- Amazon Q CLI
- ツールに対応する MCP 互換クライアント
MCP サーバーに対応するクライアントの一覧は https://modelcontextprotocol.io/clients をご覧ください。
ツールのリファレンス
get_cost
AWS Cost Explorer からコストと使用状況のデータを取得します。
| パラメーター | 型 | 説明 |
|---|---|---|
profiles | List[str] | 使用する AWS CLI プロファイル名のリストです。 |
all_profiles | bool | True の場合、利用可能なすべてのプロファイルを使用します。デフォルトは False です。 |
time_range_days | int | データを取得する過去の日数です(例:過去 7 日間の場合は 7)。 |
start_date_iso | str | YYYY-MM-DD 形式の開始日です。time_range_days より優先されます。 |
end_date_iso | str | YYYY-MM-DD 形式の終了日です。start_date_iso と併用する必要があります。 |
tags | List[str] | コスト配分タグでフィルタリングします。形式:["Key=Value", "Key2=Value2"]。 |
dimensions | List[str] | ディメンションでフィルタリングします。形式:["REGION=us-east-1"]。 |
group_by | str | コストをグループ化するディメンションです。デフォルトは SERVICE です。 |
run_finops_audit
未使用のリソースや、コストが高くなる可能性のあるリソースを見つけるために、財務監査を実行します。
| パラメーター | 型 | 説明 |
|---|---|---|
regions | List[str] | 監査を実行する AWS リージョンのリストです(例:["us-east-1", "eu-west-1"])。 |
profiles | List[str] | 使用する AWS CLI プロファイル名のリストです。 |
all_profiles | bool | True の場合、利用可能なすべてのプロファイルを使用します。デフォルトは False です。 |
出力形式: JSON、CSV、PDF、HTML、Markdown(クライアントの機能によって異なります)
コストに関する考慮事項
このツールは AWS Cost Explorer API を利用します。これらの API 呼び出しには AWS の料金がかかります。
- コスト:
get_costツールを使用するたびに、Cost Explorer API が 2 回呼び出され、$0.01 の費用が発生します。 run_finops_auditツールは、他の AWS サービス API(EC2、Budgets)を呼び出します。通常の使用量であれば、これらは無料利用枠に含まれるか、コストはごくわずかです。
開発とコントリビューション
コントリビューションを歓迎します。サーバーの改善や新機能の追加をご希望の場合は、以下の手順に従ってください。
- フォークとクローン: リポジトリをフォークし、ローカルマシンにクローンします。
- 環境をセットアップ:
git clone https://github.com/your-username/aws-finops-mcp-server.git cd aws-finops-mcp-server python -m venv .venv source .venv/bin/activate # On Windows, use `.venv\Scripts\activate` - 編集可能モードでインストール:
pip install -e . - 変更を加える: 機能やバグ修正を追加します。
- プルリクエストを送信: 変更内容を明確に説明し、
mainブランチに対して PR を作成します。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳しくは LICENSE ファイルをご覧ください。
これは https://github.com/ravikiranvm/aws-finops-dashboard の姉妹プロジェクトです。
❤️ を込めて Ravi Kiran が作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。