UML-MCP について
UML-MCP は、AI アシスタントが UML など Kroki 対応形式の図表ソースを検証・描画できる MCP サーバーです。URL、プレイグラウンドへのリンク、またはインライン画像を返し、ローカルとリモートの両方で実行できます。
主な機能
- 01約 37 種類の図表を描画
- 02図表ソースの検証
- 03単体・一括図表の生成
- 04URL とインライン画像の返却
- 05図表タイプとサンプルの提供
活用シーン
- 01自然言語から UML 図を作成
- 02Mermaid または D2 ソースを描画
- 03複数の図表を一度に生成
MCP 対応
図表生成・検証・カタログ参照のツールを MCP クライアントに公開し、タイプ、テンプレート、サンプル、形式、サーバー情報のリソースも提供します。リモート HTTP MCP とローカルの stdio または HTTP トランスポートに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://uml-mcp.vercel.app/mcpclaude mcp add --transport http uml https://uml-mcp.vercel.app/mcp{"mcpServers":{"uml":{"type":"http","url":"https://uml-mcp.vercel.app/mcp"}}}Cursor で開く{"servers":{"uml":{"type":"http","url":"https://uml-mcp.vercel.app/mcp"}}}VS Code で開く{"mcpServers":{"uml":{"type":"http","url":"https://uml-mcp.vercel.app/mcp"}}}{"mcpServers":{"uml":{"serverUrl":"https://uml-mcp.vercel.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4このツールにパラメーターはありません。
詳細
UML-MCP
UML-MCP を使えば、AI アシスタントに図を Markdown で偽造させるのではなく、本物の作図ツールを利用させることができます。 MCP 経由で一度接続すれば、クラス図、シーケンス図、アーキテクチャビュー、Mermaid フローチャート、D2 グラフ、BPMN プロセス、その他の Kroki 対応形式を依頼できます。サーバーがソースを検証してレンダリングし、URL、プレイグラウンドリンク、またはインライン画像を返します。
エージェント向けプロダクトの構成要素としても利用できます。エージェントに図のツールが必要な場合は MCP、フロントエンドに標準的なイベントストリームが必要な場合は AG-UI、モデルの出力をアプリケーションが所有するインタラクティブな UI コンポーネントに変換する場合は OpenUI を使用します。これらのレイヤーは互いに補完し合います。UML-MCP は図の生成に専念します。
| ライブ MCP | https://uml-mcp.vercel.app/mcp |
| ドキュメント | antoinebou12.github.io/uml-mcp |
| カタログ | Kroki 対応形式 約 37 種 · MCP ツール 5 個 · URL + プレイグラウンド + チャット用 PNG |
| エージェント UI | MCP /mcp · AG-UI 標準 /ag-ui · OpenUI 統合ガイド |
| インストール | python scripts/install.py · uv tool install uml-mcp && uml-mcp setup · インストール |
| コンソール | uml-mcp admin:セットアップフォーム、設定、ライブログ、グラフ、Kroki プレイグラウンド(インストール · ユーザーガイド · 概要) |
チャット返信の形式:図のプレビュー · URL · Playground(mermaid.live)
クイックスタート
リモート(推奨) — MCP クライアントに追加します:
"uml-mcp": {
"transport": "http",
"url": "https://uml-mcp.vercel.app/mcp"
}
サイトのルートではなく、/mcp を使用してください。次のように依頼します:「ユーザーがAPIゲートウェイ経由でログインするシーケンス図を描いてください。」 またはPlantUML/Mermaid/Krokiのソースを貼り付けてください。
リポジトリのデフォルト設定:.cursor/mcp.json · .vscode/mcp.json · .codex/config.toml。
| クライアント | 設定 | ガイド |
|---|---|---|
| Cursor | .cursor/mcp.json | docs/integrations/cursor.md |
| VS Code / Copilot | .vscode/mcp.json | docs/integrations/vscode_copilot.md |
| OpenAI Codex | .codex/config.toml | docs/integrations/openai_codex.md |
| Ollama / Open WebUI | config/openwebui_mcp.json | docs/integrations/ollama.md |
| Claude Desktop | config/claude_desktop_*.json | docs/integrations/claude_desktop.md |
すべての設定例:config/README.md
ローカルにインストール(ガイド付き):
| 方法 | コマンド |
|---|---|
| インストーラー(必要なのはPython、typer、tqdmのみ) | python scripts/install.py |
| セットアップウィザード | uv tool install uml-mcp && uml-mcp setup(プロファイル、機能、クライアント、ヘルスチェック) |
| Webセットアップフォーム | uml-mcp setup --web → コンソールにセットアップページを表示 |
| 手動 | uml-mcp config init --profile local · uml-mcp client install --client vscode|cursor|claude-desktop|claude-code |
管理コンソール(uml-mcp admin):概要 · セットアップ · 設定 · アクティビティ · ログ · メトリクス · プラグイン、ライトモードとダークモード、デスクトップとモバイル
originからクローン(ローカルstdio)
git clone https://github.com/antoinebou12/uml-mcp.git
cd uml-mcp
uv sync
uv run python server.py
リポジトリをすでにお持ちで、originを設定する必要がある場合:
git remote add origin https://github.com/antoinebou12/uml-mcp.git
設定: config/README.md(Cursor、VS Code、Codex、Claude、Open WebUI、Continue)
Claude Codeプラグイン
/plugin marketplace add https://github.com/antoinebou12/uml-mcp
/plugin install uml-mcp@uml-mcp-plugins
docs/integrations/claude_code.md · Cursorスキル:.skill/skills/uml-mcp-diagrams/SKILL.md
概要
| トピック | 内容 |
|---|---|
| 図 | Kroki 経由で約 37 種類(UML、Mermaid、D2、TikZ、BPMN、C4、GoAT、UMLet、…) |
| ツール | generate_uml · generate_uml_image · validate_uml · list_diagram_types · generate_uml_batch |
| チャット | インライン PNG + markdown  + Playground リンク |
| デプロイ | ローカル · Docker · Kubernetes (Helm) · Vercel · Smithery |
| エンタープライズ | オプションの SSO:Microsoft Entra ID / OAuth 2.1 ベアラートークン、RFC 9728 メタデータ、明確な 401/403 (docs/enterprise · ガイド) |
| 設定ファイル | 1 つの uml-mcp.yaml(デフォルト値 < ファイル < 環境変数) · uml-mcp config init|show|validate · プロファイル local / docker / enterprise |
| 監査と可観測性 | すべてのツール/リソース/プロンプト呼び出しを MXCP 形式で監査(JSONL ローテーション、stdout → SIEM) · JSON ログ · メトリクス + Prometheus /metrics · IP/ユーザー/ルート/ツールごとのレート制限 (運用) |
| 品質 | uml-mcp lint --strict --min-grade A:mcpx 形式のグレード、トークン予算、MXCP 形式の設定チェック (ルール) |
| 管理コンソール | セットアップフォーム、スキーマ駆動の設定(保存、リセット、ライブ適用)、アクティビティ、ライブログ、チャート、Kroki Playground と Docker スタック、停止;ローカルトークンまたは MCP.Admin (概要) |
| ローカル Kroki | uml-mcp kroki up --use:Docker 上の Kroki + mermaid、blockdiag、bpmn、excalidraw(127.0.0.1) (ガイド) |
| プラグイン | Python パッケージの追加 MCP ツールと図のレンダラー。plugins.enabled で許可リストに登録します (ガイド · 作成者向け)。インタラクティブな D3 フォース図、クラウドアーキテクチャ図、トポロジー図を含みます (D3 プラグイン) |
| トレーシング | リクエストおよび MCP 呼び出しごとの OpenTelemetry スパン(オプション)(uml-mcp[otel]) |
| フロントエンド | エージェント UI 向けの標準 AG-UI SSE;OpenUI は AG-UI を利用し、生成されたコンポーネントをアプリ内にレンダリングできます |
MCP ツール
| ツール | 用途 |
|---|---|
generate_uml | 図を 1 つレンダリングします。ツールのテキストには画像の markdown、URL、Playground が含まれます。ImageContent には png を使用します。 |
generate_uml_image | インラインのチャット画像(デフォルトは PNG);ホスト型の MCP_URL_ONLY でもバイト列を取得します |
validate_uml | ローカルチェック;Mermaid/D2 では strict を指定します(セミコロンで詰め込まれた sequenceDiagram を拒否します) |
list_diagram_types | カタログ(uml://types と同様) |
generate_uml_batch | 複数の図(MCP_BATCH_MAX_ITEMS、MCP_BATCH_CONCURRENCY) |
スモークテスト用プロンプト:tests/prompts/chatgpt_mcp_smoke_test.md
リソース(uml://)
| リソース | 説明 |
|---|---|
uml://types | 種類、バックエンド、形式 |
uml://templates / uml://examples | スターターとサンプル |
uml://formats / uml://capabilities | 形式と検証マトリックス |
uml://server-info / uml://workflow | バージョン/ツールと、計画してから生成するワークフロー |
図の種類
| カテゴリー | 例 |
|---|---|
| UML | クラス図、シーケンス図、アクティビティ図、ユースケース図、状態図、コンポーネント図、配置図、オブジェクト図 |
| 一般 | Mermaid、D2、Graphviz、ERD、BlockDiag、BPMN、C4 |
| 特化型 | TikZ、Excalidraw、GoAT、UMLet、Nomnoml、Pikchr、Structurizr、SVGBob、WaveDrom、WireViz、… |
リモートとローカルの比較
| リモート(Vercel) | ローカル | |
|---|---|---|
| トランスポート | HTTP MCP | stdio または HTTP |
| ファイル書き込み | なし | オプション |
| チャット画像 | URL のみの設定でも PNG ツールがバイト列を取得 | 同様 + オプションでディスクに保存 |
| 環境変数 | サーバー側 | お使いの .env |
デプロイ
Vercel — リポジトリを接続します。クライアントは https://<project>.vercel.app/mcp を使用します。
Smithery — smithery.ai/new に上記の /mcp URL を貼り付けます。ガイド:docs/integrations/vercel_smithery.md。
Docker
docker compose up -d
docker build -t uml-mcp . && docker run -p 8000:8000 uml-mcp
docker run -i uml-mcp python server.py --transport stdio
# self-hosted PlantUML + mermaid.ink fallbacks next to local Kroki
MCP_DIAGRAM_FALLBACK=true USE_LOCAL_PLANTUML=true USE_LOCAL_MERMAID_INK=true docker compose --profile fallback up -d
Kubernetes + SSO:helm upgrade --install uml-mcp deploy/helm/uml-mcp --set auth.mode=jwt …(Entra ID または任意の OIDC プロバイダー)。レンダラーをクラスタ内で実行するには、--set kroki.enabled=true --set plantuml.enabled=true --set mermaidInk.enabled=true を追加します。ガイド:docs/enterprise。
設定(ローカル)
| 変数 | デフォルト |
|---|---|
KROKI_SERVER | https://kroki.io |
PLANTUML_SERVER | http://plantuml-server:8080 |
MERMAID_INK_SERVER | https://mermaid.ink |
MCP_OUTPUT_DIR | ./output |
MCP_READ_ONLY | false |
MCP_URL_ONLY | docs/configuration.md を参照 |
MCP_BATCH_MAX_ITEMS | 20 |
MCP_BATCH_CONCURRENCY | 4 |
MCP_RATE_LIMIT_PER_MINUTE | 0 |
UML_MCP_CONFIG | 検出された uml-mcp.yaml(none で無効化) |
ADMIN_EMAIL | 未設定(ホスト型の /admin ログインは無効)。docs/admin/hosted-vercel.md を参照 |
ADMIN_PASSWORD_HASH / ADMIN_PASSWORD | 未設定。ハッシュが推奨されます |
ADMIN_SESSION_SECRET | 未設定。32 文字以上が必要で、ログインに必須です |
全項目:docs/configuration.md · 単一ファイル:docs/configuration/uml-mcp-yaml.md
アーキテクチャと構成
アシスタント → generate_uml / generate_uml_image → Kroki(およびフォールバック)→ url、playground、任意の画像バイト列。
server.py / app.py -- MCP + FastAPI (/mcp)
mcp_core/tools/ -- generate_uml, generate_uml_image, validate, batch
tools/kroki/ -- Kroki, PlantUML, Mermaid, D2
エージェント UI: AG-UI クライアント向けの標準エンドポイントは POST /ag-ui です。従来の直接レンダリングは POST /ag-ui/generate で利用できます。フロントエンド連携 と OpenUI + UML-MCP を参照してください。
開発
uv sync --all-groups
uv run pytest tests/ -v
uv run ruff check . && uv run ruff format --check .
make ci
ドキュメントをローカルで表示:uv run mkdocs serve → http://127.0.0.1:8000
エンタープライズ SSO:OAuth 2.1 · OpenID Connect · Microsoft Entra ID
オプション機能で、デフォルトでは無効です(MCP_AUTH_MODE=none。公開 Vercel エンドポイントは引き続き開放されています)。
| トピック | 概要 |
|---|---|
| モード | jwt:Entra / OIDC アクセストークンを検証します(リソースサーバー) · entra-proxy:DCR クライアント向けに S256 のみの PKCE を使用する RFC 8414 + RFC 7591 ファサードを追加します |
| OAuth 2.1 | Authorization Code + PKCE S256。ヘッダーのみのベアラートークン。401 → WWW-Authenticate: Bearer resource_metadata, scope。403 insufficient_scope による追加認証 |
| OpenID Connect | 署名鍵のディスカバリー + JWKS。ID トークンは拒否され、アクセストークンのみ受け付けます |
| Entra ID | v2 トークン(requestedAccessTokenVersion: 2)、mcp.read / mcp.write / .default、アプリロール、VS Code + Visual Studio の事前認証(セットアップ) |
| MSAL | クライアント側のみ(VS Code、Visual Studio、Azure CLI、デーモン)。例は OAuth/OIDC/MSAL を参照 |
| 試す | tests/http/entra-auth.http · python -m mcp_core.auth generate az-script · チェックリスト |
コミュニティ
実際の本番リポジトリで使い続けられるなら、洗練されたローンチデモの多くを上回ります。
— @AIDailyGems による antoinebou12/uml-mcp へのコメント
日次・月次のアクティビティ(スター、フォーク、マージ済み PR、イシュー):trendshift.io/repositories/42725
Links
| Docs | Site · Cursor · Claude Code · Frontend · Enterprise SSO · OpenUI |
| Contribute | CONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md |
| License | MIT |
Maintained by Antoine Boucher. Built on PlantUML, Kroki, Mermaid, and D2.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。