Diagrams について
Diagramsは、クラウド構成図、フローチャート、シーケンス図、UMLなどを生成するMCPサーバーです。開発者やインフラチーム向けに、mingrammer/diagrams、Mermaid、PlantUMLと、プロバイダー検索やサービス対応付けを提供します。
主な機能
- 01クラウド構成図のレンダリング
- 02MermaidとPlantUMLのレンダリング
- 03プロバイダー、サービス、ノードの検索
- 04キーワードによるノード検索
- 05クラウドサービスの同等項目検索
活用シーン
- 01クラウドインフラ設計の可視化
- 02CI/CDフローチャートの作成
- 03認証シーケンスの文書化
MCP 対応
レンダリング、検索、探索、プロバイダー間の対応付けツールを公開し、参考資料をMCPリソースとして提供します。ローカル実行のほか、別サービスに描画を委譲するHTTPファサード構成にも対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://diagrams-mcp-production.up.railway.app/mcpclaude mcp add --transport http mskry-diagrams https://diagrams-mcp-production.up.railway.app/mcp{"mcpServers":{"mskry-diagrams":{"type":"http","url":"https://diagrams-mcp-production.up.railway.app/mcp"}}}Cursor で開く{"servers":{"mskry-diagrams":{"type":"http","url":"https://diagrams-mcp-production.up.railway.app/mcp"}}}VS Code で開く{"mcpServers":{"mskry-diagrams":{"type":"http","url":"https://diagrams-mcp-production.up.railway.app/mcp"}}}{"mcpServers":{"mskry-diagrams":{"serverUrl":"https://diagrams-mcp-production.up.railway.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
diagrams-mcp-server
クラウドアーキテクチャ図、フローチャート、シーケンス図などを生成する MCP サーバーです。mingrammer/diagrams、Mermaid、PlantUML の3つのレンダリングエンジンを使用します。

はじめに
ローカルへのインストール
前提条件
デフォルトのローカル/インプロセスレンダリングモードでは、Graphviz が必要です。Mermaid CLI と PlantUML は任意です。これらの特定のレンダリングエンジンをローカルで使用する場合にのみインストールしてください。
| 依存関係 | 必要となる機能 | インストール |
|---|---|---|
| Graphviz | render_diagram(クラウドアーキテクチャ) | brew install graphviz |
| Mermaid CLI | render_mermaid(フローチャート、シーケンス図など) | npm install -g @mermaid-js/mermaid-cli |
| Java + PlantUML | render_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/mermaid | 6 種類のダイアグラムの Mermaid 構文の例 |
diagrams://reference/plantuml | 6 種類のダイアグラムの 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 パイプラインを示すフローチャートを作成してください」

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

@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.renderer | Graphviz、Chromium、Mermaid CLI、Java、PlantUML を含むレンダラーイメージ |
railway.facade.toml | Railway ファサードサービス設定の例 |
railway.renderer.toml | Railway レンダラーサービス設定の例 |
主な環境変数:
| 変数 | 用途 |
|---|---|
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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。