ども!龍ちゃんです。
前回の記事では Draw.io の公式 MCP Tool Server を検証しました。しっかり動くし、Mermaid 入力のトークン効率もよかったのでぱっと使う分には良かったですね。問題があったんでブログを書いているんですけどもwww
今回の内容です。
- MCP Tool Server の問題 — ファイルが残らない
- Skill + VS Code 拡張機能のセットアップ
- VS Code 内で完結する作業の流れ(生成 → プレビュー → 編集 → エクスポート → Git 管理)
- MCP Tool Server との比較と使い分け
- Mermaid / PlantUML も含めた図解ツール全体の選び方
MCP Tool Server の問題: 設計図が Git 管理できない
検証していて問題になったことがあります。
Draw.io で描く図って、設計情報なんですよね。アーキテクチャ図、シーケンス図、フロー図。どれもシステムの設計を表現したもので、ソースコードと同じように GitHub に置いてバージョン管理したい。PR でレビューもしたい。
ところが MCP Tool Server は URL 方式です。図を生成すると app.diagrams.net の URL が返ってきて、ブラウザで開く。図のデータは URL に埋め込まれているだけで、手元にファイルが残らない。git add できるものがないんですよね。
MCP が悪いわけじゃないです。ブラウザで図を確認・共有する用途は十分見たいしてます。Slack に URL を貼れば相手もすぐに見られるし、受け取り側に環境も要らない。ただ、設計情報を Git で管理するという用途には合わないだけですね。
同じ jgraph/drawio-mcp リポジトリに、.drawio ファイルをローカルに生成するアプローチがあります。これと VS Code の Draw.io 拡張機能を組み合わせると、生成からプレビュー、手動編集、エクスポート、Git 管理まで VS Code の中で完結するので、そちらの検証結果をブログにまとめています。
Skill + 拡張機能のセットアップ
やることは2つだけです。Skill 定義ファイルを1つと VS Code の拡張機能を1つ追加する。MCP サーバーの起動も Node.js も要りません。
Skill のセットアップ
jgraph/drawio-mcp リポジトリの skill-cli/SKILL.md を取得して、プロジェクトに配置します。
mkdir -p .claude/skills/drawio
curl -sL https://raw.githubusercontent.com/jgraph/drawio-mcp/main/skill-cli/SKILL.md \
> .claude/skills/drawio/SKILL.mdこれだけです。MCP のように .mcp.json に設定を書いたり、npx でサーバーを起動したりする必要はありません。
VS Code 拡張機能の追加
.drawio ファイルを VS Code で開けるようにするために、Draw.io の拡張機能を追加します。
devcontainer を使っている場合は devcontainer.json に追加するだけです。
{
"customizations": {
"vscode": {
"extensions": [
"hediet.vscode-drawio"
]
}
}
}ローカル環境なら VS Code のマーケットプレイスから hediet.vscode-drawio をインストールしてください。
この拡張機能を入れると、.drawio ファイルを開いたときに VS Code 内に GUI エディタが表示されます。ドラッグ&ドロップで図形を動かしたり、色を変えたり、接続線を引いたりできます。ブラウザの draw.io と同じ操作感です。
PNG や SVG へのエクスポートも、この拡張機能のメニューから手動でできます。draw.io の CLI ツールは要りません。
なぜ「CLI」ではなく「拡張機能」なのか
jgraph/drawio-mcp のリポジトリでは、このアプローチを「Skill + CLI」と呼んでいます。ここでいう CLI は draw.io のデスクトップアプリをコマンドラインで使うエクスポート機能(drawio -x -f png ...)のことです。
ただ、devcontainer 環境でこの CLI を動かそうとすると面倒なんですよね。draw.io のデスクトップアプリは Electron ベースなので、ヘッドレス環境で動かすには xvfb と大量の X11 依存パッケージが必要になる。Docker イメージが 500MB くらい膨らみます。
VS Code の Draw.io 拡張機能なら、devcontainer.json に1行追加するだけで済みます。プレビュー、編集、エクスポートが全部揃います。
devcontainer 環境での現実解は Skill + 拡張機能 です。
VS Code で完結する作業の流れ
セットアップが終わったら、実際の作業の流れを見ていきましょう。ブラウザを開かずに、VS Code の中だけで図の生成から Git 管理まで完結します。
生成 → プレビュー → 編集 → エクスポート → Git 管理
流れはこうなります。
Claude Code に指示
→ .drawio ファイル生成
→ VS Code でプレビュー(Draw.io 拡張が自動で開く)
→ GUI で手動微調整(色・配置・接続)
→ 拡張機能から PNG/SVG にエクスポート
→ git add → commit → push実際に Claude Code に指示するときはこんな感じです。
ログイン処理のフローチャートを .drawio で作って。
開始 → メールアドレス入力 → パスワード入力 → 認証API呼び出し
→ 成功/失敗の分岐 → 完了特別なコマンドは要りません。.drawio で作って と言えば、Skill の定義を参照して .drawio ファイルを生成してくれます。フローチャートに限らず、アーキテクチャ図やシーケンス図も同じように自然言語で指示するだけで作れます。

AI 生成 + 手動仕上げ
Claude が生成する .drawio ファイルは、そのまま使えるレベルではあります。ノードの配置も接続も合っている。ただ、色やレイアウトの微調整は人間が GUI でやったほうが速いんですよね。
ここが Mermaid や PlantUML との大きな違いです。テキストベースのツールだと、色を変えたければソースコードを編集して再レンダリングする。Draw.io なら GUI で直接ドラッグして色を塗れば終わりです。Figma を触る感覚に近いです。
AI が 80% の構造を作って、人間が 20% の見た目を GUI で仕上げる。このハイブリッドが .drawio ファイルとして Git にコミットされるのが、この流れのポイントです。

GitHub での管理
.drawio ファイルは Git にそのままコミットできます。バージョン管理される。ブランチを切って PR でレビューもできる。
設計情報を Git 管理する最大のメリットは、PR で図をレビューできることです。設計変更があったら図も一緒に PR に含めて、レビュアーが確認できる。ただ、ここで1つ問題があります。
GitHub は .drawio ファイルをレンダリングしません。リポジトリ上で開くと生の XML が表示される。これだと PR を開いてもレビュアーは図が見られないんですよね。


解決策が .drawio.svg 形式です。VS Code の拡張機能から SVG にエクスポートすると、SVG の中に Draw.io の XML が埋め込まれます。GitHub 上では画像として表示されるので、PR でレビュアーが図を確認できる。しかも draw.io で開けば再編集もできます。
.drawio ファイル(編集用ソース)と .drawio.svg(GitHub 表示・レビュー用)の両方をコミットしておくのがおすすめです。
CI で自動変換したい場合は render-drawio-action も選択肢に入ります。
MCP vs Skill の比較
ここまで Skill + 拡張機能のセットアップとワークフローを見てきました。じゃあ MCP Tool Server はもう要らないのかというと、そんなことはないです。用途が違うだけなんですよね。
比較表
| 比較項目 | MCP Tool Server | Skill + 拡張機能 |
|---|---|---|
| 出力 | URL → ブラウザで確認 | .drawio ファイル → VS Code で確認 |
| Git 管理 | できない(ファイルが残らない) | できる(.drawio をコミット) |
| 入力フォーマット | XML / Mermaid / CSV | XML のみ |
| コンテキスト消費 | 3ツール分の定義が常に載る | 使うときだけ読み込まれる(普段はゼロ) |
| 編集環境 | ブラウザ(app.diagrams.net) | VS Code 内 |
| オフライン | 初回ダウンロード後は可能 | 完全オフライン対応 |
| セットアップ | .mcp.json + Node.js | SKILL.md 1つ + 拡張機能 |
| エクスポート | ブラウザから手動 | 拡張機能から手動 |
Mermaid 入力に対応しているのは MCP だけです。Mermaid はトークン効率が良くて、XML の 1/10 くらいで同じ図を表現できる。フローチャートで比べると、XML だと約 800 トークンかかるところが Mermaid なら約 100 トークンで済みます。
逆に、Git 管理ができるのは Skill + 拡張機能だけです。ここは明確に分かれます。
どちらを選ぶか
判断はシンプルです。
- Git で管理したい → Skill + 拡張機能。これ一択
- Mermaid から変換したい → MCP Tool Server
- URL を共有して相手にすぐ見せたい → MCP Tool Server
- VS Code の中で完結したい → Skill + 拡張機能
- 両方使い分けたい → 併用できる。同じリポジトリの別アプローチなので競合しない
僕の場合は、設計情報を GitHub で管理するのが前提なので Skill + 拡張機能をメインで使っています。Mermaid から Draw.io に変換したいときだけ MCP を使う、という使い分けですね。
全ツールの使い分け — Draw.io だけで考えない
Draw.io の話をしてきましたが、図を作るツールは Draw.io だけじゃないです。Mermaid、PlantUML、HTML ベースの図解もある。目的に合わせて選ぶのが大事なんですよね。
Draw.io の立ち位置
Draw.io の強みは GUI で直感的に編集できることです。AI が生成した図をそのままドラッグして色を塗って形を変えられる。Mermaid や PlantUML だとソースコードを書き換えて再レンダリングしないといけないけど、Draw.io ならマウスで触るだけです。
デザインの自由度も段違いで、色、形状、アイコン、グラデーション、何でもいける。素の Mermaid / PlantUML だと見た目の調整に限界があって、Mermaid を Tailwind で拡張する記事と PlantUML を Tailwind で仕上げる記事を書いたくらいなんですよね。Draw.io ならそもそもその問題が起きません。
ただ弱点もあります。
- Git diff が見づらい:
.drawioの中身は XML なので、diff を見ても座標やスタイル情報が大量に出てきて、何が変わったのかわかりにくい。Mermaid や PlantUML はテキストベースだから diff がきれいに出る - GitHub でレンダリングされない:
さっき書いた通り、.drawioのままだと生 XML が表示される。.drawio.svgで回避はできるけど、ひと手間かかる
使い分け表
| ユースケース | 推奨ツール | 理由 |
|---|---|---|
| ブログ記事のフロー図・概念図 | HTML + Mermaid / PlantUML | PNG が直接出る。テキストで完結 |
| テキスト管理したい仕様書の図 | Mermaid / PlantUML | diff がきれい。テキストで完結 |
| デザインにこだわりたい図 | Draw.io(Skill + 拡張機能) | GUI 編集、デザイン自由度が高い |
| Mermaid / CSV からの変換 | Draw.io MCP | 変換に対応しているのはこれだけ |
| URL を貼って即共有 | Draw.io MCP | リンク1つで相手が見られる |
ブログ記事の図を作るだけなら、正直 HTML + Mermaid で作る図解や PlantUML で作る図解 のほうが手軽です。PNG が直接出てくるし、テキストだけで完結する。
Draw.io が活きるのは「デザインにこだわりたい」か「GUI で編集したい」場面です。設計書に載せる図とか、お客さんに見せる図とか、見た目が大事な場面ですね。
判断フロー
迷ったらこの流れで考えるとすっきりします。

仕様書の図はAIに読ませるな — 軽量コードを添える設計パターン や 図解作成、AIに丸投げしたら「たまに自分より上手い」件 も合わせて読むと、図解ツール全体の使い分けが見えてくると思います。
まとめ
Draw.io で描く図は設計情報です。設計情報なら GitHub で管理したい。MCP Tool Server は URL 方式で図が手元に残らないから、Git 管理には向かない。
だから Skill + VS Code 拡張機能を使う。SKILL.md を1つ置いて、devcontainer.json に拡張機能を1行追加する。これで .drawio ファイルの生成からプレビュー、GUI 編集、エクスポート、Git 管理まで VS Code で完結します。
MCP Tool Server が使えないわけじゃないです。Mermaid 変換や URL 共有には MCP のほうが向いている。同じリポジトリに両方のアプローチが用意されているのは、用途が違うからなんですよね。
ツールは目的で選ぶ。Git 管理が要るなら Skill + 拡張機能、共有が要るなら MCP。テキスト管理や diff 重視なら Mermaid / PlantUML もある。全部を1つで解決しようとしないで、場面に合わせて使い分けるのがいいんじゃないかなと思います。
ほなまた〜
関連ブログ
Draw.io MCP シリーズ
- 前回の記事: Draw.io 公式 MCP でできること・セットアップガイド
— MCP Tool Server のセットアップと Mermaid / CSV 入力の検証結果をまとめた記事です
MCP と Skills の使い分け
- Claude Code MCP が遅い・重い問題、CLI + Skills で解決
— Notion・Playwright MCP の接続・トークン問題を CLI + Skills 移行で軽量化した話。今回の「用途の適合性」とは別の切り口です - Claude Code: 公式MCPを補完するSkills設計パターン
— 公式 MCP の不足機能を Skills で補完する設計パターン。MCP → CLI → Skill の判断基準を整理しています
AI × 図解作成
- 図解作成、AIに丸投げしたら「たまに自分より上手い」件
— Claude Code Skill で HTML 図解を自動生成 → PNG 変換する流れ。気に入ったデザインを蓄積して AI のスキルを育てる方法も紹介 - ClaudeでMermaid図作成を自動化!2時間→5分の劇的時短術
— Claude + Mermaid でフローチャートやシーケンス図を自動生成。Live Editor の活用術と日本語フォントの対処法 - Claude Codeで仕様書のPlantUML図を自動生成
— PlantUML の各種図を Claude Code で自動生成し、VS Code Preview で確認する環境構築と実践例 - 仕様書の図はAIに読ませるな — 軽量コードを添える設計パターン
— Mermaid / PlantUML のソースコードと設計意図を HTML コメントで添える設計パターン。AI が推測ではなく正確に読める形式にする方法
図解のデザイン強化
- Mermaidのデザインが物足りない?Tailwindで拡張して設計書品質に
— Mermaid 図に Tailwind CSS の注釈パネルを組み合わせて設計書品質にアップグレード。PNG 変換手段とテンプレートも紹介 - PlantUMLの表現力をTailwind CSSで設計書品質に仕上げる
— PlantUML + Tailwind CSS で設計書品質を実現。skinparam 設定と2つのレイアウトテンプレート

