cloud-tools について
cloud-toolsは、AWS、GCP、Cloudflare、OVHの支出、リソース一覧、無駄、コミットメントを調べるRust製MCPサーバー兼HTTP APIです。実行環境の認証情報を使い、読み取り専用で照会します。
主な機能
- 01コストと複数クラウドの支出照会
- 02対応クラウドのリソース一覧
- 03AWSとGCPの無駄分析
- 04コミットメントと推奨事項のレポート
- 05アクセス状況と結果の網羅性確認
活用シーン
- 01複数クラウドの支出を確認
- 02アイドル状態や過剰なリソースを特定
- 03クラウドへのアクセスと結果の不足を確認
- 04コミットメントやGCPの推奨事項を確認
MCP 対応
stdioまたはストリーミング可能なHTTP経由で、エージェント向けに8種類の読み取り専用ツールを提供します。認証情報はツール呼び出しに含めず、サーバーの実行環境から読み込みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Rust によるマルチクラウドのコスト、インベントリ、無駄の分析機能を提供します。AI エージェントが支出や無駄を直接照会できる MCP サーバー として、またそれ以外のすべてに対応する HTTP API として公開されます。
支出と無駄をレポートします。アイドル状態のインスタンス、過剰なサイズのノード、旧世代のハードウェア、未接続のリソース、利用していないコミットメントを検出します。
8 つのツール、共通の形式
各ツールで必要なのは cloud だけです。ツール呼び出しに認証情報が
含まれることはありません。サーバーが自身の環境から認証情報を読み取るため、
エージェントがシークレットを扱うことも、シークレットを渡される必要もありません。
{ "cloud": "aws" }
{ "cloud": "gcp" }
まず check_access を実行してください。引数は不要で、クラウドに接続することもなく、このサーバーがアクセスできるクラウドと、アクセスできないクラウドで不足しているものを報告します。
| ツール | AWS | GCP | Cloudflare | OVH |
|---|---|---|---|---|
check_access | 4 つすべての設定を報告 | |||
get_costs | はい | 請求テーブルが必要 | はい | はい |
compare_costs | はい | 請求テーブルが必要 | — | — |
get_inventory | — | はい | はい | はい |
get_waste | はい | はい | — | — |
get_commitments | はい | はい | — | — |
get_recommendations | — | はい | — | — |
get_cross_cloud_summary | サーバーがアクセスできるすべてのクラウド |
ダッシュは、何も報告しないという意味ではありません。たとえば、ツールは
waste analysis is not implemented for ovh; supported: aws, gcp と返すため、エージェントが未対応を問題なしと誤認することはありません。
ゼロを正しく読み取る
get_waste と get_inventory は coverage フィールドと errors リストを返します。
合計がゼロの場合、意味はまったく異なる次の 2 つのうちいずれかです。
| coverage | 意味 |
|---|---|
complete | 無駄はありません。 |
PARTIAL — N API call(s) failed… | アカウントの一部を読み取れませんでした。 |
部分的な結果を、問題がない状態とみなすことはできません。
サーバーの設定
認証情報は cloud-tools を実行しているマシンの環境から読み取られます。 何も保存されず、すべての呼び出しは読み取り専用です。
AWS
次の順序で確認し、最初に一致したものが使われます。
AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEY~/.aws/credentials。プロファイルはAWS_PROFILEから取得し、指定がない場合は[default]- ECS タスクロール
- EC2 インスタンスロール
SSO のみのプロファイルは直接読み取れません。先に次のコマンドでエクスポートしてください。
aws configure export-credentials --profile <name> --format env
別のアカウントをスキャンするには、引き受けるロールを渡します。ロール ARN はシークレットではないため、引数として指定できます。
{ "cloud": "aws", "target": { "role_arn": "arn:aws:iam::…:role/ReadOnly" } }
CLOUD_TOOLS_AWS_ROLE_ARN と CLOUD_TOOLS_AWS_EXTERNAL_ID を設定すると、すべての呼び出しで同じロールを引き受ける場合のデフォルトになります。
get_waste は、EC2 インスタンス、ボリューム、スナップショット、AMI、Elastic IP、キーペア、リザーブドインスタンス、RDS、S3、Lambda、DynamoDB、ECS、ElastiCache、ロードバランサー、NAT ゲートウェイ、保持期間が設定されていない CloudWatch ロググループ、Compute Optimizer を読み取ります。アイドル状態と過剰なサイズは CloudWatch の CPU 時系列データから取得するため、推測ではなく実測値です。
GCP
Application Default Credentials — gcloud auth application-default login だけで十分です。または、サービスアカウントファイルを指す GOOGLE_APPLICATION_CREDENTIALS を設定してください。
| 変数 | 用途 |
|---|---|
CLOUD_TOOLS_GCP_PROJECTS | クエリ対象のプロジェクト ID(カンマ区切り) |
CLOUD_TOOLS_GCP_BILLING_TABLE | BigQuery の請求額エクスポート、project.dataset.table |
target.project_ids を使って、呼び出しごとにプロジェクトを選ぶこともできます。これにより、1 つのエージェントで複数のプロジェクトをスキャンできます。
billing_table は重要です。Google はサービスごとの支出 API を提供していないため、実際のコストは BigQuery の請求額エクスポートから取得します。これを設定しない場合、get_costs は Budgets API にフォールバックし、結果に "source": "budgets" というラベルを付け、これらは支出額ではなく予算額であることを示す注記を付けます。compare_costs では必須です。
Cloudflare
CLOUDFLARE_API_TOKEN a token with read access to account resources
CLOUDFLARE_ACCOUNT_ID
OVH
OVH_APPLICATION_KEY
OVH_APPLICATION_SECRET
OVH_CONSUMER_KEY
OVH_ENDPOINT ovh-eu (default), ovh-us or ovh-ca
インストール
まだリリースされていません。 最新のタグは
v0.1.0で、以前のアセット名の.tar.gzアーカイブが公開されています。また、@munhq/cloud-toolsは npm にありません。以下の 3 つのコマンドは、v0.2.0がタグ付けされるとすぐに使えるようになります。それまでは、 ソースからビルドしてください:cargo build --release。
MCP サーバーとして
claude mcp add cloud-tools -- npx -y @munhq/cloud-tools
Claude Desktop、Cursor、Windsurf、Zed、Cline など、JSON 設定を読み込むもの:
{ "mcpServers": { "cloud-tools": { "command": "npx", "args": ["-y", "@munhq/cloud-tools"] } } }
サーバーは JavaScript ではなくコンパイル済みバイナリであるため、npm パッケージは小さなラッパーです。インストール時に、使用するプラットフォーム向けのリリースアセットを解決し、公開済みの SHA256SUMS と照合して検証し、~/.cache/cloud-tools/bin/ にキャッシュして実行します。
バイナリとして
Linux、macOS、Windows 用の x86_64 および arm64 のビルド済みバイナリが、各リリースに添付されています。以下のスクリプトは、お使いのマシン向けのものをダウンロードし、SHA256SUMS と照合して検証します:
curl -sSL https://raw.githubusercontent.com/munhq/cloud-tools/main/install.sh | bash
または、アセットを 1 つだけ直接取得します:
curl -fsSLO https://github.com/munhq/cloud-tools/releases/latest/download/cloud-tools-x86_64-linux
chmod +x cloud-tools-x86_64-linux
コンテナとして
docker run -i --rm \
-e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_REGION \
munhq/cloud-tools
実行
オプションのバイナリを備えたライブラリ(cloud_tools)としてビルドされています。機能フラグは 2 つあり、どちらもデフォルトで有効です:
mcp—rmcpによる stdio およびストリーム可能な HTTP 経由の MCP サーバーhttp— axum による HTTP API
cargo build --release
./target/release/cloud-tools # MCP server on stdio
MCP サーバーとして、MCP 対応のエージェントに接続できます。エージェントは上記のツールを直接呼び出し、結果をもとに推論します。
代わりに埋め込む場合は、ライブラリに依存し、バイナリの機能を無効にしてください:
cloud-tools = { git = "https://github.com/munhq/cloud-tools", default-features = false }
ステータス
AWS、GCP、Cloudflare、OVH の実稼働アカウントで動作し、利用されています。無駄の分析に対応しているのは AWS と GCP のみです。Cloudflare と OVH には、ルールが少ないというだけではなく、無駄の分析機能がまったくなく、get_waste は空のリストを返すのではなく、その旨を伝えます。AWS にはまだインベントリツールがありませんが、その機能の基盤となる一覧取得処理はすでにあります。プロバイダーへの対応追加を歓迎します。
プライバシーポリシー
cloud-tools は何も収集しません。テレメトリーも、分析も、いかなる種類のホームへの通信もありません。これは、ソース内にあるホストがクラウドプロバイダーの API と、npm ラッパーが使用するプラットフォーム用バイナリのダウンロード先である github.com だけであることから確認できます。
収集される情報。 何もありません。アカウント登録も、サインアップも、識別子も不要です。
処理される情報とその場所。 渡された認証情報は、お客様自身のクラウドプロバイダーへのリクエストに署名するために使用され、その呼び出しが続く間、メモリ上に保持されます。サーバーはお客様のマシン上で動作するため、munhq や第三者に情報が送信されることはありません。応答は、それを要求した MCP クライアントに返され、それ以外の場所には送られません。
保存と保持期間。 ディスクへの書き込みも、情報の保持もありません。唯一の例外は npm ラッパーです。ダウンロードしたバイナリを ~/.cache/cloud-tools/bin/ にキャッシュするため、実行のたびに再取得する必要がありません。このキャッシュに保存されるのはプログラムであり、お客様のデータや認証情報ではありません。
ログ記録。 診断情報は stderr に出力され、MCP クライアントによって取得されます。認証情報がログに記録されることはありません。エラーメッセージにはプロバイダー自身の応答が引用されるため、プロジェクト名、アカウント ID、リソース名が含まれる場合があります。これらは、ツールに報告を求めた情報と同じです。
第三者との共有。 ありません。ネットワーク接続先は、提供された認証情報に対応するプロバイダーのクラウド API のみです。
AWS(*.amazonaws.com)、Google Cloud(*.googleapis.com)、Cloudflare(api.cloudflare.com)、OVH(*.api.ovh.com、api.us.ovhcloud.com)。
権限。 すべてのツールで読み取り専用の権限があれば十分です。8 つすべてで readOnlyHint: true が宣言されており、このサーバーがクラウドリソースを作成、変更、削除することはありません。
お問い合わせ先。 [email protected]。このポリシーの正式版は https://munhq.com/privacy/cloud-tools にあります。
ライセンス
Apache-2.0。LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。