mcp-floorplans
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-floorplans
Workspace floorplan generation MCP server with deterministic space layout calculation.
Status: Phase 4 MVP — Deterministic space layout engine (no external APIs)
Features
Deterministic space layout calculation — No API dependencies, pure Python logic
3 layout variants per brief — Balanced, Collaboration-heavy, Focus-intensive
Detailed metrics — Workstations, meeting rooms, collaboration %, window distances
Zone adjacency analysis — Functional recommendations for zone placement
Space brief validation — Feasibility checking with recommendations
Related MCP server: Skopia
Architecture
space_calculator.py
├─ SpaceCalculator class — Core calculation engine
├─ Zone, LayoutVariant, SpaceMetrics dataclasses
└─ generate_space_layouts_json() — Main entry point
server.py
├─ MCP server with 3 tools
├─ generate_space_layouts — Layout generation
├─ analyze_zone_adjacencies — Adjacency rules
└─ validate_space_brief — Feasibility validation
test_space_calculator.py
└─ 15+ unit tests, 100% deterministicQuick Start
# Install dependencies
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run tests
pytest test_space_calculator.py -v
# Start MCP server (stdio mode for Claude)
python server.pyMCP Tools
generate_space_layouts
Generate 3 workspace layout variants from brief.
Input:
{
"surface_sqm": 200,
"headcount": 20,
"zone_types": ["open-space", "meeting", "quiet-zone"],
"collaboration_style": "medium_collab",
"project_id": "test-proj-1"
}Output: JSON with 3 layout variants, each containing:
Zones with dimensions and occupancy
Metrics (workstations, meeting rooms, collaboration %, window distances)
Stub floorplan URL (stub:///floorplans/...)
Design notes
analyze_zone_adjacencies
Get functional adjacency recommendations for zone types.
Input:
{
"zone_types": ["open-space", "meeting", "quiet-zone"]
}validate_space_brief
Check feasibility and get recommendations.
Input:
{
"surface_sqm": 200,
"headcount": 20,
"zone_types": ["open-space", "meeting"]
}Calculation Logic
Space Sizing
Standard guidelines per zone type:
Open-space: 5–8.5 sqm per workstation (hotdesking to dedicated)
Quiet-zone: 4 sqm per person
Meeting: 2.5 sqm per person
Phone-booth: 2 sqm per booth (1 person)
Break-room: 1 sqm per person
Collaboration Percentages
high_collab: 40% meeting + break + phone zones
medium_collab: 30%
low_collab: 20%
Circulation
15% of total area reserved for corridors, stairs, etc.
Metrics Provided
For each variant:
total_sqm— Total workspace areaworkstations— Number of workstationsmeeting_rooms— Number of dedicated meeting roomsphone_booths— Number of private call boothsquiet_zones— Number of focus areasbreak_rooms— Number of break/social areascollaboration_zones_pct— % of space for collaborative workaverage_sqm_per_person— Density metricwindow_distance_avg— Average distance to windows (meters)natural_light_zones_pct— % of space with potential window access
Example Usage
from space_calculator import generate_space_layouts_json
# Generate layouts for 200 sqm, 20 people
json_output = generate_space_layouts_json(
surface_sqm=200,
headcount=20,
zone_types=["open-space", "meeting", "quiet-zone", "phone-booth", "break-room"],
project_id="my-project"
)
# Parse output
import json
data = json.loads(json_output)
# Access first variant
variant = data["variants"][0]
print(f"Variant: {variant['layout_name']}")
print(f"Workstations: {variant['metrics']['workstations']}")
print(f"Collaboration: {variant['metrics']['collaboration_zones_pct']}%")Testing
All calculation logic is deterministic and fully tested:
# Run all tests
pytest test_space_calculator.py -v
# Test categories:
# - Calculator initialization and configuration
# - Usable area calculation
# - Zone distribution across types
# - Metrics calculation accuracy
# - Variant generation (3 variants per brief)
# - JSON output format validation
# - Edge cases (small/large spaces)
# - Determinism (same input → same output)Phase 3 Integration (mcp-interior)
mcp-floorplans works alongside:
mcp-interior — Interior redesign of existing spaces (Decor8 API, stub provider)
mcp-archviz — 3D visualization of layouts (stub provider)
WorkspaceAgent — Orchestrates all three services
Phase 4 Status
✅ COMPLETED:
Space calculator implementation (deterministic, no API calls)
3 layout variants per brief
Metrics calculation
Zone adjacency analysis
Space brief validation
15+ unit tests (all passing)
Full test coverage of calculation logic
⏸️ DEFERRED (Phase 5+):
Real floorplan image generation (requires image service)
3D model generation (via mcp-archviz)
CAD export (SVG/DXF format)
Furniture library integration
Cost estimation (fit-out budgeting)
Architecture Decisions
Deterministic (no APIs): Core calculation is pure Python, testable, reproducible
Stub floorplans:
stub:///floorplans/...URLs indicate placeholder imagesDataclasses: Type-safe zone/layout/metrics models
No external services: Calculation doesn't depend on CasaAI, HWFC, Roomify, etc.
MCP standard tools: Integrates with Claude agents via MCP protocol
License
Proprietary — Virtus Agents
See Also
Phase 3: mcp-interior
Phase 4: mcp-archviz
Orchestrator: WorkspaceAgent
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Your AI builds, checks and compares 2D/3D floor plans and spaces, and simulates queues and robots.
Floor plans as code: compile, lint and repair ArchLang (.arch) floor plans to SVG, DXF and PDF.
Draw buildings as DXF, IFC and 3D, plus exact French rent and charges calculations.
Design buildings as IFC4 BIM models from a brief: an AI architect that plans, builds and edits.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered computational design in Rhino/Grasshopper with ML-based automatic layout optimization, component clustering, performance prediction, and real-time code execution in running Rhino instances.18MIT
- FlicenseNot gradedqualityBmaintenanceFloor plans, elevations and sections for agents. Draw a room in real millimetres, place doors, windows and tables, validate with typed errors, render deterministic SVG. Free key, no approval.-
- AlicenseNot gradedqualityBmaintenanceEnables 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.18MIT
- AlicenseAqualityAmaintenanceFloor plans as code. Your AI writes ArchLang; the compiler draws a precise, dimensioned plan and tells it what's wrong.111,752 npm34MIT