mcpField
C
Cloudcraft MCP

Cloudcraft MCP

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

Cloudcraft MCP について

Cloudcraft MCP は、MCP クライアントから Cloudcraft のアーキテクチャブループリントを管理する非公式サーバーです。ブループリント操作やエクスポート、AWS と Azure のスナップショットに対応し、書き込みと削除は既定で無効です。

主な機能

  1. 01ブループリントの一覧表示と取得
  2. 02ブループリントの作成・更新・削除
  3. 03画像とコスト見積もりのエクスポート
  4. 04AWS と Azure リージョンのスナップショット
  5. 05チームと接続済みアカウントの一覧

活用シーン

  1. 01MCP クライアントでブループリントを確認
  2. 02ブループリントを PNG、SVG、PDF に出力
  3. 03コスト見積もりを CSV または XLSX に出力
  4. 04接続済み AWS または Azure アカウントからスナップショットを作成

MCP 対応

Cloudcraft のプロフィール、ブループリント、チーム、クラウドアカウント、スナップショットを操作する 13 個のツールを MCP クライアントに公開します。Cloudcraft API キーが必要で、ブループリントの書き込みと削除には環境設定による明示的な有効化が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"hypark5540-cloudcraft": {
"command": "npx",
"args": [
"-y",
"@hypark5540/cloudcraft-mcp"
],
"env": {
"CLOUDCRAFT_API_KEY": "<CLOUDCRAFT_API_KEY>",
"CLOUDCRAFT_BASE_URL": "<CLOUDCRAFT_BASE_URL>",
"CLOUDCRAFT_LOG_LEVEL": "<CLOUDCRAFT_LOG_LEVEL>",
"CLOUDCRAFT_EXPORT_DIR": "<CLOUDCRAFT_EXPORT_DIR>",
"CLOUDCRAFT_ENABLE_WRITES": "<CLOUDCRAFT_ENABLE_WRITES>",
"CLOUDCRAFT_ENABLE_DELETES": "<CLOUDCRAFT_ENABLE_DELETES>",
"CLOUDCRAFT_MAX_RESPONSE_BYTES": "<CLOUDCRAFT_MAX_RESPONSE_BYTES>"
}
}
}
}
起動コマンドnpx -y @hypark5540/cloudcraft-mcp
設定が必要な環境変数
CLOUDCRAFT_API_KEYシークレットCloudcraft API key with access to the target account
CLOUDCRAFT_BASE_URLCloudcraft API base URL; HTTPS is required except for loopback testing
CLOUDCRAFT_LOG_LEVELMinimum log level written to stderr
CLOUDCRAFT_EXPORT_DIRDirectory under which exported blueprint files may be written
CLOUDCRAFT_ENABLE_WRITESEnable create and update operations
CLOUDCRAFT_ENABLE_DELETESEnable irreversible deletes; writes must also be enabled
CLOUDCRAFT_MAX_RESPONSE_BYTESMaximum bytes accepted from one Cloudcraft API response

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

パッケージ
npm@hypark5540/cloudcraft-mcp0.1.8
pypicloudcraft-mcp0.1.8
ocighcr.io/hypark5540/cloudcraft-mcp:0.1.8

ツール

13

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

このツールにパラメーターはありません。

詳細

cloudcraft-mcp

CI codecov PyPI npm License: MIT Python 3.10+

Cloudcraft 用の非公式 Model Context Protocol(MCP)サーバーです。Claude Desktop やその他の MCP クライアントから、クラウドアーキテクチャのブループリントの一覧表示、読み込み、エクスポート、作成を行えます。

機能

MCP ホストに公開される 13 個のツール:

ツール説明
whoami設定されたキーに対応する Cloudcraft ユーザープロフィールを返します。
list_blueprintsアカウント内のすべてのブループリントを一覧表示します。
get_blueprintブループリントのすべてのノード/エッジを含む JSON を取得します。
create_blueprintJSON ペイロードから新しいブループリントを作成します。
update_blueprint既存のブループリントのペイロードを置き換えます。
delete_blueprintブループリントを削除します(取り消し不可)。
export_blueprint_imageブループリントを PNG/SVG/PDF/mxgraph としてディスクにレンダリングします。
export_blueprint_budgetブループリントのコスト見積もりを CSV/XLSX としてディスクにエクスポートします。
list_teamsアカウントに関連付けられたチームを一覧表示します。
list_aws_accountsライブスキャンのスナップショット用に接続された AWS アカウントを一覧表示します。
snapshot_awsAWS の 1 つのリージョンをライブスキャンし、ブループリント JSON に変換します(filter/exclude は省略可能)。
list_azure_accountsライブスキャンのスナップショット用に接続された Azure アカウントを一覧表示します。
snapshot_azureAzure の 1 つのリージョンをライブスキャンし、ブループリント JSON に変換します(filter/exclude は省略可能)。

必要条件

  • 推奨される uvx および npm 起動方法で使用する uv
  • npm 起動方法を使用する場合のみ Node.js 22+
  • Cloudcraft API キー — https://app.cloudcraft.co/ → User settings → API keys で生成できます

インストール

アップグレードを意図的に行えるよう、クライアント設定では変更されないバージョンを使用してください。

配布方法コマンド
PyPI / uvxuvx --from cloudcraft-mcp==0.1.8 cloudcraft-mcp
pipxpipx run --spec cloudcraft-mcp==0.1.8 cloudcraft-mcp
npm / npxnpx -y @hypark5540/[email protected]
Docker / GHCRdocker run --rm -i -e CLOUDCRAFT_API_KEY ghcr.io/hypark5540/cloudcraft-mcp:0.1.8
Claude Desktop対応する GitHub リリースから cloudcraft-mcp.mcpb をダウンロード

uvx は PyPI パッケージから提供されます。uvx 専用のレジストリはありません。 npm パッケージにはバイト単位で同一の Python wheel が組み込まれており、uv を介して実行されるため、npm を使う場合は Node.js と uv の両方が必要です。postinstall フックでコードをダウンロードすることはありません。

チェックアウトしたリポジトリから開発する場合:

git clone https://github.com/hypark5540/cloudcraft-mcp.git
cd cloudcraft-mcp
export CLOUDCRAFT_API_KEY='your-key-here'
uv run --frozen cloudcraft-mcp   # Ctrl+C to exit

Claude Desktop との統合

uv をインストールし、Claude Desktop の設定に次のエントリを追加してください。利用可能な場合は Claude のシークレットストレージを使用してください。以下のリテラル値は、どの環境でも使える例にすぎません。

{
  "mcpServers": {
    "cloudcraft": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--isolated",
        "--from",
        "cloudcraft-mcp==0.1.8",
        "cloudcraft-mcp"
      ],
      "env": {
        "CLOUDCRAFT_API_KEY": "your-key-here",
        "CLOUDCRAFT_ENABLE_WRITES": "false",
        "CLOUDCRAFT_ENABLE_DELETES": "false"
      }
    }
  }
}

Claude Desktop を再起動します。Developer タブに cloudcraft が接続済みとして表示されます。

Cursor、Gemini CLI、npm、Docker、MCPB の例については、クライアントのセットアップを参照してください。

環境変数
名前必須デフォルト用途
CLOUDCRAFT_API_KEYはい—API キー(Bearer)。Cloudcraft のユーザー設定で生成します。
CLOUDCRAFT_BASE_URLいいえhttps://api.cloudcraft.coプロキシや将来の API バージョン向けの上書き設定です。
CLOUDCRAFT_LOG_LEVELいいえWARNING標準エラー出力のログ詳細度(DEBUG / INFO / WARNING / ERROR)。
CLOUDCRAFT_EXPORT_DIRいいえ非公開の一時サブディレクトリexport_blueprint_image の出力先として使用できるディレクトリです。
CLOUDCRAFT_ENABLE_WRITESいいえfalsecreate_blueprint と update_blueprint を許可します。
CLOUDCRAFT_ENABLE_DELETESいいえfalse書き込みも有効な場合に削除を許可します。
CLOUDCRAFT_MAX_RESPONSE_BYTESいいえ26214400メモリやディスクを使い果たす前に、サイズ超過の Cloudcraft レスポンスを拒否します。

使用例(Claude)

サーバーに接続したら、Claude に次のように依頼できます。

「Cloudcraft のブループリントを一覧表示して、それぞれが何を表しているか要約してください。」

「ブループリント f0086b32-... を PNG としてエクスポートして、デスクトップに保存してください。」

「今設計したアーキテクチャを使って、『Prod 2026』という名前の新しい Cloudcraft ブループリントを作成してください。」

「接続している AWS アカウントの ap-northeast-2 のスナップショットを、セキュリティグループを除外して作成してください。」

「ブループリント f0086b32-... の月次予算を EUR 建ての CSV としてエクスポートしてください。」

ブループリントのペイロード形式

create_blueprint / update_blueprint では、Cloudcraft の完全な data オブジェクトを受け付けます。最小限のペイロードは次のとおりです。

{
  "grid": "infinite",
  "projection": "isometric",
  "theme": {"base": "light"},
  "version": 6,
  "nodes": [
    {"id": "...", "type": "ec2", "mapPos": [3, 3], "region": "ap-northeast-2",
     "instanceType": "m7g", "instanceSize": "large", "platform": "linux"},
    {"id": "...", "type": "s3",  "mapPos": [1, 8], "region": "ap-northeast-2",
     "volumeType": "Standard", "dataGb": 100}
  ],
  "edges": [
    {"from": "...ec2-id...", "to": "...s3-id...", "type": "edge",
     "width": 2, "dashed": false, "endCap": "arrow"}
  ],
  "groups": [], "surfaces": [], "text": [], "icons": [],
  "connectors": [], "images": [], "disabledLayers": [],
  "shareDocs": false
}

ノードタイプの全カタログとサービス固有のフィールドについては、Cloudcraft の API ドキュメントを参照してください。

開発

uv sync --extra dev
uv run pytest            # unit tests (no network)
uv run ruff check .      # lint
uv run mypy src          # type check

テストでは respx を使って HTTP レイヤーをモックするため、API キーは不要です。

カバレッジ

CI は Python 3.12 のマトリックスセルから coverage.xml を Codecov にアップロードします。プロジェクトのゲートは 80% 以上です。全体またはパッチのカバレッジがこの基準を 1 パーセンテージポイントを超えて下回る PR は、Codecov チェック(codecov.yml)で失敗します。

同じレポートをローカルで実行するには、次のコマンドを使います。

uv run pytest --cov=cloudcraft_mcp --cov-report=term-missing --cov-report=xml
プロジェクト構成
cloudcraft-mcp/
├── src/cloudcraft_mcp/
│   ├── __init__.py
│   ├── __main__.py         # python -m cloudcraft_mcp
│   ├── server.py           # MCP tool definitions (FastMCP)
│   ├── client.py           # CloudcraftClient — async httpx wrapper
│   ├── types.py            # TypedDicts for blueprint payloads
│   └── py.typed
├── tests/
│   └── test_client.py
├── bin/cloudcraft-mcp.mjs # npm-to-uv launcher
├── mcpb/manifest.json     # Claude Desktop bundle metadata
├── server.json            # official MCP Registry metadata
├── package.json           # npm distribution
├── server.py               # back-compat shim -> cloudcraft_mcp.server:main
├── pyproject.toml
├── LICENSE
└── README.md

設計上の注意点

  • トランスポートとロジックの分離。 client.py は、MCP ランタイムを取り込まずにスクリプトや CLI ツールからインポートできる、通常の非同期 HTTP クライアントです。server.py は MCP ツールのインターフェースのみを担当します。
  • Bearer トークン認証。 Cloudcraft の API は Authorization: Bearer <key>(Apikey ではありません)を要求します。クライアントがこれを自動的に設定します。
  • プロセス引数にシークレットを含めない。 API キーは CLOUDCRAFT_API_KEY から読み込みます。コマンドラインで渡さないでください。
  • 実装は一つ。 PyPI、npm、MCPB、コンテナは、言語ごとのフォークを個別に維持せず、同じバージョン管理された Python パッケージを起動します。
  • エラーの扱い。 2xx 以外のレスポンスでは、ステータスと本文を保持した CloudcraftError が発生します。MCP の境界で RuntimeError に再ラップされるため、Claude に読みやすいメッセージが表示されます。

セキュリティ

  • API キーは、Cloudcraft アカウントへの完全な読み取り/書き込み権限を付与します。秘密情報として扱い、定期的にローテーションしてください。
  • MCP ツールのアノテーションは、読み取り専用のツールと変更・破壊を伴うツールを示すため、対応するホストでより適切な承認プロンプトを表示できます。これらのアノテーションはヒントであり、強制する仕組みではありません。
  • 環境変数によるゲートと、削除時の正確な ID の確認は、多層防御のためのものであり、 対話的な承認ワークフローではありません。MCP ホストのツール承認 UX は有効にしておいてください。
  • Cloudcraft への変更はデフォルトで無効になっています。作成/更新アクセスが必要なクライアントに限り、CLOUDCRAFT_ENABLE_WRITES=true を設定してください。削除にはさらに、CLOUDCRAFT_ENABLE_DELETES=true の設定と、各呼び出しでのブループリント ID の正確な再指定が必要です。
  • delete_blueprint は取り消せません。Claude に削除を依頼するときは、対象の ID を明確に指定してください。
  • export_blueprint_image による書き込みは、CLOUDCRAFT_EXPORT_DIR (デフォルトではプロセス専用の一時サブディレクトリ)以下にサンドボックス化され、overwrite=True を指定しない限り、既存のファイルへの上書きを拒否します。
  • 読み取り中心の構成では、読み取り専用のスコープ(Cloudcraft がスコープ付きキーを追加した場合)を持つ専用の Cloudcraft ユーザーを作成し、そのキーを MCP に使用してください。
  • 対応バージョンと非公開の報告手順は SECURITY.md に、データフローは PRIVACY.md に記載されています。

貢献

https://github.com/hypark5540/cloudcraft-mcp で、Issue や PR を歓迎しています。提出前に ruff、mypy、pytest を実行してください。

ライセンス

MIT — LICENSE を参照してください。

関連情報

コメント

MCP は初めてですか?

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

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