mcpField
D
drawio-diagram

drawio-diagram

github.com/automateyournetworkデザイン・UI68861 回インストール4 日前に更新
リポジトリ

drawio-diagram について

ネットワーク図をDraw.ioのネイティブファイルとして生成するか、ブラウザーエディターで開くスキルです。編集可能な図、エクスポート、共有用プレビューを必要とするネットワークエンジニア向けです。

主な機能

  1. 01ネイティブの .drawio ファイル生成
  2. 02PNG、SVG、PDFへのエクスポート
  3. 03ブラウザーエディターで図を開く
  4. 04Mermaid、XML、CSV入力に対応
  5. 05エクスポートファイルへの図XML埋め込み

活用シーン

  1. 01物理・論理ネットワークトポロジーの作成
  2. 02ドキュメント用の図のエクスポート
  3. 03CSVから機器一覧図をプレビュー
  4. 04ブラウザーで編集できる図のリンク共有

MCP 対応

`@drawio/mcp` MCPサーバーを使い、Draw.ioのブラウザーエディターで図を開きます。サーバーはMermaid、XML、CSV形式の内容を受け取り、図のURLを返します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/automateyournetwork/netclaw --skill drawio-diagram

インストール後、Claude Code で/drawio-diagramを入力して読み込まれたか確認します。

詳細

Draw.io ネットワーク図

次の2つの方法でネットワーク図を生成します。

  1. ネイティブファイルモード — ディスク上に .drawio XML ファイルを生成し、draw.io デスクトップ CLI(公式 jgraph skill-cli)を使って任意で PNG/SVG/PDF にエクスポートします
  2. ブラウザモード — @drawio/mcp MCP サーバーを使って、Draw.io ブラウザーエディターで図を開きます(入力形式は Mermaid、XML、CSV)

インストーラーに関する注意:ネイティブ登録と、ドキュメントに記載された MCP_CALL の呼び出しには、インストール済みのコンポーネントランチャーを使用します。初回使用前に readiness.json を確認してください。検出に失敗しても、デバイスの状態を示すものではありません。既存の書き込み承認は引き続き適用されます。

モード1:ネイティブファイルの生成(公式 Skill-CLI)

ネイティブの .drawio ファイルを直接生成します。任意で、図の XML を埋め込んだ状態で PNG、SVG、PDF にエクスポートできます(エクスポートしたファイルも draw.io で編集できます)。

図の作成方法
  1. リクエストされた図の mxGraphModel 形式の draw.io XML を生成します
  2. Write ツールを使って、現在の作業ディレクトリに XML を .drawio ファイルとして書き込みます
  3. ユーザーがエクスポート形式を指定している場合(png、svg、pdf)は、--embed-diagram を指定して draw.io CLI でエクスポートし、その後、元の .drawio ファイルを削除します
  4. エクスポートした場合はエクスポートしたファイルを、そうでない場合は .drawio ファイルを開きます
出力形式の選択

ユーザーのリクエストで形式の希望を確認します。

  • /drawio create a flowchart → flowchart.drawio
  • /drawio png flowchart for login → login-flow.drawio.png
  • /drawio svg: ER diagram → er-diagram.drawio.svg
  • /drawio pdf architecture overview → architecture-overview.drawio.pdf

形式が指定されていない場合は、.drawio ファイルを書き込んで開きます。ユーザーは後からエクスポートを依頼できます。

対応しているエクスポート形式
形式XML を埋め込み備考
pngはい(-e)あらゆる環境で表示でき、draw.io で編集可能
svgはい(-e)拡大縮小可能で、draw.io で編集可能
pdfはい(-e)印刷可能で、draw.io で編集可能
jpgいいえ非可逆圧縮で、XML の埋め込みには非対応

PNG、SVG、PDF はすべて --embed-diagram に対応しています。エクスポートしたファイルには図の XML 全体が含まれるため、draw.io で開くと編集可能な図を復元できます。

draw.io CLI

draw.io デスクトップアプリには、エクスポート用のコマンドラインインターフェースが含まれています。

CLI の場所の確認

まず drawio を試してください(PATH に含まれている場合に動作します)。見つからない場合は、プラットフォーム固有のパスを使用します。

  • macOS:/Applications/draw.io.app/Contents/MacOS/draw.io
  • Linux:drawio(通常は snap/apt/flatpak 経由で PATH に含まれています)
  • Windows:"C:\Program Files\draw.io\draw.io.exe"

代替パスを使う前に、which drawio(Windows では where drawio)で PATH に含まれているか確認してください。

エクスポートコマンド
drawio -x -f <format> -e -b 10 -o <output> <input.drawio>

主なフラグ:

  • -x / --export:エクスポートモード
  • -f / --format:出力形式(png、svg、pdf、jpg)
  • -e / --embed-diagram:出力に図の XML を埋め込みます(PNG、SVG、PDF のみ)
  • -o / --output:出力ファイルのパス
  • -b / --border:図の周囲の境界線の幅(デフォルト:0)
  • -t / --transparent:背景を透明にします(PNG のみ)
  • -s / --scale:図のサイズを拡大縮小します
  • --width / --height:指定した寸法に収めます(縦横比を維持)
  • -a / --all-pages:すべてのページをエクスポートします(PDF のみ)
  • -p / --page-index:特定のページを選択します(1から始まります)
結果を開く
  • macOS:open <file>
  • Linux:xdg-open <file>
  • Windows:start <file>
ファイル名
  • 図の内容に基づいた、わかりやすいファイル名を使います(例:login-flow、database-schema)
  • 複数語の名前には、小文字とハイフンを使います
  • エクスポート時は、name.drawio.png、name.drawio.svg、name.drawio.pdf のように二重拡張子を使います。これにより、ファイルに図の XML が埋め込まれていることを示します
  • エクスポートが成功したら、中間ファイルの .drawio ファイルを削除します。エクスポートしたファイルに図全体が含まれています

モード2:MCP サーバー経由のブラウザーエディター

@drawio/mcp MCP サーバーを使って、Draw.io ブラウザーエディターで図を直接開きます。3種類の入力形式に対応しています。

Mermaid 図(トポロジー図をすばやく作成するのに最適)
python3 $MCP_CALL "npx -y @drawio/mcp" open_drawio_mermaid '{"content":"graph TD\n  A --> B"}'
XML 図(正確な配置で、詳細かつスタイルを指定した図を作成するのに最適)
python3 $MCP_CALL "npx -y @drawio/mcp" open_drawio_xml '{"content":"<mxGraphModel>...</mxGraphModel>"}'
CSV 図(デバイスのインベントリに最適)
python3 $MCP_CALL "npx -y @drawio/mcp" open_drawio_csv '{"content":"## label: %name%\nname,refs\nA,B\nB,C"}'

3 つのツールはいずれも、読み取り専用表示にする "lightbox": true と、ダークモードにする "dark": "auto"|"true"|"false" をオプションで指定できます。

ツールは Draw.io の URL を返します。そのまま共有すると、図がブラウザーエディターで開き、編集、エクスポート、保存ができます。


XML 形式のリファレンス

.drawio ファイルは、mxGraphModel のネイティブ XML 形式です。XML を直接生成してください。Mermaid 形式と CSV 形式はサーバー側での変換が必要で、ネイティブファイルとして保存できません。

基本構造

すべての図は、次の構造である必要があります。

<mxGraphModel>
  <root>
    <mxCell id="0"/>
    <mxCell id="1" parent="0"/>
    
  </root>
</mxGraphModel>
  • Cell id="0" はルートレイヤーです
  • Cell id="1" はデフォルトの親レイヤーです
  • 複数のレイヤーを使用する場合を除き、すべての図要素で parent="1" を使用します
一般的なスタイル

角丸の長方形:

<mxCell id="2" value="Label" style="rounded=1;whiteSpace=wrap;" vertex="1" parent="1">
  <mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
</mxCell>

ひし形(判断):

<mxCell id="3" value="Condition?" style="rhombus;whiteSpace=wrap;" vertex="1" parent="1">
  <mxGeometry x="100" y="200" width="120" height="80" as="geometry"/>
</mxCell>

矢印(エッジ):

<mxCell id="4" value="" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="2" target="3" parent="1">
  <mxGeometry relative="1" as="geometry"/>
</mxCell>

ラベル付き矢印:

<mxCell id="5" value="Yes" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="3" target="6" parent="1">
  <mxGeometry relative="1" as="geometry"/>
</mxCell>
便利なスタイルプロパティ
プロパティ値用途
rounded=10 または 1角丸
whiteSpace=wrapwrapテキストの折り返し
fillColor=#dae8fc16 進数の色背景色
strokeColor=#6c8ebf16 進数の色枠線の色
fontColor=#33333316 進数の色テキストの色
shape=cylinder3形状名データベースの円柱
shape=mxgraph.flowchart.document形状名ドキュメントの形状
ellipseスタイルキーワード円/楕円
rhombusスタイルキーワードひし形
edgeStyle=orthogonalEdgeStyleスタイルキーワード直角のコネクター
edgeStyle=elbowEdgeStyleスタイルキーワードエルボー型のコネクター
dashed=10 または 1破線
swimlaneスタイルキーワードスイムレーンコンテナー

ネットワークエンジニアリング向けの図の種類

1. 物理トポロジー図

デバイス、物理リンク、インターフェイス名、IP アドレス、リンク速度を示します。

python3 $MCP_CALL "npx -y @drawio/mcp" open_drawio_mermaid '{"content":"graph TD\n  R1[\"R1\\nCore Router\\n10.255.255.1\"]\n  R2[\"R2\\nCore Router\\n10.255.255.2\"]\n  SW1[\"SW1\\nDist Switch\\n10.255.255.3\"]\n  R1 -->|\"Gi0/0 -- Gi0/0\\n10.1.1.0/30\"| R2\n  R1 -->|\"Gi0/1 -- Gi0/1\\n10.1.2.0/30\"| SW1\n  R2 -->|\"Gi0/1 -- Gi0/1\\n10.1.3.0/30\"| SW1"}'
2. 論理トポロジー図

ルーティングプロトコルの関係、エリア、AS 番号、VRF を示します。

python3 $MCP_CALL "npx -y @drawio/mcp" open_drawio_mermaid '{"content":"graph TD\n  subgraph \"OSPF Area 0\"\n    R1[\"R1 ABR\"]\n    R2[\"R2 ABR\"]\n  end\n  subgraph \"OSPF Area 1\"\n    R3[\"R3\"]\n  end\n  R1 --- R2\n  R1 --- R3"}'
3. セキュリティゾーン図

ファイアウォール、DMZ、信頼境界、ACL の適用ポイントを示します。

python3 $MCP_CALL "npx -y @drawio/mcp" open_drawio_mermaid '{"content":"graph LR\n  subgraph \"Untrusted\"\n    INET((Internet))\n  end\n  subgraph \"DMZ\"\n    WEB[\"Web Server\"]\n  end\n  subgraph \"Trusted\"\n    CORE[\"Core Switch\"]\n  end\n  INET --> FW[\"Firewall\"]\n  FW --> WEB\n  FW --> CORE"}'

重要:XML の整形式性

  • XML コメント内では、二重ハイフン(--)を絶対に使用しないでください。 XML 仕様では `` 内の -- は無効であり、解析エラーの原因になります。単一のハイフンを使うか、別の表現にしてください。
  • 属性値内の特殊文字はエスケープしてください:&amp;、&lt;、&gt;、&quot;
  • 各 mxCell には、必ず一意の id 値を使用してください

モードの使い分け

シナリオモード理由
バージョン管理用の .drawio ファイルを生成するネイティブファイルディスク上に実ファイルを生成します
ドキュメント用に PNG/SVG/PDF をエクスポートするネイティブファイルXML を埋め込んだ CLI エクスポートが可能です
検出データからトポロジーをすばやくプレビューするブラウザーブラウザー上で瞬時に視覚化できます
CSV ベースのインベントリ図を作成するブラウザーCSV 形式は MCP 経由でのみ利用できます
Mermaid 構文の図を作成するブラウザーMermaid の変換は MCP 経由でのみ利用できます
オフライン/エアギャップ環境ネイティブファイルネットワークは不要です
図のリンクを共有するブラウザー共有可能な URL を返します

他のスキルとの連携

  • pyats-topology を使ってネットワークを検出し、そのデータから図を生成します
  • netbox-reconcile を使って、照合ステータス(記録済み/未記録/欠落)に応じてリンクを色分けします
  • トポロジー表示には Draw.io を使い、階層表示には markmap-viz を使います
  • aci-fabric-audit のデータを使って、ACI ファブリックのトポロジー図を生成します
  • gait-session-tracking を使って、図の生成をソースデータへの参照とともに記録します

コメント