mcp-archviz

mcp-archviz

Provides 3D architecture visualization from floorplan layouts, with tools for generating 3D models, rendering perspectives, and exporting models. Currently uses a stub provider with placeholder URLs.

Category
Visit Server

README

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

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

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured