3D Agent MCP
MCP server for generating print-ready 3D models from text descriptions via a multi-agent pipeline, enabling AI assistants to create and optimize STL files.
README
<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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.