mcpField
A
Architecture Diagrams

Architecture Diagrams

ローカル
github.comクラウド・インフラ12 日前に更新

Architecture Diagrams について

Architecture Diagramsは、クラウドアーキテクトや開発者向けに、AWS、Azure、Google Cloudの構成図を作成、レビュー、インポートするMCPサーバーです。各プロバイダーの公式アイコンを使い、TerraformやGoogle Cloudのリソース一覧からも図を生成できます。

主な機能

  1. 01複数形式での構成図レンダリング
  2. 02公式クラウドサービスアイコンの検索
  3. 03図の仕様の検証
  4. 04指摘事項付きのアーキテクチャレビュー
  5. 05Terraformリソースのインポート
  6. 06Google Cloudインベントリのインポート

活用シーン

  1. 01新しいクラウド構成の図示
  2. 02Terraformの計画や状態から図を作成
  3. 03稼働中のGoogle Cloudリソースの可視化
  4. 04設計の信頼性とセキュリティ上の懸念確認

MCP 対応

MCPサーバーとして、アイコンやテンプレートの検索、図の検証・生成・レビュー、TerraformおよびGoogle Cloudインベントリのインポート機能をクライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"apatilgtn-architecture-diagrams": {
"command": "npx",
"args": [
"-y",
"arch-diagram-mcp"
],
"env": {
"ARCH_DIAGRAM_OUTPUT_DIR": "<ARCH_DIAGRAM_OUTPUT_DIR>",
"ARCH_DIAGRAM_INPUT_ROOTS": "<ARCH_DIAGRAM_INPUT_ROOTS>"
}
}
}
}
起動コマンドnpx -y arch-diagram-mcp
設定が必要な環境変数
ARCH_DIAGRAM_OUTPUT_DIRFolder for rendered diagrams (default: ~/architecture-diagrams)
ARCH_DIAGRAM_INPUT_ROOTSFolders the server may read Terraform or inventory files from, separated by the OS path separator

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

パッケージ
pypiarch-diagram-mcp1.2.0
npmarch-diagram-mcp1.2.0

ツール

10

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

パラメーター型必須説明
limitintegerいいえ
querystringはい
provideranyいいえ

詳細

アーキテクチャ図 MCP サーバー

arch-diagram-mcp は、AWS、Azure、Google Cloud のクラウドアーキテクチャ図を生成、レビュー、インポートする MCP サーバーです。Kubernetes、オンプレミス、PostgreSQL、Redis、Kafka、Nginx などの SaaS サービスを含む、約 1,800 種類の公式プロバイダーアイコンを使用します。図は Graphviz を通じて、PNG、自己完結型 SVG、PDF、JPG にレンダリングされます。

新しいアーキテクチャを設計したり、既存の構成を図にしたりできます。Terraform から、あるいは実行中の Google Cloud プロジェクト自体のインベントリから、作成方法にかかわらず実際のリソース名を使って図にできます。

クイックスタート。 Graphviz をインストールしてから、以下のいずれかの方法で MCP クライアントにサーバーを追加します。

入手元コマンド
PyPI、uv を使用uvx arch-diagram-mcp
PyPI、pipx を使用pipx install arch-diagram-mcp を実行し、その後 arch-diagram-mcp を実行
npm(uv または pipx を通じて PyPI パッケージを起動)npx -y arch-diagram-mcp

たとえば、Claude Code では次のように実行します:claude mcp add architecture-diagrams -s user -- uvx arch-diagram-mcp。 MCP Registry では io.github.apatilgtn/architecture-diagrams としても掲載されています。

開発者として利用しますか? 開発者ガイドから始めてください。お使いのマシン上またはチーム共有サーバーへの Claude Code、VS Code、Cursor、Claude Desktop の接続方法と、プロンプトの例を紹介しています。この README の残りの部分では、サーバーの実行と設定について説明します。

サンプル

以下は、同梱のテンプレートと Terraform の例を、サーバーが生成するままの状態で表示したものです。 スコアは review_architecture によるものです。図をクリックすると、フルサイズの画像が表示されます。

Azure の Web アプリ、ハブアンドスポーク
ウォーム DR を備えた Azure Web アプリのハブアンドスポーク構成
azure_webapp_hub_spoke、レビュー 94(A)
Azure AKS マイクロサービス
Azure AKS マイクロサービス
azure_aks_microservices、レビュー 97(A)
AWS の 3 層構成
AWS の 3 層 Web アプリ
aws_three_tier、レビュー 86(B)
AWS のサーバーレス、イベント駆動型
AWS のサーバーレス、イベント駆動型
aws_serverless_event_driven、レビュー 100(A)
GCP GKE マイクロサービス
GCP GKE マイクロサービス
gcp_gke_microservices、レビュー 97(A)
GCP のサーバーレスとデータ
GCP のサーバーレスとデータプラットフォーム
gcp_serverless_data、レビュー 81(B)
Terraform plan からインポートした図
Terraform からインポート
diagram_from_terraform(examples/aws_plan.json を使用)、レビュー 73(C)
Cloud Asset Inventory から作成した稼働中の GCP プラットフォームの図
インベントリから作成した稼働中の GCP プラットフォーム
diagram_from_inventory(実際のエクスポートを使用。識別子は置き換え済み)、レビュー 67(C)

再生成するには、python scripts/render_samples.py を実行してください。

このサーバーは、Google Cloud 上でエンドツーエンドのテストも実施済みです。署名付き URL を使用するプライベートバケットと、2 層の認証を備えたプライベート Cloud Run サービスでテストしました。テスト方法、確認した内容、見つかったバグについては、docs/CLOUD_TESTING.md を参照してください。

ツール

ツール機能
search_icons(query, provider?, limit?)サービス名または別名(ecs、s3、aks、cloud run、redis)でアイコンをランキング検索します
list_icon_categories(provider)プロバイダーのすべてのカテゴリとサービスを一覧表示します
list_templates(provider?) / get_template(id)バンドルされたリファレンスアーキテクチャを編集可能な仕様として返します
validate_diagram(spec)描画せずに仕様を検証します。アイコン ID(候補の提案付き)、参照、ネストの循環、制限を確認します
generate_architecture_diagram(spec)図を描画し、ファイルパス、JSON の概要、インライン PNG プレビューを返します
review_architecture(spec)ヒューリスティックな Well-Architected レビューを実行し、0~100 のスコア、グレード、推奨事項付きの指摘事項を返します
diagram_from_terraform(title, terraform_json | path, ...)terraform show -json の出力(プランまたは状態)または未加工の .tfstate ファイルから図を作成します
diagram_from_inventory(title, inventory_json | path, projects?, regions?, labels?, ...)Cloud Asset Inventory のエクスポートから、Google Cloud で稼働中のリソースの図を実際の名前付きで作成します
server_info()バージョン、Graphviz の状態、アイコン数、出力ディレクトリ、制限を報告します

また、design_architecture(provider, workload, requirements) というプロンプトが 1 つあります。モデルに、テンプレートの選択、アイコンの検索、検証、描画、レビューを順に進めさせます。

バンドルされたテンプレート
  • aws_three_tier
  • aws_serverless_event_driven
  • azure_webapp_hub_spoke
  • azure_aks_microservices
  • gcp_serverless_data
  • gcp_gke_microservices

すべてのテンプレートは、検証と描画ができること、およびレビューで重大度が「重大」または「高」の指摘事項がないことをテスト済みです。

図の仕様
{
  "title": "My App",
  "direction": "LR",
  "theme": "light",
  "output_formats": ["png", "svg"],
  "clusters": [{"id": "vpc", "label": "VPC 10.0.0.0/16"}, {"id": "app", "label": "Private subnet", "parent": "vpc"}],
  "nodes": [{"id": "api", "type": "aws.compute.ECS", "label": "orders-api", "cluster": "app"}],
  "edges": [{"source": "alb", "target": "api", "label": "HTTPS", "style": "dashed"}]
}
レビューのルール
領域ルール
セキュリティインターネット → データストア(重大);ゲートウェイを経由しないインターネット → コンピュート(高);WAF がない;シークレット/KMS がない;ID プロバイダーがない;ネットワーク境界外のデータストア;送信トラフィック制御がない
信頼性ロードバランサーのない VM;単一リージョン;バックアップがない;同期呼び出しの深い連鎖
運用上の優秀性モニタリングがない;CI/CD がない;接続されていないコンポーネント
パフォーマンス効率パブリックトラフィック用の CDN がない;キャッシュ層がない

ルールが判定できるのは、図に示された内容のみです。指摘事項はレビューのきっかけとして扱い、設定ミスの証明とはみなさないでください。

Terraform のインポート

terraform show -json plan.out > plan.json を使うと最良の結果が得られます。プランには設定の参照情報が含まれているためです。

  • マッピング済みリソース: 約 140 種類の AWS、Azure、GCP のリソースタイプがノードになります。
  • 境界: VPC/VNet、サブネット、リソースグループ、Container Apps 環境のリソースは、ネストされたクラスターになります。ノードは、NIC を介する場合も含め、参照先となる最も具体的な境界内に配置されます。
  • エッジ: リソース間の参照はエッジになり、モジュールの出力は解決されます。
  • 推定エッジ: 配線用リソースを経由するリンクは、エッジ → コンピュート → メッセージング → データの順に向きを付けた破線エッジになります。配線用リソースには、リスナー、ターゲットグループ、NIC、ロール割り当て、Front Door のオリジン、バックエンドサービスが含まれます。
  • マッピングされていないタイプ: 結果に一覧表示されるため、対象外となったものを確認できます。
インベントリのインポート(Google Cloud)

すでに稼働しているインフラストラクチャの場合は、作成方法(コンソール、gcloud、スクリプト、 Terraform、Pulumi)にかかわらず、プロジェクトのインベントリをエクスポートして diagram_from_inventory に渡します。

gcloud asset list --project <project-id> --content-type resource \
  --asset-types "$(arch-diagram-mcp --gcp-asset-types)" --format json > assets.json

--gcp-asset-types を指定すると、インポーターが使用する 54 種類のアセットタイプが出力されます。これらだけを指定すると、 エクスポートのサイズを抑えられます。同じ図を出力したテストプロジェクトでは、サイズが 4.4 MB から 535 KB に減りました。呼び出し元には roles/cloudasset.viewer が必要で、Cloud Asset API を有効にしておく必要があります。

  • 名前: すべてのノードに実際の名前が保持されます。2 行目には、データベースのバージョン、 マシンタイプ、イングレス設定、レプリカ数、cron スケジュールなどの詳細が追加されます。
  • 境界: プロジェクト › VPC › サブネット › GKE クラスター › 名前空間。別のプロジェクトが所有する共有 VPC ネットワークは、 そのプロジェクトの下に描画されます。直接 VPC エグレスを使用する Cloud Run は、そのサブネット内に配置されます。
  • 設定からのエッジ:
    • アノテーションや環境変数にある Cloud SQL、シークレット、KMS、Pub/Sub、バケット、Redis の参照。
    • URL を、その URL を所有する Cloud Run サービスまたは関数と照合します(プッシュサブスクリプション、Scheduler ターゲット、環境変数)。
    • ロードバランサーのチェーン(転送ルール › プロキシ › URL マップ › バックエンド › NEG、バケットまたは MIG)。パスルール、 CDN、Cloud Armor も含まれます。
    • Eventarc トリガー、デッドレタートピック、BigQuery と Cloud Storage のサブスクリプション、VPC コネクタ。
  • 除外されるノイズ: GKE のシステム名前空間とノード、MIG のメンバー VM(1 つの MIG として描画)、Cloud Functions 自身の Run サービス、ビルド用およびステージング用バケット、ルート、ファイアウォール、RBAC オブジェクト。
  • フィルター: projects と regions は厳密な制限です。labels(例:{"app": "payments"})を指定すると、リソースと、 それらに接続されているリソース(既定で有効な include_neighbors)が選択されます。
  • 制限事項: アプリケーションコード内にしか存在しない呼び出しは検出できません。結果として仕様が返されるため、 そのエッジを追加して再レンダリングできます。環境変数から見つかった外部ホストは external_hosts に一覧表示されます。

対応形式:gcloud asset list JSON(推奨)、gcloud asset export の改行区切り JSON、 および gcloud asset search-all-resources --read-mask='*' JSON。Azure Resource Graph と AWS のインベントリにも対応する予定です。

インストール

Python 3.11+ と Graphviz が必要です。

winget install Graphviz.Graphviz        # Linux: apt install graphviz   macOS: brew install graphviz
python -m venv .venv
.venv\Scripts\python -m pip install -e ".[dev]"
.venv\Scripts\python -m pytest            # 85 tests
Claude Code への登録(stdio)
claude mcp add architecture-diagrams -s user `
  -e ARCH_DIAGRAM_OUTPUT_DIR=C:\Devops-Projects\Architecture-diagram-mcp\output `
  -- C:\Devops-Projects\Architecture-diagram-mcp\.venv\Scripts\python.exe -m arch_diagram_mcp
共有 HTTP サービスとして実行
docker build -t arch-diagram-mcp:1.2.0 .
docker run -d -p 8000:8000 -v diagrams:/data \
  -e ARCH_DIAGRAM_AUTH_TOKENS="ci=$(openssl rand -hex 32),platform-team=$(openssl rand -hex 32)" \
  -e ARCH_DIAGRAM_PUBLIC_BASE_URL=https://diagrams.internal.example.com \
  -e ARCH_DIAGRAM_URL_SIGNING_KEY=$(openssl rand -hex 32) \
  -e ARCH_DIAGRAM_ALLOWED_HOSTS="diagrams.internal.example.com:*" \
  arch-diagram-mcp:1.2.0

クライアントは Authorization: Bearer <token> を使用して https://<host>/mcp に接続します。GET /healthz は 認証不要で、プローブとして使用できます。サーバーはステートレスで動作するため、ロードバランサーの背後で水平スケールできます。すべてのレプリカで ARCH_DIAGRAM_URL_SIGNING_KEY を共有する必要があります。これにより、どのレプリカでも任意のリンクを提供できます。

認証
モード設定監査ログ上の識別情報ロール
tokenARCH_DIAGRAM_AUTH_TOKENS="name=secret,..."トークン名フルアクセス
oidcARCH_DIAGRAM_OIDC_ISSUER + ARCH_DIAGRAM_OIDC_AUDIENCEoid/subをキーとするpreferred_username / upn / emailARCH_DIAGRAM_READER_ROLE、ARCH_DIAGRAM_AUTHOR_ROLE

トークンモード。 複数の名前付きトークンを同時に有効にできます。ローテーションするには、新しいトークンを追加してクライアントに展開し、その後、古いトークンを削除します。各トークンは16文字以上である必要があります。

OIDC モード。 サーバーは、発行者が公開している署名鍵(JWKS。ディスカバリーで取得するか、ARCH_DIAGRAM_OIDC_JWKS_URIで指定)に対して JWT を検証します。以下を確認します。

  • 署名(非対称アルゴリズムのみ。HS*とnoneは不可);
  • issとaud;
  • expとnbf。許容誤差は60秒です;
  • 任意のARCH_DIAGRAM_OIDC_REQUIRED_SCOPES。

ロールはrolesクレーム(Entra のアプリロール)とscpスコープクレームから取得します。

  • リーダー: 検索、テンプレート、検証、レビュー。
  • 作成者: さらに、レンダリングと Terraform またはクラウドインベントリのインポートが可能です。作成者にはリーダーの権限も含まれます。
  • どちらのロール変数も設定されていない場合、有効なトークンにはすべてフルアクセスが付与されます。

サーバーは RFC 9728 メタデータを/.well-known/oauth-protected-resourceで公開し、すべての401レスポンスでその場所を示すため、MCP クライアントは認可サーバーを検出できます。

Entra ID の例:

  1. Application ID URI をapi://arch-diagramsに設定して API アプリを登録します。
  2. マニフェストでaccessTokenAcceptedVersion: 2を設定します。
  3. アプリロールDiagrams.ReaderとDiagrams.Authorを追加し、グループに割り当てます。
  4. サーバーを設定します。
ARCH_DIAGRAM_OIDC_ISSUER=https://login.microsoftonline.com/<tenant-id>/v2.0
ARCH_DIAGRAM_OIDC_AUDIENCE=api://arch-diagrams      # v2 tokens may carry the app's client id instead; list both
ARCH_DIAGRAM_READER_ROLE=Diagrams.Reader
ARCH_DIAGRAM_AUTHOR_ROLE=Diagrams.Author

Entra ID では動的なクライアント登録はできません。クライアントは、事前登録済みのクライアントアプリを使用するか、すでに保持しているトークン(例:az account get-access-token --resource api://arch-diagrams)を渡します。

アーティファクトのストレージ

HTTP 経由では、レスポンスにサーバーのファイルパスではなくダウンロードURLが含まれます。

ARCH_DIAGRAM_STORAGEリンク認証情報
local(デフォルト)https://<PUBLIC_BASE_URL>/artifacts/<file>?exp=..&sig=..。このサーバーが配信し、HMAC 署名されますARCH_DIAGRAM_URL_SIGNING_KEY
s3SigV4 署名付き GET。オブジェクトは SSE-S3 で暗号化されます。ARCH_DIAGRAM_S3_KMS_KEY_IDが設定されている場合は SSE-KMS で暗号化されます標準の AWS 認証情報チェーン(IRSA、インスタンスロール、環境変数、プロファイル)
azure読み取り専用、HTTPS 専用の SAS。ARCH_DIAGRAM_AZURE_ACCOUNT_URLを使った Entra ID 経由のユーザー委任キー、またはAZURE_STORAGE_CONNECTION_STRINGを使ったアカウントキーを使用しますマネージド ID/ワークロード ID にはStorage Blob Data Contributorが必要です
gcsV4 署名付き URL。サービスアカウントキーを使ってローカルで署名するか、ワークロード ID の下で IAM signBlob を介して署名しますStorage Object CreatorとService Account Token Creatorが必要です
  • オブジェクトキー: <prefix>/<yyyy>/<mm>/<dd>/<sha256(caller)[:16]>/<file>。ファイルは呼び出し元ごとに分離され、キーにユーザー名が含まれることはありません。
  • リンクの有効期間: ARCH_DIAGRAM_URL_TTL_Sで設定します。デフォルトは1時間、最大は7日間です。
  • クリーンアップ: ARCH_DIAGRAM_DELETE_LOCAL_AFTER_UPLOAD=trueを設定すると、クラウドへのアップロード成功後にローカルコピーが削除されます。クラウド上のオブジェクトには、バケットのライフサイクルルールを使用してください。
  • 配信される SVG: Content-Security-Policy: sandboxおよびnosniffを付けて送信されます。
  • Terraform のパス: diagram_from_terraform(path=...)は HTTP 経由では無効です。そのため、リモートの呼び出し元がサーバーのファイルを読み取ることはできません。

Configuration (environment)

変数デフォルト用途
ARCH_DIAGRAM_OUTPUT_DIR~/architecture-diagrams図の出力先
ARCH_DIAGRAM_INPUT_ROOTScwd + output dirdiagram_from_terraform(path=...) が読み取ることのできる、os.pathsep で区切られたディレクトリ
ARCH_DIAGRAM_MAX_NODES / _MAX_EDGES / _MAX_CLUSTERS300 / 800 / 100仕様のサイズ制限
ARCH_DIAGRAM_RENDER_TIMEOUT_S60この秒数が経過すると Graphviz を強制終了します
ARCH_DIAGRAM_MAX_TERRAFORM_BYTES25 MBTerraform 入力サイズの上限
ARCH_DIAGRAM_RETENTION_DAYS0 (keep forever)N 日より前に生成されたファイルを削除します
ARCH_DIAGRAM_KEEP_DOT_SOURCEtrue手動編集用に .dot ファイルを保持します
ARCH_DIAGRAM_INLINE_PNG_MAX_BYTES4 MBこれより大きい PNG はパスのみを返します
ARCH_DIAGRAM_FONTautoフォントファミリー。auto の場合、Windows では Segoe UI、macOS では Helvetica Neue、Linux では DejaVu Sans が選択されます
ARCH_DIAGRAM_PNG_DPI144PNG/JPG の解像度(72–300)
ARCH_DIAGRAM_LOG_LEVELINFOJSON ログは stderr に出力され、ツール呼び出しごとに監査ログが 1 行記録されます
ARCH_DIAGRAM_HTTP_HOST / _HTTP_PORT127.0.0.1 / 8000HTTP のバインドアドレスとポート
ARCH_DIAGRAM_AUTH_MODEautonone / token / oidc。以下の変数から推測されます
ARCH_DIAGRAM_AUTH_TOKENS–名前付きベアラートークン(name=secret,...)。従来の単一トークン ARCH_DIAGRAM_AUTH_TOKEN も引き続き使用できます
ARCH_DIAGRAM_OIDC_ISSUER / _OIDC_AUDIENCE / _OIDC_JWKS_URI / _OIDC_REQUIRED_SCOPES–OIDC の検証
ARCH_DIAGRAM_READER_ROLE / _AUTHOR_ROLE–RBAC のロール名(OIDC)
ARCH_DIAGRAM_PUBLIC_BASE_URL–外部 URL。ダウンロードリンクと OAuth メタデータに使用されます
ARCH_DIAGRAM_STORAGElocallocal / s3 / azure / gcs
ARCH_DIAGRAM_STORAGE_BUCKET / _STORAGE_PREFIX– / diagrams/バケットまたはコンテナー、およびキーのプレフィックス
ARCH_DIAGRAM_S3_REGION / _S3_KMS_KEY_ID / _AZURE_ACCOUNT_URL–バックエンド固有の設定
ARCH_DIAGRAM_URL_TTL_S3600ダウンロードリンクの有効期間(60 秒 – 7 日)
ARCH_DIAGRAM_URL_SIGNING_KEYプロセスごとにランダムローカルリンク用の HMAC キー。32 文字以上にし、レプリカ間で共有してください
ARCH_DIAGRAM_DELETE_LOCAL_AFTER_UPLOADfalseクラウドへのアップロード後にローカルファイルを削除します
ARCH_DIAGRAM_ALLOWED_HOSTS / _ALLOWED_ORIGINS–カンマ区切りの Host/Origin 許可リスト(DNS リバインディング対策)
ARCH_DIAGRAM_ALLOW_UNAUTHENTICATEDfalseトークンなしでループバック以外のアドレスへのバインドを許可します(認証プロキシの背後でのみ使用してください)

セキュリティモデル

  • 仕様の検証: ID、色、スタイルをパターンに照らして検証し、サイズ制限を適用します。
  • テキストのエスケープ: タイトル、ノードラベル、クラスターラベルは常にリテラル文字列として出力し、Graphviz の HTML ラベルとしては出力しません。エッジラベルは HTML エスケープされます。そのため、ラベルから、ローカルファイルを読み取る image= 属性などの DOT 文を挿入することはできません。
  • レンダリング: Graphviz は厳格なタイムアウト付きのサブプロセスとして実行され、失敗時には部分的な出力が削除されます。
  • 出力ファイル: ファイル名はサニタイズされ、タイムスタンプと一意のサフィックスが付加されます。保持期間のクリーンアップでは、サーバーが生成したファイルのみが対象になります。
  • Terraform 入力: ファイルの読み取り先は ARCH_DIAGRAM_INPUT_ROOTS 配下に制限され、サイズ上限が適用されます。
  • HTTP:
    • 静的トークンは、設定済みのすべてのトークンと定時間比較されます。
    • OIDC JWT は完全に検証され、鍵の混同を招くトークンと alg: none トークンは拒否されます(どちらもテスト済みです)。
    • ツールごとに RBAC が適用され、すべての監査ログに呼び出し元が記録されます。
    • 認証なしでは、サーバーはパブリックアドレスへのバインドを拒否します。
    • DNS リバインディング対策として、Host/Origin 許可リストを使用します。
    • コンテナーは root 以外のユーザーとして実行されます。
  • SVG 出力: アイコンが埋め込まれるため、ファイルからローカルパスが漏れることはなく、どこでもレンダリングできます。

レイアウト

src/arch_diagram_mcp/
  server.py        MCP tools, prompt, error mapping, audit logging
  catalog.py       icon index, alias resolution, ranked search, suggestions
  models.py        spec schema + semantic validation
  renderer.py      Graphviz source build, timed subprocess render, themes, SVG inlining, retention
  review.py        Well-Architected heuristic rules and scoring
  terraform.py     Terraform plan/state -> spec
  gcp_inventory.py Cloud Asset Inventory export of running GCP resources -> spec
  template_library.py + templates/*.json   reference architectures
  auth.py          principals, static-token + OIDC authenticators, RBAC
  storage.py       local signed links, S3 / Azure Blob / GCS uploads with signed URLs
  http_app.py      streamable-HTTP app, auth middleware, OAuth resource metadata, /artifacts, /healthz
  config.py, logs.py, __main__.py
tests/             85 tests: catalog, validation, rendering, label injection, review, Terraform, GCP
                   inventory (real export fixture), MCP tools, HTTP auth, OIDC (incl. attack tokens), RBAC,
                   signed links, S3 (moto), Azure SAS, GCS V4
docs/USER_GUIDE.md      developer guide: connecting clients, example prompts, troubleshooting
docs/CLOUD_TESTING.md   how the server was tested on real Google Cloud
docs/samples/      rendered sample diagrams shown above
scripts/render_samples.py   regenerates docs/samples/
scripts/e2e_cloud.py, run_impersonated.py   real-cloud end-to-end test tools

ライセンス

Apache-2.0。同梱されているプロバイダーアイコンはdiagramsライブラリに由来し、各所有者の利用条件が引き続き適用されます。

コメント

MCP は初めてですか?

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

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