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
访问服务器

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选