drawio-mcp-diagramming について
drawio-mcp-diagrammingは、Draw.io MCPサーバーを使って図を作成・編集するためのスキルです。アーキテクチャ図やフロー図、形式変換、アイコン検索、XML作成を、ホスト型とstdio型の両サーバーに対応して案内します。
主な機能
- 01Draw.io図の作成と更新
- 02XML、Mermaid、CSV入力に対応
- 03Draw.ioアイコンと図形の検索
- 04クラウド図のリファレンスと規則
- 05複数ページの.drawioファイル編集案内
活用シーン
- 01AWS、Azure、GCPの構成図作成
- 02MermaidまたはCSVから図への変換
- 03認証やAPI連携フローの図示
- 04アイコン欠落やコネクタ配置の調査
MCP 対応
Draw.io MCPサーバーと連携し、ホスト型App Serverまたはstdio Tool Serverを利用します。図の作成・表示、図形検索、ページ管理ツールの呼び出し方法を案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thomast1906/ github-copilot-agent-skills --skill drawio-mcp-diagrammingインストール後、Claude Code で/drawio-mcp-diagrammingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/aws.mdazure.mdgcp.mdlayout-antipatterns.mdREFERENCE.mdstandalone-file-requirements.mdxml-authoring-rules.md詳細
Draw.io MCP 図作成スキル
Draw.io MCP サーバーを使って図を作成または更新します。XML を生成する前に、references/xml-authoring-rules.md を読んでください。レンダリングでよく発生する問題を防ぐための必須制約、コンテナのルール、エッジのルーティングに関するガイダンスが記載されています。レイアウトのアンチパターンの修正については、references/layout-antipatterns.md を参照してください。クラウドトポロジーの規約、アイコンライブラリ、実例については、references/azure.md、references/aws.md、[references/gcp.md) を参照してください。
基本図形のみを使う図(フローチャート、UML、ERD、組織図、マインドマップ、タイムライン、ワイヤーフレーム)の場合は、アイコンの検索を省略し、drawio/create_diagram または drawio/open_drawio_mermaid に直接進んでください。
使用する場面
- ユーザーがアーキテクチャ図(Azure、AWS、マルチクラウド、または汎用)の作成や改善を依頼している場合。
- ユーザーが MCP ワークフローから draw.io/diagrams.net の出力を求めている場合。
- ユーザーが Mermaid → draw.io への変換を依頼している場合。
- ユーザーが CSV → draw.io への変換(組織図、表形式データからのフローチャート)を依頼している場合。
- ユーザーが図に Azure サービスアイコンを必要としている場合。
- ユーザーが図に AWS サービスアイコンを必要としている場合。
- ユーザーから Azure または AWS のアイコンや図形が表示されないと報告された場合。
- ユーザーが 認証または ID フロー(OAuth 2.0、OIDC、JWT 検証、SSO、ログイン、トークン交換、Entra、Cognito)を依頼している場合。
- ユーザーが API またはマイクロサービスのインタラクション図(リクエスト/レスポンスの連鎖、サービス間呼び出し、API ゲートウェイフロー)を依頼している場合。
- ユーザーが CI/CD パイプラインまたはデプロイワークフロー(ビルド、テスト、デプロイの各段階、GitHub Actions、Azure DevOps、承認ゲート)を依頼している場合。
- ユーザーが既存の複数ページ
.drawioファイルの編集を希望している場合(Tool Server のみ)。
必須ツール
Draw.io には 2 種類の MCP サーバーがあります。このスキルはどちらでも動作します。設定済みのサーバーに対応するツールを呼び出してください。
オプション A — Hosted App Server(インライン/「Open in draw.io」ボタン)
- MCP ツール:
drawio/create_diagram - ワークスペースの MCP 設定:
{
"servers": {
"drawio": {
"type": "http",
"url": "https://mcp.draw.io/mcp"
}
}
}
対応する入力:xml(draw.io XML)、mermaid(Mermaid.js テキスト)。
オプションのレイアウト処理:postLayout: "elk"、routing: "libavoid"。
オプション B — stdio Tool Server(ブラウザーで draw.io を開く)
- MCP ツール:
drawio/open_drawio_xml、drawio/open_drawio_mermaid、drawio/open_drawio_csv、drawio/search_shapes、drawio/list_pages、drawio/get_page、drawio/set_page - ワークスペースの MCP 設定:
{
"servers": {
"drawio": {
"command": "npx",
"args": ["-y", "@drawio/mcp"]
}
}
}
対応する入力:XML、Mermaid、CSV。
オプションのレイアウト処理:open_drawio_xml の routing: "libavoid" — @drawio/mcp v1.3.0 以降が必要です。古いバージョンではこのパラメーターは無視されるため、コネクターのルーティングが改善されない場合は npx -y @drawio/mcp@latest を指定してください。
ホストが MCP Apps のインラインレンダリング(Claude.ai、Cursor ≥ 2.6)に対応している場合、または「Open in draw.io」ボタンを使うワークフローで問題がない場合は、オプション A を使用してください。VS Code/GitHub Copilot、または標準的な MCP クライアントでは、オプション B を使用してください。
アイコン検索ツール(両サーバー共通)
- MCP ツール:
drawio/search_shapes— 10,000 個以上の draw.io 図形を検索し、すぐに使用できるスタイル文字列を返します。 - パラメーター:
query(スペース区切りのキーワード)と、省略可能なlimit(デフォルトは 10、最大 50)。最初の検索で使える結果が見つからない場合は、その図形が存在しないと判断する前にlimitを増やしてください。
ツール名の検出
MCP ホストによっては、サーバープレフィックス付きでツールが登録されることがあります(例:mcp_drawio-mcp-ap_create_diagram、mcp_drawio-mcp-ap_search_shapes)。tool_search で drawio ツールが表示されない場合は、利用可能なツールまたは遅延読み込みツールの一覧を確認し、そこに表示されている正確な名前を呼び出してください。遅延読み込みツールの一覧に表示されているツールを利用できないと決めつけないでください。登録されている正確な名前を使用してください。
VS Code / GitHub Copilot:図形検索を順番に実行する
VS Code と GitHub Copilot では、実行中にユーザーが新しいメッセージを送ると、並列のツール呼び出しはキャンセルされます。drawio/search_shapes の呼び出しは必ず一度に1つずつ実行し、並列バッチで実行しないでください。
XML の厳格な制約、コンテナー、エッジのルーティング
draw.io MCP サーバーは XML の厳格なルールを適用しており、品質上の問題で最も多いのは、階層の平坦化と手動でルーティングされたエッジです。XML を生成する前に、references/xml-authoring-rules.md を読み、以下を確認してください。
- 厳格な制約 — サーバーでレンダリングエラーが発生する禁止構文(XML コメント、重複 ID、自己終了形式のエッジ/ジオメトリー要素、エスケープされていない文字)
- コンテナーのルール —
swimlaneのネストされた包含、子要素の相対座標、異なるコンテナー間のエッジをparent="1"に配置する理由 - エッジのルーティング —
routing: "libavoid"またはpostLayout: "elk"でパスを計算し、手動の接続ポイントが妥当な限られたケース - 生成前のエッジチェックリスト — インフラストラクチャ図のエッジ XML を記述する前に実行します
推奨ワークフロー
-
入力形式と図の種類を特定する
- フローチャート、シーケンス図、ERD、マインドマップ、ガントチャート、タイムライン、かんばん図には、Tool Server が利用可能な場合は Mermaid を優先するか、App Server の
mermaidパラメーターを使用します。 - 表形式のデータから組織図やフローチャートを作成する場合は、Tool Server で CSV(
drawio/open_drawio_csv)を使用します。 - 名前付きサービス、ベンダーの図形、絵文字アイコンを含む図には XML(
drawio/create_diagramまたはdrawio/open_drawio_xml)を使用します。
- フローチャート、シーケンス図、ERD、マインドマップ、ガントチャート、タイムライン、かんばん図には、Tool Server が利用可能な場合は Mermaid を優先するか、App Server の
-
幾何学図形以外の図形には
drawio/search_shapesを使用する — draw.io のすべてのライブラリにある 10,000 個以上の図形を検索し、そのまま使えるスタイル文字列を返します。- クラウドサービス(Azure、AWS、GCP)、ネットワーク機器(Cisco、Juniper)、コンテナー/オーケストレーションツール(Kubernetes、Docker)、ブランドロゴ(Slack、GitHub)、IT インフラストラクチャの図形、その他の名前付きコンポーネントに使用します。
- クエリの例:
"azure virtual machine"、"aws lambda"、"cisco router"、"kubernetes pod"、"slack"、"docker"。 - 返されたスタイル文字列を XML セルにそのまま使用します(必須条件とフォールバック手順については、下記のアイコンの検索を参照してください)。
- 純粋な幾何学図形(四角形、ひし形、円、矢印)のみを使う図では、
search_shapesを省略します。
-
search_shapesを使う場合と省略する場合 — 図形に認識可能な名前、ブランド、製品の識別情報がある場合は、必ず最初にsearch_shapesで検索してください。標準的な幾何学図形の図(フローチャート、UML、ERD、組織図、マインドマップ、タイムライン、ワイヤーフレーム)で、絵文字アイコンが不要な場合に限り、省略できます。シーケンス図とフロー図には、「シーケンス図とフロー図のパターン」(下記のセクションを参照)を適用してください。 -
積み重ねた四角形ではなく、実際のコンテナーでグループをネストする — 階層を含む図(VNet → Subnet → リソース、VPC → AZ → インスタンス、Region → Environment → Service、スイムレーン)では、各階層を
swimlane;startSize=24;コンテナーにし、子要素にparent="<container_id>"を設定して、子要素の座標を親に対する相対座標にします。異なるコンテナー内のセル同士を結ぶエッジにはparent="1"を指定してください。そうしないと、エッジはコンテナー内に描画され、切り取られてしまいます。大きな四角形を描き、その上に図形を絶対座標で配置する方法は、draw.io の XML リファレンスが明示的に指摘しているアンチパターンです。移動、サイズ変更、折りたたみ、レイアウト処理が正しく機能しなくなります。 -
ラベルは重複させず、簡潔にする — 複数のエッジに同じ内容がある場合は、ラベル付きのフロー1つか、単一の注釈ボックスにまとめます。タイトル、凡例、レーン名、コールアウトで同じ文言を繰り返さないでください。各テキスト要素には、それぞれ1つの役割を持たせます。
-
クラウドインフラストラクチャ図では、ベンダーのリファレンスを読み込む — VNet、サブネット、Azure アイコンを含む場合は references/azure.md を、VPC、AZ、AWS アイコンを含む場合は references/aws.md を、VPC、リージョナルサブネット、GCP アイコンを含む場合は references/gcp.md を読みます。マルチクラウド図では、該当するものをすべて読みます。それぞれのリファレンスには、そのベンダーのアイコンライブラリと注意事項、コンテナ構造、カラーパレット、注釈ボックス、完成例、トポロジーチェックリストが記載されています。GCP のネットワークモデル(グローバル VPC、リージョナルサブネット、VPC レベルのファイアウォールルール)は、Azure や AWS のモデルと直接対応するものではありません。Azure/AWS の慣例に詳しい場合でも、references/gcp.md を読みます。
-
ペイロードを作成する
- XML:検証済みのアイコン/スタイル文字列を使った、有効な
mxGraphModel。 - Mermaid:有効な Mermaid.js 定義(App Server:
mermaidとして渡します。Tool Server:drawio/open_drawio_mermaidを使います)。 - CSV:有効な CSV コンテンツ(Tool Server:
drawio/open_drawio_csvを使います)。
- XML:検証済みのアイコン/スタイル文字列を使った、有効な
-
適切なツールを呼び出す
- App Server:
xmlまたはmermaidを指定してdrawio/create_diagramを呼び出します。 - Tool Server:
drawio/open_drawio_xml、drawio/open_drawio_mermaid、またはdrawio/open_drawio_csvを呼び出します。
- App Server:
-
XML を書く前にレイアウト処理を決め、エッジの経路設定は任せる
routing: "libavoid"— 手動で配置した座標を維持し、コネクタだけを図形を避けるように再ルーティングします。トポロジー、アーキテクチャ、デプロイ、コンテナベースの図では、これがデフォルトです。postLayout: "elk"— 頂点の位置を置き換えて、レイアウト全体を再配置します。方向性のある階層構造の XML(パイプライン、判断フロー)で使います。フローが左から右に進む場合はdirection: "horizontal"を追加します。デフォルトはverticalであるため、左から右に進む CI/CD パイプラインが縦に積み重なってしまいます。postLayoutとroutingを併用しないでください — ELK は独自にエッジをルーティングします。directionは XML 専用で、Mermaid では無視されます(Mermaid ではflowchart TD/LRから方向が決まります)。exitX/entryXや<Array as="points">のウェイポイントを手動で記述しないでください。ルーティング処理で計算されるため、手動で指定すると競合します。例外については、references/xml-authoring-rules.md を参照してください。
-
ユーザーがファイルとしての成果物を求めている場合は、
<mxfile><diagram>...</diagram></mxfile>でラップして.drawioとして保存します。.drawioファイルを手動で書き込む前に(または MCP ツールが利用できない場合は)、references/standalone-file-requirements.md を読んでください。MCP ツールはas="geometry"とmxGraphModelのレイアウト属性を追加します。これらがないと、すべての要素が原点に集まってしまいます。 -
ラベルは簡潔かつ明確にします(サービス名+役割)。
-
主なコンポーネントまたはサービスごとにアイコンを 1 つ使い、フローの意味(イングレス/エグレス/依存関係/テレメトリー)はエッジで表すことを推奨します。
入力形式のクイックリファレンス
図の種類と設定済みサーバーに合った入力形式を選びます。
| 入力形式 | 最適な用途 | App Server | Tool Server |
|---|---|---|---|
| XML | ベンダー固有または絵柄付きアイコンを使うアーキテクチャ/トポロジー図、カスタムレイアウト | xml を指定して drawio/create_diagram | drawio/open_drawio_xml |
| Mermaid | フローチャート、シーケンス図、クラス図、ER 図、状態遷移図、マインドマップ、ガントチャート、タイムライン、カンバン | mermaid を指定して drawio/create_diagram | drawio/open_drawio_mermaid |
| CSV | 組織図、フローチャート、表形式データから作成するシンプルな図 | サポート対象外 | drawio/open_drawio_csv |
標準的な図の種類には Mermaid を使います。絵柄付きまたはベンダー固有のアイコン、正確な配置、複雑なコンテナ、カスタムスタイルが必要な場合は XML を使います。Mermaid/CSV の例と複数ページの編集方法については、references/REFERENCE.md を参照してください。
ビジュアル品質のガードレール
ユーザーが高密度/技術的なビューを明示的に求めていない限り、以下をデフォルトとして適用してください。
- 主要なレーン/ゾーンは最大3~4つにします(例:ソース → プロセス → 宛先)。
- メインフローは左から右への単一路線にします。
- 多数のエッジラベルではなく、ステージ番号(
1、2、3、4)を使います。 - 主要コンポーネントごとにアイコンを1つにし、ステップごとにアイコンを配置するレイアウトは避けます。
- レーンをまたぐ破線は、セキュリティ/認証用と任意のテレメトリ用の各1本に制限します。
- エッジの密度:3本以上のエッジが出ているノードでは、まず重複を減らします(例:1つのゲートウェイから、集約したバックエンドへのエッジを1本にする)。次に、残ったエッジを分離するために
routing: "libavoid"を適用します。ルーティング後も特定のエッジが曖昧な場合に限り、明示的なexitX/exitYを追加します。 - テキストは簡潔にし(ボックスごとに目的を1つにし)、複数行にわたる詰め込みを避けます。
- エッジラベルは短く、重複しないようにします。隣接するエッジで同じプロトコル/ポートの表記が繰り返される場合は、それらをまとめるか、共通の詳細を1つの注釈ボックスに移します。
- タイトル、凡例、レーン名、コールアウトで同じラベルを繰り返さないようにします。
- コネクター上のフローアニメーション:任意のエッジスタイルに
flowAnimation=1;を追加すると、矢印に沿って移動するドットが表示され、ラベルを追加しなくても方向性のあるフローがすぐにわかります。データフロー図やパイプライン図に最適です。このアニメーションは、SVGへのエクスポート後も draw.io デスクトップアプリでも維持されます。デフォルトでは、図を生成する前に、フロー矢印をアニメーション化するかどうかをユーザーに尋ねます――「トラフィックの方向を示すために、フロー矢印をアニメーション化しますか?希望する場合は、どの矢印ですか?」 ユーザーが指定したエッジにのみflowAnimation=1;を適用します。ユーザーが静的でシンプルな図を希望しているとすでに示している場合は、質問を省略します。 - まず「すっきりした」バリエーションを優先し、詳細は求められた場合にのみ追加します。
エッジの積み重なり、ラベルの重複、VNet内の可観測性など、よくあるレイアウト上の問題についての実例は、references/layout-antipatterns.md を参照してください。
クラウドインフラストラクチャのトポロジ(Azure、AWS、GCP)
ベンダー固有のトポロジに関するガイダンスは、クラウドごとのリファレンスファイルに記載されています。図に合ったものを読み込んでください。マルチクラウドの場合は複数読み込みます。
- Azure — references/azure.md:VNet、サブネット、Azureアイコンを含む図では、必ず参照してください。azure2 および mscae のアイコンライブラリとその注意事項、VNet → サブネットの入れ子構造、色と枠線の規則、トラフィックの配色、注釈ボックス、完全な実例、Azureトポロジのチェックリストを説明しています。
- AWS — references/aws.md:VPC、AZ、AWSアイコンを含む図では、必ず参照してください。AWS4 ステンシルライブラリとその注意事項、VPC → AZ → サブネットの入れ子構造、サブネット層の色分け、NAT/IGWのエグレス経路、セキュリティグループの注釈、完全な実例、AWSトポロジのチェックリストを説明しています。
- GCP — references/gcp.md:VPC、リージョナルサブネット、GCPアイコンを含む図では、必ず参照してください。gcp2 ステンシルライブラリとその注意事項、グローバルVPC/リージョナルサブネットのコンテナモデル(AzureやAWSのモデルに直接相当するものではありません)、VPCレベルのファイアウォールルールの注釈、完全な実例、GCPトポロジのチェックリストを説明しています。
3つすべてに適用される共通ルール(包含、エッジのルーティング、厳密なXML制約)は、references/xml-authoring-rules.md に記載されています。
シーケンス図とフロー図のパターン
このセクションは、インフラストラクチャのトポロジではなく、時間的なフロー(何がどの順序で起きるか)を示す図に使用します。drawio/search_shapes による図形の検索は不要です。
適用する場面
| 図の種類 | キーワード | レイアウト |
|---|---|---|
| 認証/認可フロー | OAuth, OIDC, JWT, SSO, login, token exchange, Entra, Cognito | スイムレーン形式のインタラクションフロー |
| API/マイクロサービス呼び出しチェーン | REST, GraphQL, request/response, service-to-service, API gateway | スイムレーンまたは縦型フローチャート |
| CI/CD パイプライン | pipeline, build, deploy, release, GitHub Actions, Azure DevOps, approval gate | 横型パイプラインフローチャート |
レイアウトの方針
スイムレーン形式のインタラクションフロー(アクターが2~5人の認証/API フロー):
parent="1"にフラットなswimlaneレーンを縦に積み重ね、各レーンにアクターを1人ずつ配置します:swimlane;horizontal=0;startSize=110;fillColor=<pastel>;html=1;、ジオメトリはx=0, y=lane_index*150, width=CANVAS_W, height=150- ステップボックスは各レーンの子要素(
parent="<lane_id>")とし、レーンを基準とした相対座標で配置します:x = 120 + col*180、y = 45、サイズは140x60(判断のひし形は140x80)。開始位置をx=120とすることで、幅110pxのタイトル領域を避けられます - 実行順序が明確になるよう、ラベルにはステップ番号(
1.,2.,3.)を付けます - レーンをまたぐエッジは
parent="1"に配置します。レーン内に配置するとクリップされます edgeStyle=orthogonalEdgeStyle;を使用し、ルーティング処理で折れ曲がりを配置します- キャンバス幅:
max_col * 180 + 300。レーンをプール内にネストしたり、レーンの高さを変えたりしないでください - キャンバス高さ:
actor_count * 150 + 100
横型パイプラインフローチャート(CI/CD):
- ステージは左から右へ進行します:ソース → ビルド → テスト → ステージング → 承認 → 本番
- ステージには
rounded=1の長方形を使用し、ゲート/判断ポイントにはrhombus形状を使用します - 下記の「ステージの色」表に従って、各ステージボックスを色分けします
- ゲートから下方向に赤いエッジで失敗分岐を設け、「ロールバック/通知」ステップにつなげます
directionを指定しない場合、デフォルトの縦型レイアウト処理によってパイプラインが上から下に並ぶため、direction: "horizontal"とともにpostLayout: "elk"を渡します- キャンバス:
pageWidth="1700" pageHeight="600"
色の規則
エッジの色(トポロジーパレットと統一):
| 意味 | strokeColor | スタイル |
|---|---|---|
| プライマリのリクエスト/呼び出し | #0078D4 Azure blue | 実線、strokeWidth=2 |
| 成功応答/戻り値 | #00897B Teal | 実線、strokeWidth=2 |
| トークン/認証情報/リダイレクト | #F57C00 Amber | dashed=1、strokeWidth=2 |
| 非同期/イベント駆動の呼び出し | #5C6BC0 Indigo | dashed=1、strokeWidth=2 |
| エラー/拒否/ロールバック | #C62828 Red | 実線、strokeWidth=2 |
| オプション/条件付き | #666666 Grey | dashed=1、strokeWidth=1 |
参加者レーンの色(スイムレーンのヘッダー+不透明度 opacity=30 の列背景):
| アクターの種類 | fillColor | strokeColor |
|---|---|---|
| ユーザー/ブラウザー/クライアント | #dae8fc | #6c8ebf |
| ID プロバイダー(Entra, Cognito, Okta) | #e6f4ea | #82b366 |
| API/バックエンドサービス | #fff3e0 | #e6821e |
| データベース/データストア | #f5f5f5 | #666666 |
| マネージドサービス/外部システム | #f3e5f5 | #7B1FA2 |
ステージの塗りつぶし色(CI/CD パイプライン):
| ステージ | fillColor | fontColor |
|---|---|---|
| ソース/トリガー | #0078D4 | #ffffff |
| ビルド | #00897B | #ffffff |
| テスト/品質ゲート | #F57C00 | #ffffff |
| ステージングへのデプロイ | #5C6BC0 | #ffffff |
| 承認ゲート | #795548 | #ffffff |
| 本番環境へのデプロイ | #43A047 | #ffffff |
| ロールバック/失敗 | #C62828 | #ffffff |
フローアニメーション
flowAnimation=1; は、トポロジー図と同様にシーケンス/フローのエッジで機能します。プライマリの呼び出し経路またはパイプラインのステージ遷移に適用します。適用する前に、必ずユーザーに確認してください。
チェックリスト(シーケンス/フロー図)
- 図の種類を特定した(認証フロー/API フロー/CI/CD パイプライン)
- アクター/参加者を明確にラベル付けした
- 実行順にステップ番号を付けた
- エッジの色が上記の規則に沿っている
- エラー/失敗経路を赤で示した
- 生成前にアニメーションの希望をユーザーに確認した
- 参加者数とステップの深さに合わせてキャンバスのサイズを設定した
アイコンの検索
名前、ブランド、製品の識別情報がある図形(クラウドサービス、ネットワーク機器、ブランドロゴ、コンテナ/オーケストレーションツール、その他の絵柄アイコンなど)では、スタイル文字列の取得元として受け入れられるのは drawio/search_shapes のみです。推測したり、独自に作成したりしないでください。このルールは、このスキル内の別の箇所から参照されているため、ここでは繰り返し説明しません。
カテゴリごとのクエリ例:
| カテゴリ | クエリ例 |
|---|---|
| Azure | "azure virtual machine"、"azure key vault"、"azure api management" |
| AWS | "aws lambda"、"aws s3"、"aws ec2" |
| GCP | "gcp compute engine"、"gcp cloud storage" |
| ネットワーク機器 | "cisco router"、"cisco firewall"、"juniper switch" |
| コンテナ/オーケストレーション | "kubernetes pod"、"docker"、"helm" |
| ブランド/SaaS | "slack"、"github"、"jira"、"salesforce" |
| オンプレミス/IT | "server"、"database"、"laptop"、"printer" |
返された style の値は、必ずそのまま mxCell に指定してください。スタイルの形式はライブラリによって異なります。
# Image-based (Azure azure2, SVG files)
image;aspect=fixed;html=1;points=[];align=center;image=img/lib/azure2/<category>/<Name>.svg;
# Stencil-based (AWS4, GCP2, shape libraries)
shape=mxgraph.aws4.<name>;fillColor=<color>;fontColor=#ffffff;strokeColor=none;
# Stencil-based (Cisco, Kubernetes, etc.)
shape=mxgraph.cisco.<category>.<name>;sketch=0;html=1;
# Icon-service (brand logos and concept icons, returned as an absolute URL)
shape=image;html=1;verticalLabelPosition=bottom;verticalAlign=top;image=https://<icon-service-host>/<icon>.svg;
組み込みライブラリに適切な候補がない場合、search_shapes は draw.io のアイコンサービス(エディターのサイドバーで使われるものと同じグループ化されたアイコン検索)の結果を追加し、絶対 URL を含む shape=image スタイルとして返します。これらも有効な結果です。img/lib/... のパスと一致しないことを理由に却下せず、返されたまま使用してください。
スタイル文字列を確認できない場合、または図形が正しく描画されない場合:
- 別の候補を探すため、
search_shapesを再度検索します(limitを最大 50 まで増やしてください)。範囲を絞ったクエリを一度実行しただけで、図形が存在しないと判断しないでください。 - 未解決の図形スタイルがある状態で、図を生成してはいけません。
- 未解決の図形が複数ある場合は、それらを列挙し、生成を始める前に確認済みの代替候補を提案してください。
- すべての代替候補を確認したら、図を生成してください。
図のエクスポート
| 形式 | 方法 | 備考 |
|---|---|---|
| SVG | File → Export As → SVG | 推奨形式です。flowAnimation の動く点の効果とすべてのアイコン描画を保持します。共有や埋め込みに使用してください。 |
| PNG | File → Export As → PNG | 静止画です。flowAnimation の効果は記録されませんが、アイコンと色は保持されます。 |
File → Export As → PDF | 印刷する図や文書に埋め込む図に最適です。静止画のみです。 | |
| .drawio file | File → Save As | すべての XML、アニメーション設定、スタイル属性を保持し、後から編集できます。 |
flowAnimation=1が表示されるのは、図が draw.io desktop で開かれている場合、または SVG として描画された場合のみです。PNG や PDF へのエクスポートでは表示されません。アニメーションが表示されない理由をユーザーから尋ねられた場合は、その旨を伝えてください。
トラブルシューティングチェックリスト
- 設定した MCP サーバーが
MCP: List Serversに表示されることを確認します。 - ツールリストが古い場合は、
MCP: Reset Cached Toolsを実行します。 - XML コメント(``)は禁止されています — MCP サーバーで拒否されます。送信前にすべてのコメントを削除してください。
- XML がほかの点でも適切な形式であることを確認します(不正なタグ、重複する ID、スタイル文字列内でエスケープされていない
</>/&がないこと)。 - Z オーダー:
parent="1"を持つ図形が兄弟の場合、背景の四角形は、その背後に配置するアイコンより先に定義する必要があります。そうしないと、アイコンの上に描画されます。実際のコンテナー(swimlane、container=1)を使用すれば、この問題を完全に回避できます。子要素は常に親要素の上に描画されます。 valueに HTML タグ(<b>、<br>、<i>)が含まれるセルでは、スタイルにhtml=1が必要です。
による改行は、これがなくても機能します。- 検索結果の
sketch=0:drawio/search_shapesがsketch=0を含むスタイル文字列を返した場合は、そのまま保持してください。省略すると、その図形で手描き風スケッチのレンダリングモードが有効になります。 - アイコンのサイズ:
search_shapesが返す寸法を使用してください。これらの寸法は意図されたアスペクト比を反映しています。見た目を統一するためにアイコンの列を正規化する場合は、64×64 が共通サイズとして適切です。スタイルにaspect=fixedが指定されたアイコンのアスペクト比は、決して変更しないでください。 - Azure/AWS/GCP のアイコンのレンダリング:ベンダー固有のスタイル規則と修正方法については、references/azure.md、references/aws.md、references/gcp.md を参照してください。
- VS Code 拡張機能でのレンダリングに差異がある場合は、Web 版 draw.io で図を開き直してください。
- アイコンの表示がおかしい場合は、
drawio/search_shapesを使用して、代わりとなる正確なスタイル文字列を探してください。
プロンプトテンプレートとチェックリスト
図の種類に応じたプロンプトのプリセットについては references/REFERENCE.md を、レイアウトの事前チェックリストについては references/layout-antipatterns.md を参照してください。
完了の定義
- 正しい入力形式と MCP ツールを選択しています(XML、Mermaid、または CSV、App Server または Tool Server)。
- 生成前に、すべてのアイコン/スタイル文字列を
drawio/search_shapesで確認しています。未確認のアイコンは使用していません。 - 図が正しくレンダリングされます。XML/Mermaid/CSV は有効で、draw.io で開けます。
- 名前付きのすべてのコンポーネントを、正しいアイコンと明確なラベルで識別できます。
- レイアウトの処理方法を意図的に選択しています(手動配置/コンテナーレイアウトには
routing: "libavoid"、方向性のある図にはpostLayout: "elk"— 左から右へのフローにはdirection: "horizontal"— を使用し、両方を同時に使用しないでください)。 - 適用されるトポロジーのチェックリスト項目をすべて満たしています(境界線、サブネット、トラフィックラベル、凡例、分離ボックス、ゾーン、キャンバスサイズ)。
- 適用されるシーケンス/フローのチェックリスト項目をすべて満たしています(番号付きステップ、色分けされたエッジ、エラーパス、キャンバスサイズ)。
- アニメーションの希望を確認し、ユーザーが指定したエッジにのみ
flowAnimation=1;を適用しています。 - 入れ子になったグループには実際のコンテナーを使用しています。各階層は
swimlaneとし、子要素は相対座標を使って自身のコンテナーを親に指定し、コンテナーをまたぐエッジはparent="1"にしています。 - 要求された場合、references/standalone-file-requirements.md に従い、ファイル成果物を
<mxfile>でラップした.drawioとして保存しています。 - エッジで宣言しているのは
source/targetのみです。文書化された例外が適用されない限り、手書きの<Array as="points">ウェイポイントやexitX/entryXのオーバーライドはありません。references/xml-authoring-rules.md を参照してください。 - 最終確定の前に、references/layout-antipatterns.md に照らしてレイアウトのアンチパターンを確認しています。