mcpField
C
cloud-tools

cloud-tools

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

cloud-tools について

cloud-toolsは、AWS、GCP、Cloudflare、OVHの支出、リソース一覧、無駄、コミットメントを調べるRust製MCPサーバー兼HTTP APIです。実行環境の認証情報を使い、読み取り専用で照会します。

主な機能

  1. 01コストと複数クラウドの支出照会
  2. 02対応クラウドのリソース一覧
  3. 03AWSとGCPの無駄分析
  4. 04コミットメントと推奨事項のレポート
  5. 05アクセス状況と結果の網羅性確認

活用シーン

  1. 01複数クラウドの支出を確認
  2. 02アイドル状態や過剰なリソースを特定
  3. 03クラウドへのアクセスと結果の不足を確認
  4. 04コミットメントやGCPの推奨事項を確認

MCP 対応

stdioまたはストリーミング可能なHTTP経由で、エージェント向けに8種類の読み取り専用ツールを提供します。認証情報はツール呼び出しに含めず、サーバーの実行環境から読み込みます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"munhq-cloud-tools": {
"command": "npx",
"args": [
"-y",
"@munhq/cloud-tools"
],
"env": {
"CLOUD_TOOLS_MODE": "<CLOUD_TOOLS_MODE>"
}
}
}
}
起動コマンドnpx -y @munhq/cloud-tools
設定が必要な環境変数
CLOUD_TOOLS_MODEmcp for an MCP client over stdio, http for the REST API. Defaults to mcp, which is what every MCP client wants.

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

パッケージ
npm@munhq/cloud-tools0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

cloud-tools

MCP Registry Smithery Glama

Install in Cursor Install in VS Code

Rust によるマルチクラウドのコスト、インベントリ、無駄の分析機能を提供します。AI エージェントが支出や無駄を直接照会できる MCP サーバー として、またそれ以外のすべてに対応する HTTP API として公開されます。

支出と無駄をレポートします。アイドル状態のインスタンス、過剰なサイズのノード、旧世代のハードウェア、未接続のリソース、利用していないコミットメントを検出します。

8 つのツール、共通の形式

各ツールで必要なのは cloud だけです。ツール呼び出しに認証情報が 含まれることはありません。サーバーが自身の環境から認証情報を読み取るため、 エージェントがシークレットを扱うことも、シークレットを渡される必要もありません。

{ "cloud": "aws" }
{ "cloud": "gcp" }

まず check_access を実行してください。引数は不要で、クラウドに接続することもなく、このサーバーがアクセスできるクラウドと、アクセスできないクラウドで不足しているものを報告します。

ツールAWSGCPCloudflareOVH
check_access4 つすべての設定を報告
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

次の順序で確認し、最初に一致したものが使われます。

  1. AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY
  2. ~/.aws/credentials。プロファイルは AWS_PROFILE から取得し、指定がない場合は [default]
  3. ECS タスクロール
  4. 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_TABLEBigQuery の請求額エクスポート、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 をご覧ください。

コメント

MCP は初めてですか?

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

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