Skip to main content
Glama

πŸ–¨οΈ 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.

Python License MCP Gradio Docker AutoGen GHCR

πŸ‡¬πŸ‡§ English | πŸ‡·πŸ‡Ί Русский


Demo

Generated Examples

2D previews generated before 3D conversion β€” faster iteration, less API cost

Multi-View Generation

Multiple camera angles β†’ higher-quality 3D geometry via Hunyuan3D-2mv


Related MCP server: openscad-mcp

Architecture

System Context (C4 Level 1)

Containers (C4 Level 2)

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


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
# 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


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

  1. Fork the repo

  2. Create a feature branch: git checkout -b feature/my-feature

  3. Commit changes: git commit -m "feat: add my feature"

  4. Push: git push origin feature/my-feature

  5. Open a Pull Request


License

MIT Β© 2026 β€” see LICENSE

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI assistants to control and monitor Klipper 3D printers via the Moonraker API. It supports comprehensive printer management, including G-code execution, toolchanger operations, and real-time status monitoring.
    23
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for FreeCAD that enables AI assistants to create and manipulate 3D models via natural language.
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    An MCP server that drives OrcaSlicer headlessly on a virtual display, enabling an agent to import 3D models, slice them, and export G-code without a physical screen or GUI automation.
    12
    2
    -