mcpField
M
mermaid-diagrams

mermaid-diagrams

github.com/veelengaドキュメント221102 回インストール今日更新
リポジトリ

mermaid-diagrams について

mermaid-diagrams は、MCP サーバーツールを使って Mermaid 図を作成・改善するスキルです。ライブプレビュー、反復更新、完成図の保存を案内し、複数の図の種類を例示します。

主な機能

  1. 01Mermaid 図のライブプレビュー
  2. 02ライブリロードによるプレビュー更新
  3. 03完成した図の保存
  4. 04複数の図の種類に関するガイド
  5. 05テーマと背景の選択

活用シーン

  1. 01フローチャートによるプロセスの可視化
  2. 02シーケンス図によるやり取りの整理
  3. 03コードやデータ構造の文書化
  4. 04ドキュメントへのレンダリング済み図の追加

MCP 対応

図のレンダリング、更新、保存に MCP サーバーツール `mermaid_preview` と `mermaid_save` を使用します。

インストール

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

$npx skills add https://github.com/veelenga/claude-mermaid --skill mermaid-diagrams

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

詳細

Mermaid ダイアグラムのエキスパート

MCP サーバーツールを使用した Mermaid ダイアグラムの作成、改善、最適化に精通しています。

基本的なワークフロー

  1. 初期ダイアグラムを作成する:mermaid_preview を使用してダイアグラムをレンダリングし、ライブリロードで開きます
  2. 反復的に改善する:改善を加えると、ブラウザーが自動的に更新されます
  3. 最終版を保存する:満足できたら mermaid_save を使用します

ツールの使用方法

mermaid_preview

ダイアグラムを作成または更新するときは、必ずこれを使用します。

  • diagram:Mermaid コード
  • preview_id:内容がわかるケバブケースの ID(例:auth-flow、architecture)
  • format:ライブリロードには svg を使用します(デフォルト)
  • theme:default、forest、dark、または neutral
  • background:white、transparent、または 16 進数の色コード
  • size、scale:品質やサイズを調整します

重要なポイント:

  • 改善時は同じ preview_id を再利用し、同じブラウザータブを更新します
  • 複数のダイアグラムを同時に表示する場合は、異なる ID を使用します
  • ライブリロードは SVG 形式でのみ機能します
mermaid_save

ダイアグラムの最終版ができたら使用します。

  • save_path:保存先(例:./docs/diagram.svg)
  • preview_id:先に使用したプレビュー ID と一致させる必要があります
  • format:プレビューで使用した形式と一致させる必要があります

ダイアグラムの種類

フローチャート(graph または flowchart)

方向:LR、TB、RL、BT

graph LR
    A[Start] --> B{Decision}
    B -->|Yes| C[Action]
    B -->|No| D[End]

    style A fill:#e1f5ff
    style C fill:#d4edda
シーケンス図(sequenceDiagram)

⚠️ style ステートメントは使用しないでください — サポートされていません

sequenceDiagram
    participant User
    participant App
    participant API

    User->>App: Login
    App->>API: Authenticate
    API-->>App: Token
    App-->>User: Success
クラス図(classDiagram)
classDiagram
    class User {
        +String name
        +String email
        +login()
    }
    class Order {
        +int id
        +Date created
    }
    User "1" --> "*" Order
エンティティ関連図(erDiagram)
erDiagram
    USER ||--o{ ORDER : places
    ORDER ||--|{ LINE_ITEM : contains

    USER {
        int id PK
        string email
        string name
    }
状態図(stateDiagram-v2)
stateDiagram-v2
    [*] --> Idle
    Idle --> Processing : start
    Processing --> Complete : finish
    Complete --> [*]
ガントチャート(gantt)
gantt
    title Project Timeline
    section Phase 1
    Task 1 :a1, 2024-01-01, 30d
    Task 2 :after a1, 20d

ベストプラクティス

プレビュー ID
  • 内容がわかる名前を使用します:architecture、auth-flow、data-model
  • 改善中は同じ ID を使用します
  • 同時に複数のダイアグラムを扱う場合は、異なる ID を使用します
テーマとスタイル
  • default:すっきりとしたプロフェッショナルなスタイル
  • forest:緑系の色調
  • dark:暗い背景
  • neutral:グレースケール

ドキュメントには transparent の背景を、単独で使用する場合は white の背景を使用します

よくあるパターン

システムアーキテクチャ:

graph TB
    Client[Web App]
    API[API Gateway]
    DB[(Database)]

    Client --> API --> DB

認証フロー:

sequenceDiagram
    User->>App: Login Request
    App->>Auth: Validate
    Auth-->>App: JWT Token
    App-->>User: Access Granted

ユーザーとのやり取り

ユーザーからダイアグラムを求められた場合:

  1. 必要に応じて確認する:種類は何か、詳細度はどの程度か
  2. ダイアグラムの種類を選ぶ:
    • プロセス/ワークフロー → フローチャート
    • システム間のやり取り → シーケンス図
    • コード構造 → クラス図
    • データベース → ER 図
    • タイムライン → ガントチャート
  3. プレビューを作成する:内容がわかる preview_id を使用し、適切なデフォルト設定から始めます
  4. 反復して改善する:同じ preview_id を使い続け、変更点を説明します
  5. 保存する:保存先と形式を尋ね、mermaid_save を使用します

積極的な対応

  • ダイアグラムは必ずプレビューし、コードを生成するだけで終わらせないでください
  • 質問せずに適切なデフォルト設定を使用します
  • 改善時は preview_id を再利用します
  • 改善できる点があれば提案します
  • 選んだダイアグラムの種類について簡潔に説明します

よくある問題

構文エラー:引用符、矢印の構文、キーワードを確認します
レイアウトの問題:方向を変えてみます(LR と TB)
テキストの重なり:寸法を大きくするか、ラベルを短くします
色が反映されない:CSS の色形式を確認します。シーケンス図ではスタイルがサポートされていないことに注意してください

Markdown ファイル内のダイアグラム

ドキュメント内の mermaid コードブロックにも、同じワークフローを適用します。

  • 変更のたびに mermaid_preview でブロックをプレビューし、報告する前に結果を確認します
  • 明るい色の塗りつぶしでは、classDef または style に暗いテキスト色(例:color:#0f172a)を設定し、ラベルを読みやすくします
  • 各 <br/> の行は約 25 文字と短く保ちます。長い行はさらに折り返され、単語だけが取り残されます
  • ダイアグラムの横幅が広くなりすぎたら、ラベルを短くする前に方向(LR または TB)を切り替えます
  • サブグラフのタイトルにエッジを接続しないでください。内部の各ノードではなく、サブグラフ全体に一度だけリンクします

対話の例

ユーザー: 「認証フローの図を作成して」

あなた: 「認証フローを示すシーケンス図を作成します。」 [preview_id="auth-flow" を指定して mermaid_preview を使用]

ユーザー: 「データベースとエラー処理を追加して」

あなた: 「データベースとのやり取りとエラー経路を追加します。」 [同じ preview_id で mermaid_preview を使用 — ブラウザーが自動更新されます]

ユーザー: 「保存して」

あなた: 「./docs/auth-flow.svg に保存します」 [mermaid_save を使用]

コメント