Skip to main content
Glama

mcp-archviz

3D architecture visualization MCP server with stub provider.

Status: Phase 4 MVP — Stub provider with placeholder URLs (no real 3D rendering)

Overview

mcp-archviz provides tools for 3D visualization of workspace layouts from mcp-floorplans.

Current implementation: STUB provider

  • All URLs are placeholder (stub:///) indicating no real rendering occurs

  • API matches future real providers (Roomify, Unreal Engine 5)

  • Fully testable without external 3D rendering service

  • Ready for Phase 5+ integration with real providers

Related MCP server: WalkMyPlan MCP Server

Architecture

server.py
  ├─ MCP server with 3 tools
  ├─ generate_3d_model — 3D model from layout
  ├─ render_perspective — Perspective view from angle
  └─ export_model — Export in multiple formats

test_archviz.py
  └─ 15+ unit tests, all deterministic

Quick Start

# Install dependencies
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Run tests
pytest test_archviz.py -v

# Start MCP server (stdio mode for Claude)
python server.py

MCP Tools

generate_3d_model

Generate 3D model from floorplan layout.

Input:

{
  "layout": {
    "variant_id": "balanced-001",
    "zones": [...],
    "metrics": {
      "total_sqm": 200,
      "workstations": 12,
      "meeting_rooms": 1,
      "collaboration_zones_pct": 25
    }
  },
  "style": "contemporary",
  "brand_colors": {
    "primary": "#1a73e8",
    "secondary": "#4285f4"
  }
}

Output: Model metadata

  • model_id — Unique model identifier

  • 3d_model_url — STUB URL to 3D model (GLB format)

  • preview_image_url — STUB URL to preview image

  • dimensions — Calculated space dimensions

  • zones — Zone objects with textures and materials

  • brand_integration — Color accents from brand DNA

  • interactive_features — Planned features for real implementation

  • formats_available — Export formats

render_perspective

Generate perspective view from specific angle.

Input:

{
  "model_id": "model-abc123",
  "angle_degrees": 45,
  "height_m": 1.6
}

Output: Rendered view metadata

  • render_id — Unique render identifier

  • rendered_image_url — STUB URL to rendered image

  • camera — Camera position and angle

  • available_angles — Standard view angles [0, 45, 90, ...]

export_model

Export 3D model in requested format.

Input:

{
  "model_id": "model-abc123",
  "format": "glb"
}

Supported formats:

  • glb — Web-ready 3D (Three.js, Babylon.js)

  • gltf — Portable 3D format

  • usdz — Apple ARKit compatible

  • usd — Unreal Engine 5 compatible

  • stl — 3D printing format

  • obj — Blender/Maya compatible

Output: Export metadata

  • download_url — STUB URL to exported file

  • file_size_mb_estimate — Estimated file size

  • supported_applications — Applications that can open format

  • compression — Compression method used

Integration Pattern

Workflow: mcp-floorplans → mcp-archviz

1. Generate layout (mcp-floorplans)
   └─ returns zones, metrics, stub floorplan URLs

2. Generate 3D model (mcp-archviz)
   └─ receives layout
   └─ returns model_id, stub 3D URLs

3. Render perspective (mcp-archviz)
   └─ receives model_id, angle
   └─ returns stub rendered image URL

4. Export (mcp-archviz)
   └─ receives model_id, format
   └─ returns stub export URL

Stub Provider Details

What "STUB provider" means:

All URLs returned follow the pattern stub:///path/to/resource:

stub:///models/{model_id}/model.glb
stub:///renders/{render_id}/perspective-45deg.png
stub:///exports/{export_id}/model.glb

Why stubs?

  1. No external dependency — Don't require 3D rendering service API key

  2. Deterministic — Same input always produces same output

  3. Testable — Can verify logic without network calls

  4. Honest — Clear indicator that images/models don't actually exist

  5. Autonomous — Agent can run without user provisioning real infrastructure

When real 3D is needed:

Phase 5+ will integrate:

  • Roomify API (commercial 3D rendering)

  • Unreal Engine 5 (heavy duty rendering)

  • Blender API (open-source alternative)

  • Three.js (web-based visualization)

Phase 4 Status

✅ COMPLETED:

  • Stub 3D provider implementation

  • All 3 tools with full signatures

  • Metadata generation for future real implementation

  • 15+ unit tests (all passing)

  • Integration tests with mcp-floorplans output

  • Style support (minimal, contemporary, luxury)

  • Brand color integration

  • Multi-format export support

⏸️ DEFERRED (Phase 5+):

  • Real 3D model generation

  • Real perspective rendering

  • Real texture/material application

  • Virtual walkthroughs

  • AR/VR export

  • Animation rigs

Example Response

Model generation response:

{
  "status": "success",
  "provider": "STUB:archviz",
  "model_id": "model-abc12345",
  "layout_id": "balanced-001",
  "style": "contemporary",
  "3d_model_url": "stub:///models/model-abc12345/model.glb",
  "preview_image_url": "stub:///models/model-abc12345/preview.png",
  "zones": [
    {
      "zone_name": "Open Space",
      "zone_type": "open-space",
      "3d_object_url": "stub:///zones/open-space.glb",
      "texture_url": "stub:///textures/contemporary_open-space.png"
    }
  ],
  "brand_integration": {
    "primary_color_accent": "#1a73e8",
    "signage": "Brand logos and wayfinding (stub)"
  },
  "notes": "STUB provider — real 3D rendering deferred to Phase 5+. All URLs are placeholder (`stub:///`)."
}

Testing

# Run all tests
pytest test_archviz.py -v

# Test categories:
# - Model generation (all styles, with/without brand colors)
# - Perspective rendering (all angles, custom heights)
# - Model export (all formats)
# - Stub markers (all URLs should contain "stub:///")
# - Integration workflow (floorplan → model → render → export)
# - Error handling (missing parameters)

Architecture Decisions

  1. Stub over mock: Placeholder URLs clearly indicate test/placeholder state

  2. Full metadata: Each response includes real metadata (dimensions, materials, etc.)

  3. No 3D libs: Deliberately not using Three.js, Babylon, or Blender to avoid false impression of real rendering

  4. Type-safe: All inputs/outputs validated and documented

  5. Async-ready: All tools are async for scaling in production

Phase 3 Integration

Works alongside:

  • mcp-interior — Interior redesign of existing spaces

  • mcp-floorplans — Space layout calculation (provides input)

  • WorkspaceAgent — Orchestrates all three services

References

License

Proprietary — Virtus Agents

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Converts spoken descriptions into standards-compliant floor plans and furnished 3D models, enabling real-time collaborative editing through a live browser editor with Claude AI.
    18 npm
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to create and edit 3D floor plans conversationally, describing rooms and layouts or uploading DWG/PDF drawings, then view them in 2D/3D via a live link.
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to automate 2D architectural drafting and CAD file management, including DXF/DWG parsing, SVG/PNG/PDF rendering, wall extrusion to 3D STL meshes, room and beam analysis, block/script library access, and persistent depot storage via a REST API and MCP tools.
    18
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI-driven interior, exterior, and landscape design, photoreal rendering, image editing, video generation, and 3D model creation directly inside Claude, Cursor, VS Code, and other MCP clients. It also supports virtual staging, sketching to render, texture and pattern generation, background removal, and architectural consultation through natural language.
    24
    824 npm
    MIT