<div align="center">
π¨οΈ 3D Agent MCP
Text β 2D Preview β 3D Model β Print-Ready STL
AI-powered multi-agent pipeline for generating 3D printable models from text descriptions, with MCP server for seamless AI assistant integration.
      
π¬π§ English | π·πΊ Π ΡΡΡΠΊΠΈΠΉ
<img src="docs/images/v2_text_to_3d_pipeline.png" alt="Pipeline" width="90%"/>
</div>
---
Demo
<video src="https://github.com/teslaproduuction/3d-agent-mcp/raw/main/docs/demo.mp4" controls width="100%"></video>
Generated Examples
<table> <tr> <td><img src="docs/PR/data/images/preview_preview_022218a9.png" width="200"/></td> <td><img src="docs/PR/data/images/preview_preview_02a7f736.png" width="200"/></td> <td><img src="docs/PR/data/images/preview_preview_037a6c8e.png" width="200"/></td> <td><img src="docs/PR/data/images/preview_preview_06079652.png" width="200"/></td> </tr> <tr> <td><img src="docs/PR/data/images/preview_preview_066fe8d4.png" width="200"/></td> <td><img src="docs/PR/data/images/preview_preview_08134311.png" width="200"/></td> <td><img src="docs/PR/data/images/mv_back-right_0a51fab9.png" width="200"/></td> <td><img src="docs/PR/data/images/mv_left.png" width="200"/></td> </tr> </table>
2D previews generated before 3D conversion β faster iteration, less API cost
Multi-View Generation
<table> <tr> <td><img src="docs/PR/data/images/preview_zero123_right_bf464842.png" width="150"/></td> <td><img src="docs/PR/data/images/preview_zero123_right_bf93635c.png" width="150"/></td> <td><img src="docs/PR/data/images/preview_zero123_right_c023b3c2.png" width="150"/></td> <td><img src="docs/PR/data/images/preview_zero123_right_c46b046f.png" width="150"/></td> <td><img src="docs/PR/data/images/preview_zero123_right_d243190d.png" width="150"/></td> </tr> </table>
Multiple camera angles β higher-quality 3D geometry via Hunyuan3D-2mv
---
Architecture
System Context (C4 Level 1)
<img src="docs/images/c4_l1_context.png" alt="C4 Context" width="80%"/>
Containers (C4 Level 2)
<img src="docs/images/c4_l2_containers.png" alt="C4 Containers" width="80%"/>
Agent Pipeline
User Prompt
β
βΌ
βββββββββββββββββββββββ
β Planner Agent β β Decomposes prompt into objects
βββββββββββ¬ββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Image Gen Agent β β DALL-E 3 / FLUX / Qwen (2D preview)
βββββββββββ¬ββββββββββββ
β
[User confirms preview]
β
βΌ
βββββββββββββββββββββββ
β Generation Agent β β Tripo3D API / Hunyuan3D (local)
βββββββββββ¬ββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Intelligent PostProcessing Agent β
β βββ Overhang analysis (24 angles) β
β βββ Support strategy decision β
β βββ Optimal orientation on bed β
βββββββββββ¬ββββββββββββββββββββββββββββ
β
βΌ
Print-Ready STL
Technical Stack
<img src="docs/images/v2_tech_stack.png" alt="Tech Stack" width="80%"/>
---
Features
| Feature | Description | |---|---| | Text-to-3D | Generate 3D model from any text description | | 2D Preview gate | Create image preview before expensive 3D API call | | Intelligent post-processing | AI agent analyzes geometry, decides supports and orientation | | Multi-view generation | Multiple camera angles β better 3D quality | | Multi-object scenes | Plan and generate complex scenes with multiple objects | | MCP integration | Use from Claude Desktop, Cursor, and any MCP client | | Local models | Hunyuan3D-2, TripoSR, FLUX β no API costs, runs on-premise | | Docker stack | Full local stack with GPU support |
Intelligent Post-Processing Output
desk_organizer analysis:
β
Printable without supports in recommended orientation.
Complexity: EASY
AI Analysis:
- Geometry complexity: MEDIUM
- Max overhang angle: 38.5Β°
- Bed contact area: 1 250 mmΒ²
- No internal cavities detected
- Recommended: rotate 180Β° around X axis
---
Quick Start
Option 0 β Docker image (fastest)
docker pull ghcr.io/teslaproduuction/3d-agent-mcp:latest
cp .env.example .env
# Fill in API keys
docker-compose up -d
# β http://localhost:7860
Option 1 β UV (recommended, 10β100Γ faster than pip)
# Install UV
winget install --id=astral-sh.uv -e # Windows
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/macOS
# Clone and setup
git clone https://github.com/teslaproduuction/3d-agent-mcp.git
cd 3d-agent-mcp
uv venv --python 3.10
uv sync --all-extras
# Configure
cp .env.example .env
# Edit .env with your API keys
# Run
uv run python ui/gradio_app.py
# β http://localhost:7860
Option 2 β Docker (full stack with local models)
cp .env.example .env
# Edit .env
docker-compose up -d --build
# β http://localhost
Option 3 β pip
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
pip install -r requirements.txt
cp .env.example .env
python ui/gradio_app.py # β http://localhost:7860
---
MCP Integration
Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.
Claude Desktop config (claude_desktop_config.json)
{
"mcpServers": {
"3d-agent": {
"command": "python",
"args": ["/path/to/3d-agent-mcp/mcp_server/server.py"],
"env": {
"TRIPO_API_KEY": "your_key",
"OPENAI_API_KEY": "your_key"
}
}
}
}
Usage in Claude
User: Generate a phone stand for 3D printing
Claude: [calls generate_3d_model tool]
β
Model generated and optimized for printing!
- File: outputs/models/phone_stand_optimized.stl
- Supports: none required
- Orientation: base-down
- Print time: ~2h 15min
Available MCP tools: generate_3d_model Β· generate_2d_preview Β· analyze_printability Β· plan_scene
β See mcp_server/README.md for full API docs.
---
API Keys
| Key | Purpose | Required | |---|---|---| | OPENAI_API_KEY | DALL-E 3 image gen + GPT for agents | For cloud mode | | TRIPO_API_KEY | 3D generation (Tripo3D cloud) | For cloud mode | | ANTHROPIC_API_KEY | Claude models as agent LLM | Optional | | REPLICATE_API_TOKEN | SDXL / Flux image generation | Optional |
No cloud keys needed for local mode β run Hunyuan3D + FLUX via Docker stack.
---
Configuration
config.yaml controls all behavior:
default_settings:
# Image generation
image_generation:
provider: "local" # local | dalle3 | sdxl | flux
# 3D generation
generation:
api_provider: "local" # local | tripo | meshy
face_limit: 10000
# Post-processing
postprocessing:
mode: "intelligent" # AI decides automatically
auto_orient: true
max_overhang_angle: 45.0
# Printer profile
printer:
build_volume: [220, 220, 250] # mm β Ender 3 / Bambu A1
nozzle_diameter: 0.4
material: "PLA"
# LLM backend
llm:
default_provider: "ollama" # ollama | openai | anthropic
local:
ollama_models: ["qwen2.5:32b", "qwen2.5:7b"]
---
Project Structure
3d-agent-mcp/
βββ agents/ # AI agents
β βββ coordinator.py # Pipeline orchestrator
β βββ planner_agent.py # Scene decomposition
β βββ image_generation_agent.py # 2D preview
β βββ generation_agent.py # 3D API calls
β βββ intelligent_postprocessing_agent.py
β
βββ api_clients/ # API wrappers
β βββ llm_client.py # OpenAI / Anthropic / Ollama
β βββ image_api_client.py # DALL-E / SDXL / FLUX
β βββ tripo_client.py # Tripo3D
β
βββ mcp_server/ # MCP server
β βββ server.py # Tool definitions
β βββ README.md # MCP API docs
β
βββ ui/ # Gradio web UI
β βββ gradio_app.py # Main app
β βββ tabs/, handlers/, components/
β
βββ postprocessing/ # Geometry analysis
βββ docker/ # Local model containers
β βββ hunyuan3d/ # Hunyuan3D-2 (local 3D)
β βββ flux/ # FLUX.1 (local image gen)
β βββ comfyui/ # ComfyUI
β βββ nginx/ # Reverse proxy
β
βββ tests/
βββ config.yaml # Main config
βββ .env.example # API key template
βββ docker-compose.yml # Full Docker stack
βββ pyproject.toml
---
Diagrams
| Diagram | File | |---|---| | Component | docs/PR/diagrams/01_component.png | | Sequence | docs/PR/diagrams/02_sequence.png | | Activity | docs/PR/diagrams/03_activity_gci.png | | Deployment | docs/PR/diagrams/04_deployment.png | | Classes | docs/PR/diagrams/05_classes.png |
---
Development
# Run tests
pytest tests/
# Format
black .
# Lint
flake8 .
# Type check
mypy .
---
Roadmap
- [ ] Meshy API integration
- [ ] PySLM β physics-based support generation
- [ ] G-code preview before printing
- [ ] Printer preset library (Ender 3, Bambu, Prusa)
- [ ] Export to OBJ, FBX, GLTF
- [ ] REST API mode (no Gradio dependency)
---
Contributing
- Fork the repo
- Create a feature branch:
git checkout -b feature/my-feature - Commit changes:
git commit -m "feat: add my feature" - Push:
git push origin feature/my-feature - Open a Pull Request
---
License
MIT Β© 2026 β see LICENSE






