|
--- |
|
title: Python UML Diagram Generator & MCP Server |
|
video: https://youtu.be/n2uV_mX9Byc |
|
emoji: π |
|
colorFrom: blue |
|
colorTo: purple |
|
sdk: gradio |
|
sdk_version: 5.33.0 |
|
app_file: app.py |
|
pinned: false |
|
license: mit |
|
models: |
|
- PlantUML |
|
tags: |
|
- uml |
|
- python |
|
- diagrams |
|
- mcp |
|
- code-analysis |
|
- visualization |
|
- mcp-server-track |
|
short_description: Python UML diagram generator with MCP server support |
|
--- |
|
|
|
# π Python UML Diagram Generator & MCP Server |
|
|
|
A powerful tool that generates UML class diagrams from Python code with integrated Model Context Protocol (MCP) server functionality for AI assistants. |
|
|
|
## π Features |
|
|
|
- **π¨ Interactive Web Interface**: Generate UML class diagrams interactively from Python code |
|
- **π€ MCP Server Integration**: Works with Claude Desktop, Cursor, and other MCP clients |
|
- **π Advanced Code Analysis**: Enhanced analysis with call graphs, complexity metrics, and function dependencies |
|
- **π Function Call Graphs**: Visualize function relationships and dependencies using pyan3 + graphviz |
|
- **π Complexity Metrics**: Cyclomatic complexity, lines of code, parameter analysis |
|
- **βοΈ Standalone Function Analysis**: Perfect for utility scripts with functions (not just classes) |
|
- **π Real-time Processing**: Fast diagram generation using PlantUML |
|
- **πΎ Multiple Formats**: PNG images, PlantUML source code, and call graph visualizations |
|
- **π Inheritance Visualization**: Clear parent-child class relationships |
|
|
|
## π― Quick Start |
|
|
|
1. **Paste Python Code**: Enter your Python code in the text area |
|
2. **Generate Diagram**: Click "Generate Diagram" to create UML visualization |
|
3. **Analyze Structure**: Use "Analyze Code" for detailed code analysis |
|
4. **Download Results**: Save generated diagrams and analysis |
|
|
|
## π€ MCP Server Integration |
|
|
|
This Space automatically serves as an MCP server! To integrate with AI assistants: |
|
|
|
### For Claude Desktop (with mcp-remote): |
|
```json |
|
{ |
|
"mcpServers": { |
|
"python-diagram-generator": { |
|
"command": "npx", |
|
"args": [ |
|
"mcp-remote", |
|
"https://agents-mcp-hackathon-python-code-to-diagram-gene-cc753c2.hf.space/gradio_api/mcp/sse", |
|
"--transport", |
|
"sse-only" |
|
] |
|
} |
|
} |
|
} |
|
``` |
|
|
|
### For Cursor, Cline, and other SSE-compatible clients: |
|
```json |
|
{ |
|
"mcpServers": { |
|
"python-diagram-generator": { |
|
"url": "https://agents-mcp-hackathon-python-code-to-diagram-gene-cc753c2.hf.space/gradio_api/mcp/sse" |
|
} |
|
} |
|
} |
|
``` |
|
|
|
### For Private Spaces: |
|
```json |
|
{ |
|
"mcpServers": { |
|
"python-diagram-generator": { |
|
"url": "https://agents-mcp-hackathon-python-code-to-diagram-gene-cc753c2.hf.space/gradio_api/mcp/sse", |
|
"headers": { |
|
"Authorization": "Bearer hf_your_token_here" |
|
} |
|
} |
|
} |
|
} |
|
``` |
|
|
|
## π οΈ Available MCP Tools |
|
|
|
1. **generate_diagram**: Creates UML class diagrams from Python code |
|
2. **analyze_code_structure**: Provides detailed code structure analysis with enhanced metrics |
|
|
|
## π Advanced Analysis Features |
|
|
|
### **π¬ Advanced Analysis Tab** |
|
- **Function Call Graphs**: Visual network diagrams showing function dependencies |
|
- **Complexity Analysis**: Cyclomatic complexity scoring for each function |
|
- **Function Metrics**: Lines of code, parameter counts, docstring detection |
|
- **Call Relationship Mapping**: Which functions call which, and call frequency analysis |
|
- **Isolated Function Detection**: Find functions that aren't connected to others |
|
- **Code Quality Recommendations**: Suggestions for refactoring and improvements |
|
|
|
### **Enhanced for Standalone Functions** |
|
Perfect for analyzing utility scripts, mathematical functions, data processing pipelines, and other function-heavy code that traditional class-based UML tools miss. |
|
|
|
## π‘ Usage Examples |
|
|
|
### Example 1: Basic Classes |
|
```python |
|
class Animal: |
|
def __init__(self, name: str): |
|
self.name = name |
|
|
|
def speak(self) -> str: |
|
pass |
|
|
|
class Dog(Animal): |
|
def speak(self) -> str: |
|
return f"{self.name} says Woof!" |
|
``` |
|
|
|
### Example 2: Complex Inheritance |
|
```python |
|
class Vehicle: |
|
def __init__(self, brand: str, model: str): |
|
self.brand = brand |
|
self.model = model |
|
|
|
class Car(Vehicle): |
|
def __init__(self, brand: str, model: str, doors: int): |
|
super().__init__(brand, model) |
|
self.doors = doors |
|
|
|
def start_engine(self): |
|
return "Engine started" |
|
|
|
class ElectricCar(Car): |
|
def __init__(self, brand: str, model: str, doors: int, battery_capacity: float): |
|
super().__init__(brand, model, doors) |
|
self.battery_capacity = battery_capacity |
|
|
|
def charge(self): |
|
return "Charging battery" |
|
``` |
|
|
|
## π§ Technical Details |
|
|
|
- **Built with**: Gradio 5.33+ with MCP support |
|
- **Analysis Engine**: Python AST + py2puml + pyan3 |
|
- **Call Graph Generation**: pyan3 + graphviz for function dependency visualization |
|
- **Diagram Rendering**: PlantUML web service + graphviz DOT rendering |
|
- **Output Formats**: PNG images, PlantUML source code, DOT call graphs |
|
- **MCP Protocol**: Server-Sent Events (SSE) transport |
|
- **Function Analysis**: Cyclomatic complexity, parameter analysis, docstring detection |
|
|
|
## π¨ Features Showcase |
|
|
|
- **Real-time Analysis**: Code structure updates as you type |
|
- **Inheritance Detection**: Visualizes parent-child relationships |
|
- **Method & Attribute Mapping**: Complete class member analysis |
|
- **Function Call Graphs**: Interactive network diagrams of function dependencies |
|
- **Complexity Metrics**: Cyclomatic complexity analysis with recommendations |
|
- **Standalone Function Support**: Perfect for utility scripts and mathematical functions |
|
- **Error Handling**: Syntax error detection and reporting |
|
- **Sample Code**: Ready-to-use examples for both classes and functions |
|
|
|
## π± Compatible MCP Clients |
|
|
|
- **Claude Desktop** (via mcp-remote) |
|
- **Cursor IDE** |
|
- **Cline VS Code Extension** |
|
- **Continue VS Code Extension** |
|
- **Custom MCP implementations** |
|
|
|
## π Perfect For |
|
|
|
- **Developers**: Understanding code structure and function dependencies quickly |
|
- **Code Reviews**: Visualizing class relationships and call patterns |
|
- **Documentation**: Generating architectural diagrams and function flow charts |
|
- **Education**: Teaching OOP concepts and functional programming patterns |
|
- **Utility Script Analysis**: Understanding standalone function files and mathematical algorithms |
|
- **Refactoring**: Identifying complex functions and isolated code segments |
|
- **AI Assistants**: Enhanced code analysis capabilities with complexity metrics |
|
|
|
## π Support & Feedback |
|
|
|
- Test with the provided sample code first |
|
- Check the MCP configuration tab for setup instructions |
|
- View API documentation via the "View API" link in the footer |
|
|
|
--- |
|
|
|
**Transform your Python code into beautiful UML diagrams! π¨β¨** |
|
|