mcpField
D
Diagrams

Diagrams

リモート
github.com/ByteOverDev開発ツール34 週間前に更新
リポジトリ

Diagrams について

Diagramsは、クラウド構成図、フローチャート、シーケンス図、UMLなどを生成するMCPサーバーです。開発者やインフラチーム向けに、mingrammer/diagrams、Mermaid、PlantUMLと、プロバイダー検索やサービス対応付けを提供します。

主な機能

  1. 01クラウド構成図のレンダリング
  2. 02MermaidとPlantUMLのレンダリング
  3. 03プロバイダー、サービス、ノードの検索
  4. 04キーワードによるノード検索
  5. 05クラウドサービスの同等項目検索

活用シーン

  1. 01クラウドインフラ設計の可視化
  2. 02CI/CDフローチャートの作成
  3. 03認証シーケンスの文書化

MCP 対応

レンダリング、検索、探索、プロバイダー間の対応付けツールを公開し、参考資料をMCPリソースとして提供します。ローカル実行のほか、別サービスに描画を委譲するHTTPファサード構成にも対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://diagrams-mcp-production.up.railway.app/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
pypidiagrams-mcp-server0.1.2

ツール

詳細

diagrams-mcp-server

PyPI CI

クラウドアーキテクチャ図、フローチャート、シーケンス図などを生成する MCP サーバーです。mingrammer/diagrams、Mermaid、PlantUML の3つのレンダリングエンジンを使用します。

図の例

はじめに

ローカルへのインストール
前提条件

デフォルトのローカル/インプロセスレンダリングモードでは、Graphviz が必要です。Mermaid CLI と PlantUML は任意です。これらの特定のレンダリングエンジンをローカルで使用する場合にのみインストールしてください。

依存関係必要となる機能インストール
Graphvizrender_diagram(クラウドアーキテクチャ)brew install graphviz
Mermaid CLIrender_mermaid(フローチャート、シーケンス図など)npm install -g @mermaid-js/mermaid-cli
Java + PlantUMLrender_plantuml(UML 図)brew install openjdk + plantuml.jar をダウンロード
サーバーをインストールする

uvx を使用する場合(推奨):

uvx diagrams-mcp-server

pip を使用する場合:

pip install diagrams-mcp-server

ソースからインストールする場合:

pip install git+https://github.com/ByteOverDev/diagrams-mcp.git
MCP クライアントを設定する
Claude Desktop

claude_desktop_config.json(Settings → Developer → Edit Config)に追加します。

uvx(推奨):

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "uvx",
      "args": ["diagrams-mcp-server"]
    }
  }
}

pip:

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "diagrams-mcp-server"
    }
  }
}
Claude Code (CLI)

次を実行します。

claude mcp add diagrams-mcp -- uvx diagrams-mcp-server

または、.mcp.json に追加します。

uvx(推奨):

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "uvx",
      "args": ["diagrams-mcp-server"]
    }
  }
}

pip:

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "diagrams-mcp-server"
    }
  }
}
Cursor

.cursor/mcp.json に追加します。

uvx(推奨):

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "uvx",
      "args": ["diagrams-mcp-server"]
    }
  }
}

pip:

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "diagrams-mcp-server"
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json に追加します。

uvx(推奨):

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "uvx",
      "args": ["diagrams-mcp-server"]
    }
  }
}

pip:

{
  "mcpServers": {
    "diagrams-mcp": {
      "command": "diagrams-mcp-server"
    }
  }
}
VS Code

.vscode/mcp.json に追加します。

uvx(推奨):

{
  "servers": {
    "diagrams-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["diagrams-mcp-server"]
    }
  }
}

pip:

{
  "servers": {
    "diagrams-mcp": {
      "type": "stdio",
      "command": "diagrams-mcp-server"
    }
  }
}

利用可能なツール

検出
  • list_providers() → list[str] — すべての図のプロバイダー(aws、gcp、k8s、azure、onprem など)を一覧表示します
  • list_services(provider) → list[str] — プロバイダー内のサービスカテゴリを一覧表示します(例:aws → compute、database、network)
  • list_nodes(provider, service) → list[dict] — プロバイダーとサービスの組み合わせに対応するノードクラスを、インポートパスとともに一覧表示します
  • search_nodes(query) → list[dict] — すべてのプロバイダーを対象に、キーワードでノードを検索します(例:「postgres」、「lambda」)
レンダリング
  • render_diagram(code) → Image (PNG) — サンドボックス化されたサブプロセスで、mingrammer/diagrams を使用した Python スクリプトを実行します。レンダリング済みのクラウドアーキテクチャ図を返します。
  • render_mermaid(definition) → Image (PNG/SVG) — Mermaid の図の定義をレンダリングします(フローチャート、シーケンス図、クラス図、ER 図、状態図、ガント図など)。
  • render_plantuml(definition) → Image (PNG) — PlantUML の図の定義をレンダリングします(シーケンス図、クラス図、コンポーネント図、アクティビティ図、状態図、デプロイメント図)。
プロバイダー間の同等サービス
  • find_equivalent(node, target_provider?) → dict — クラウドプロバイダー間で同等のサービスを検索します(例:EC2 → GCP の ComputeEngine)。
  • list_categories() → list[dict] — すべての30のインフラストラクチャロールカテゴリと、プロバイダー間で対応付けられたノードを一覧表示します。

リソース

サーバーは、MCP リソース URI からアクセスできるリファレンスドキュメントを提供します。

URI説明
diagrams://reference/diagramダイアグラムのコンストラクターのパラメーター、デフォルト値、使用方法
diagrams://reference/edgeエッジの演算子、ラベル、スタイル設定、連結
diagrams://reference/clusterクラスターのネスト、スタイル設定、グラフ属性
diagrams://reference/mermaid6 種類のダイアグラムの Mermaid 構文の例
diagrams://reference/plantuml6 種類のダイアグラムの PlantUML 構文の例

使用例

クラウドアーキテクチャ(mingrammer/diagrams)

「ALB が 2 つの ECS サービスにルーティングし、RDS と ElastiCache をバックエンドにする AWS アーキテクチャを描いてください」

from diagrams import Diagram, Cluster
from diagrams.aws.network import ALB
from diagrams.aws.compute import ECS
from diagrams.aws.database import RDS, ElastiCache

with Diagram("ECS Service", direction="LR"):
    lb = ALB("ALB")

    with Cluster("ECS Cluster"):
        services = [ECS("Web"), ECS("API")]

    lb >> services
    services[0] >> ElastiCache("Cache")
    services[1] >> RDS("Database")
フローチャート(Mermaid)

「CI/CD パイプラインを示すフローチャートを作成してください」

Mermaid のフローチャート

シーケンス図(PlantUML)

「クライアント、API ゲートウェイ、認証サービス間の認証フローを示してください」

PlantUML のシーケンス図

@startuml
Client -> "API Gateway": POST /login
"API Gateway" -> "Auth Service": Validate credentials
"Auth Service" --> "API Gateway": JWT token
"API Gateway" --> Client: 200 OK + token
Client -> "API Gateway": GET /data (Bearer token)
"API Gateway" -> "Auth Service": Verify token
"Auth Service" --> "API Gateway": Valid
"API Gateway" --> Client: 200 OK + data
@enduml

開発

# Clone and install
git clone https://github.com/ByteOverDev/diagrams-mcp.git
cd diagrams-mcp
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff check .
ruff format .

# Run the MCP server locally (stdio mode)
diagrams-mcp-server
ファサード/レンダラー分離モード

ホスト型のデプロイでは、MCP サーバーを軽量なファサードとして実行し、レンダリング処理を別のレンダラーサービスに委任できます。これにより、常時稼働する MCP プロセスを小さく保ちながら、Graphviz、Chromium、Mermaid CLI、Java、PlantUML はレンダラーイメージ内だけに配置できます。

# Terminal 1: renderer service
RENDERER_HOST=0.0.0.0 RENDERER_PORT=8001 diagrams-renderer-server

# Terminal 2: HTTP MCP facade delegating to the renderer
FASTMCP_TRANSPORT=http \
FASTMCP_HOST=0.0.0.0 \
FASTMCP_PORT=8000 \
DIAGRAMS_RENDERER_MODE=remote \
DIAGRAMS_RENDERER_URL=http://127.0.0.1:8001 \
diagrams-mcp-server

Docker/Railway の例が含まれています。

ファイル用途
Dockerfile.facadeレンダラー専用のバイナリを含まない、スリムな MCP ファサードイメージ
Dockerfile.rendererGraphviz、Chromium、Mermaid CLI、Java、PlantUML を含むレンダラーイメージ
railway.facade.tomlRailway ファサードサービス設定の例
railway.renderer.tomlRailway レンダラーサービス設定の例

主な環境変数:

変数用途
DIAGRAMS_RENDERER_MODE=remoteファサードが HTTP レンダラーサービスを使用するようにします
DIAGRAMS_RENDERER_URLレンダラーのベース URL。例:http://diagrams-renderer.railway.internal:8080
DIAGRAMS_IMAGE_STORE_DIRファイルベースの一時画像ストアディレクトリ(任意)
BASE_URL絶対ダウンロードリンクを返す際に使用する、公開ベース URL(任意)

対応プロバイダー

render_diagram ツールは、mingrammer/diagrams ライブラリのすべてのプロバイダーに対応しています。対象には次のノードが含まれます。

AWS、GCP、Azure、Kubernetes、On-Premise、AlibabaCloud、OCI、OpenStack、DigitalOcean、Elastic、Outscale、Generic、Custom。

list_providers() と search_nodes(query) を使って、利用可能なノードを確認できます。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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