mcpField
M
mermaid-render-mcp

mermaid-render-mcp

ローカル
github.com/tci-nebulaメディア・デザイン010 週間前に更新

mermaid-render-mcp について

mermaid-render-mcpは、Mermaid構文を画像、PDF、編集可能なdraw.ioファイルに変換するMCPサーバーです。LLMクライアント向けに、Chromiumを使わないフローチャート出力も提供します。

主な機能

  1. 01PNG、SVG、PDFのレンダリング
  2. 02編集可能なdraw.ioフローチャート出力
  3. 03テーマと背景の指定
  4. 04Base64で返却またはファイルに保存

活用シーン

  1. 01生成したMermaid構文を画像化
  2. 02印刷や提出用のPDF作成
  3. 03draw.ioでフローチャートを編集
  4. 04制約のある環境で図を出力

MCP 対応

MCPクライアントに`render_diagram`ツールを公開し、Mermaid構文を受け取って描画結果を返すか、ファイルに保存します。ローカルstdioとStreamable HTTPに対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"tci-nebula-mermaid-render": {
"command": "npx",
"args": [
"-y",
"mermaid-render-mcp"
]
}
}
}
起動コマンドnpx -y mermaid-render-mcp

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

パッケージ
npmmermaid-render-mcp1.3.0

ツール

1

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

パラメーター型必須説明
themeenumいいえ図のビジュアルテーマ。default | dark | neutral | forest
widthnumberいいえキャンバスの幅(ピクセル、PNG のみ)。
formatenumいいえ出力形式。デフォルトは png です。drawio は編集可能な draw.io XML ファイルを生成します(フローチャートのみ)。png | svg | pdf | drawio
pdfFitbooleanいいえPDF ページを図に合わせて拡大縮小します(PDF のみ)。
syntaxstringはいMermaid の図表定義(例:flowchart、sequenceDiagram など)
backgroundstringいいえ背景色(CSS カラー文字列または "transparent")。
output_pathstringいいえ結果を書き込む絶対ファイルパス。指定するとファイルがディスクに書き込まれ、base64 データは返されません。印刷や正式提出用のドキュメントに便利です。

詳細

mermaid-mcp

test npm

M C P サーバーです。Mermaid の図を PNG、SVG、PDF にレンダリングしたり、編集可能な draw.io ファイルに変換したりできます。LLM が図の構文を実際の画像やドキュメントに変換できるようになります。

クイックスタート

Claude Code
claude mcp add mermaid -- npx -y mermaid-render-mcp
Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "mermaid": {
      "command": "npx",
      "args": ["-y", "mermaid-render-mcp"]
    }
  }
}

注記: 初回実行時にはヘッドレス Chromium(約 150 MB)がダウンロードされるため、起動に数分かかります。フローチャートだけが必要で、編集可能なファイルで問題ない場合は、drawio の高速パスを使えば Chromium を完全にスキップできます。

Docker

Node.js や Chromium のダウンロードは不要です。イメージにはすべてが含まれています(日本語/中国語/韓国語のラベル用の CJK フォントも含みます):

claude mcp add mermaid -- docker run -i --rm tcinebula/mermaid-render-mcp

output_path を使うには、ホストディレクトリをマウントして、その中に書き込みます:

{
  "mcpServers": {
    "mermaid": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-v", "C:\\diagrams:/out", "tcinebula/mermaid-render-mcp"]
    }
  }
}

その後、output_path: "/out/figure.pdf" を渡すと、ファイルが C:\diagrams に作成されます。

リモート/セルフホスト(HTTP)

PORT が設定されている場合(または MCP_TRANSPORT=http の場合)、同じサーバーが Streamable HTTP を使用するため、Dockerfile からそのまま Railway、Fly.io などの任意のコンテナホストにデプロイできます:

  • エンドポイント:POST /mcp(ヘルスチェックは /healthz)
  • Authorization: Bearer <token> を必須にするには、AUTH_TOKEN を設定します
  • HTTP モードでは output_path は無効です。base64/XML のレスポンスのみを返します
ソースから実行
git clone https://github.com/tci-nebula/mermaid-mcp.git
cd mermaid-mcp
npm install
claude mcp add mermaid -- node /path/to/mermaid-mcp/server.js

ツール:render_diagram

パラメーター型デフォルト説明
syntaxstring(必須)Mermaid 図の定義
formatpng | svg | pdf | drawiopng出力形式(drawio は編集可能な draw.io XML。フローチャートのみ)
themedefault | dark | neutral | forestdefaultビジュアルテーマ
backgroundstringwhiteCSS の色、または transparent
widthnumber1200キャンバスの幅(px、PNG のみ)
pdfFitbooleantruePDF ページを図に合わせて拡大縮小します(PDF のみ)
output_pathstring—base64 を返す代わりに、指定したファイルパスに結果を書き込みます

レンダリングされた画像は base64 エンコードされたデータとして返されるため、MCP クライアントでインライン表示できます。また、output_path を指定するとファイルをディスクに書き込みます(印刷や正式な書類提出用の PDF に便利です)。

例

LLM に次のように依頼します:

「OAuth のログインフローのフローチャートを描いて」

Mermaid 構文が生成され、render_diagram が呼び出されて、PNG が返されます。

drawio の高速パス(Chromium 不要)

format: "drawio" は、ブラウザーを一切使わない唯一の出力形式です。純粋な JavaScript で解析し、dagre でレイアウトして XML を出力するため、Chromium のダウンロードも、約 150 MB のインストールも、初回実行に数分かかることもありません。変換は実質的に瞬時です。

次のような場合にご利用ください:

  • 図を平面的な画像ではなく編集可能にしたい場合。すべての図形が実際の draw.io オブジェクトとして保持されます
  • Chromium のダウンロードが現実的でない制約のある環境(CI、軽量コンテナ、制限されたノート PC)を使っている場合
  • 画像形式は不要で、今すぐ図だけが必要な場合
{
  "syntax": "flowchart TD\n  A[Start] --> B{OK?}\n  B -->|yes| C[Ship]\n  B -->|no| A",
  "format": "drawio",
  "output_path": "flow.drawio"
}

結果を draw.io(または VS Code 拡張機能)で開き、画像が必要ならそこから PNG/SVG/PDF にエクスポートできます。Chromium を使わずに一連の変換を完了できます。

制限事項
  • フローチャートのみ対応しています。 flowchart と graph の図は変換できますが、シーケンス図、クラス図、状態図、ER 図、ガント図ではエラーが発生します。これらには PNG/SVG/PDF を使用してください。
  • theme、background、width は無視されます。 ファイルを開いた後のスタイル設定は draw.io 側で行います。
  • ノードのサイズは推定値です。 フォントの実測値ではなく、ラベルの長さを基に推定されます。draw.io でファイルを開くとテキストが再計測され、ボックスのサイズが正しく調整されますが、生の XML のジオメトリは概算として扱ってください。

サポート対象の構文:方向 TD / TB / BT / LR / RL、図形 [rect]、(rounded)、{rhombus}、((circle))、([stadium])、[[subroutine]]、[(cylinder)]、{{hexagon}}、エッジ -->、---、-.->、==>、<-->。各エッジには任意で |label| を付けられます。

仕組み

PNG、SVG、PDF へのレンダリングでは、@mermaid-js/mermaid-cli(依存関係として同梱)を外部プロセスとして実行し、ヘッドレス Chromium で図をレンダリングします。最初の npm install では Chromium(約 150 MB)がダウンロードされるため、数分かかります。

draw.io へのエクスポートは純粋な JavaScript で実行されます。フローチャートパーサーと dagre レイアウト(Mermaid と同じエンジン)によって、ネイティブの mxGraphModel XML を生成するため、すべての図形を draw.io で個別に編集できます。

必要条件

ロードマップ

  • PDF エクスポート(正式文書/法的文書のワークフロー向け)
  • draw.io XML エクスポート(編集可能な図 — フローチャート)
  • npm パッケージ(mermaid-render-mcp)
  • リモートホスト型サーバーのオプション(Streamable HTTP トランスポート)

ライセンス

MIT

コメント

MCP は初めてですか?

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

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