UML-MCP-サーバー
UML-MCP サーバーは、MCP (モデル コンテキスト プロトコル) に基づいた UML ダイアグラム生成ツールであり、自然言語記述または PlantUML コードの直接記述を通じて、さまざまなタイプの UML ダイアグラムを生成するのに役立ちます。
機能的特徴
複数の UML 図タイプをサポート: クラス図、シーケンス図、アクティビティ図、ユース ケース図、状態図、コンポーネント図、配置図、オブジェクト図
UML図は自然言語記述を通じて生成できる
PlantUMLコードを直接使用してUMLダイアグラムを生成できます
PlantUMLコードとアクセス可能なURLリンクを返し、簡単に共有および表示できるようにします。
生成されたUML図をローカルに保存し、ローカルファイルパスを提供する
カスタム保存パスをサポートし、UML画像の出力ディレクトリを指定します
MCPサーバーとして、ClaudeなどのMCPをサポートするクライアントと統合できます。
サーバーの稼働状況や操作ログを記録する総合的なログシステム
Related MCP server: Hello-MCP
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の UML ダイアグラム生成ツールを自動的にインストールするには:
npx -y @smithery/cli install @Swayingleaves/uml-mcp-server --client claude手動インストール
リポジトリのクローン:
git clone https://github.com/yourusername/UML-MCP-Server.git
cd UML-MCP-Server仮想環境を作成してアクティブ化します。
python -m venv uml-mcp-venv
source uml-mcp-venv/bin/activate # Linux/Mac
# Or
uml-mcp-venv\Scripts\activate # Windows依存関係をインストールします:
pip install -r requirements.txt使用方法
Pythonライブラリとして使用
from fix_plantuml import generate_uml
# Create UML code
uml_code = """
@startuml
Title: Simple Class Diagram
class User {
-String name
-String email
+login()
+logout()
}
class Order {
-int id
-Date date
+process()
}
User "1" -- "many" Order: places
@enduml
"""
# Generate URLs, code, and local paths for UML diagrams
result = generate_uml(uml_code)
# Output result
print("PlantUML code: ")
print(result["code"])
print("\nPlantUML URL:")
print(result["url"])
print("\nLocal file path: ")
print(result["local_path"])カーソルでMCPを設定する
CursorはMCP(Model Context Protocol)サーバーをサポートしており、Cursor内でUML-MCPサーバーを使用してUMLダイアグラムを直接生成できます。設定手順は以下のとおりです。
MCP 機能をサポートする Cursor IDE の最新バージョンがインストールされていることを確認します。
カーソルの設定ファイルを開きます。
macOSの場合:
~/Library/Application Support/Cursor/config.jsonWindowsの場合:
%APPDATA%\Cursor\config.jsonLinuxの場合:
~/.config/Cursor/config.json
構成ファイルの 'mcpServer' セクションを追加または変更します。
{
"mcpServers": {
"UML-MCP-Server": {
"command": "uv",
"args": [
"--directory",
"/Users/yourpath/UML-MCP-Server",
"run",
"uml_mcp_server.py"
],
"output_dir": "/Users/yourpath/uml-output"
}
}
}構成の説明:
UML-MCP-Server: MCPサーバーの名前は必要に応じて変更できます
コマンド: 実行コマンドとしてUVを使用する
args:ディレクトリ: プロジェクトディレクトリの絶対パスを指定します
run: コマンドを実行するuml_mcp_server.py: メインプログラムファイル
output_dir: UML画像の出力ディレクトリを指定する
実際の状況に応じて次のパスを変更してください。
'/Users/Yourpath/UML-MCP Server'をUML-MCP Serverプロジェクトの実際のパスに置き換えます。
'/Users/Yourpath/uml-output'をUML画像を保存するディレクトリパスに置き換えます。
設定ファイルを保存し、カーソルを再起動します。
カーソルでUML-MCPサーバーを使用する:
新しいチャットウィンドウを開く
チャットインターフェースの下部にあるツールバーに、「UML-MCPサーバー」ツールアイコンが表示されます。
このアイコンをクリックすると、UMLツールのオプションメニューが表示されます。
必要な UML 図の種類 (「クラス図の生成」、「シーケンス図の生成」など) を選択します。
カーソルでのUMLツールの使用
カーソルでは、次の内容を入力できます。
例えば:
1. Understand the certification process of the project
2. Generate UML code for the authentication process and generate a flowchart through UML-MCP Server
3. Attention: "output_dir": "/Users/my-project/uml-output"UMLツールによって返される結果
UML ツールの使用方法に関係なく、Cursor は UML-MCP-Server を呼び出し、次を返します。
PlantUMLコード- このコードをコピーして他のPlantUMLツールで使用することができます
PlantUML URL - このURLをブラウザで開くと、生成されたUMLダイアグラムを表示できます。
ローカルファイルパス- 生成されたUMLイメージはこのローカルパスに保存されます
例えば:
Class diagram generated:
PlantUML code:
@startuml
Title: User and Order System
class User {
-String name
-String email
+login()
+logout()
}
class Order {
-int id
-Date date
+process()
}
User "1" -- "many" Order: places
@enduml
PlantUML URL:
http://www.plantuml.com/plantuml/png/~1UDgCqB5Bn0G1k1zYWM_EfPYQYY0Qd9oQc9oQaPcKYYcKc9gMYaiKc9gK...
Local file path:
/Users/username/projects/UML-MCP-Server/output/class_diagram_12345.png生成された UML 図は次の方法で表示できます。
返されたURLリンクをクリックしてブラウザで表示します
ファイルブラウザでローカルファイルパスを開き、保存した画像を表示します。
Cursorでは、Markdown構文を使用してチャットウィンドウに直接画像を表示できます。
トラブルシューティング
UML-MCP サーバーの使用中に問題が発生した場合は、次の手順を試してください。
ログファイルを確認する: エラーの詳細については、「logs」ディレクトリのログファイルを参照してください。
依存関係のインストールを確認する: すべての依存関係が正しくインストールされていることを確認します
ネットワーク接続を確認する: PlantUMLサーバー( www.plantuml.com )にアクセスできることを確認してください
出力ディレクトリの権限を確認する: プログラムが「出力」ディレクトリへの書き込み権限を持っていることを確認します。
よくある問題と解決策:
UMLダイアグラムを生成できません: ログ内のエラーメッセージを確認してください。ネットワークの問題またはPlantUMLサーバーが一時的に利用できないことが原因である可能性があります。
画像がローカルに保存されていません: 「出力」ディレクトリが存在し、書き込み権限があるかどうかを確認してください
MCPサーバーを起動できません: ログファイルをチェックして、ポートの競合やその他のプログラムエラーがないことを確認してください
貢献
コードの投稿、問題の報告、改善提案を歓迎します。GitHub Issues または Pull Requests を通じてプロジェクト開発にご参加ください。
ライセンス
このプロジェクトはMITライセンスを採用しています。詳細はライセンス文書を参照してください。