AbhayVarkad

Vastu Compliance MCP Server

Community AbhayVarkad
Updated

Vastu Compliance MCP Server

Production-oriented MCP server built with FastAPI for Autodesk workflows (Forma/Revit/APS), deterministic Vastu compliance checks, explainable recommendations, and structured JSON reporting.

Highlights

  • FastAPI + OpenAPI-ready service
  • MCP endpoints for tool initialization and execution
  • Autodesk Platform Services integration layer (OAuth + metadata fetch)
  • Geometry extraction and room/wall/door/window classification pipeline
  • Directional zoning engine (8-zone compass mapping)
  • Deterministic YAML/JSON Vastu rules engine
  • Revit 3D footprint projection pipeline for compliance checks
  • AutoCAD layout (DWG) entity projection pipeline for compliance checks
  • Vedic/Puran knowledge ingestion and recommendation references
  • Explainable recommendation layer (AI explanations only, no rule mutation)
  • Compliance scoring + severity + confidence outputs
  • Geometry validation and visualization overlays/heatmap payloads
  • Plugin architecture for pre/post evaluation hooks
  • Structured logging + request IDs + Prometheus metrics
  • Async-by-default service and test-friendly module boundaries
  • Docker and docker-compose support

Project Structure

app/
  api/
    deps.py
    routes/
      autodesk.py
      compliance.py
      mcp.py
  core/
    config.py
    logging.py
  mcp/
    server.py
  models/
    schemas.py
  plugins/
    audit_plugin.py
    base.py
    manager.py
  services/
    ai/explainer.py
    autodesk/client.py
    context/context_manager.py
    direction/engine.py
    geometry/engine.py
    knowledge/vedic_knowledge.py
    rules/engine.py
    scoring/compliance.py
    validation/geometry_validator.py
    visualization/overlay.py
    compliance_pipeline.py
  main.py
config/
  vastu_rules.yaml
  vedic_knowledge.yaml
tests/
  test_vastu_pipeline.py
revit-plugin/
  VastuRevitPlugin/
    App.cs
    Commands/AnalyzeVastuCommand.cs
    Services/RevitModelExtractor.cs
    Services/VastuApiClient.cs
    deploy/VastuRevitPlugin.addin
autocad-plugin/
  VastuAutoCADPlugin/
    Commands/VastuCommands.cs
    Services/AutocadLayoutExtractor.cs
    Services/VastuApiClient.cs
    deploy/PackageContents.xml
Dockerfile
docker-compose.yml
requirements.txt

Run Locally

  1. Create .env from .env.example
  2. Install dependencies:
    • pip install -r requirements.txt
  3. Run:
    • uvicorn app.main:app --reload

Open docs:

Run in Visual Studio Code

  1. Open folder Vastu Compilance MCP in VS Code.
  2. Create/select Python interpreter:
    • Ctrl + Shift + P -> Python: Select Interpreter
  3. Create .env from .env.example.
  4. Install dependencies in VS Code terminal:
    • python -m pip install -r requirements.txt
  5. Run backend:
    • python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
  6. Open Swagger:

Optional VS Code debug config (.vscode/launch.json):

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "FastAPI (uvicorn)",
      "type": "python",
      "request": "launch",
      "module": "uvicorn",
      "args": ["app.main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"],
      "jinja": true
    }
  ]
}

MCP Endpoints

  • POST /mcp/initialize
  • GET /mcp/tools
  • POST /mcp/tools/call
  • POST /api/v1/compliance/analyze/revit3d
  • POST /api/v1/compliance/analyze/autocad
  • POST /api/v1/compliance/knowledge/ingest

Example MCP Tool Call

POST /mcp/tools/call

{
  "tool": "analyze_vastu_compliance",
  "arguments": {
    "payload": {
      "source": "direct_json",
      "true_north_degrees": 0,
      "elements": [
        {
          "id": "room-1",
          "name": "Kitchen",
          "element_type": "room",
          "polygon": [
            {"x": 0, "y": 0},
            {"x": 10, "y": 0},
            {"x": 10, "y": 10},
            {"x": 0, "y": 10}
          ],
          "metadata": {"room_type": "kitchen"}
        }
      ]
    },
    "context": {
      "client": "autodesk-forma",
      "project_id": "proj-01"
    }
  }
}

Example Revit 3D Compliance Request

POST /api/v1/compliance/analyze/revit3d

{
  "payload": {
    "source": "revit_3d",
    "true_north_degrees": 12,
    "elements": [
      {
        "id": "room-3d-1",
        "name": "Kitchen",
        "element_type": "room",
        "bounding_box": {
          "min": {"x": 0, "y": 0, "z": 0},
          "max": {"x": 12, "y": 8, "z": 3}
        },
        "metadata": {"room_type": "kitchen"}
      }
    ]
  },
  "context": {"client": "revit-plugin"}
}

Example AutoCAD Layout Compliance Request

POST /api/v1/compliance/analyze/autocad

{
  "payload": {
    "source": "autocad_layout_2d",
    "true_north_degrees": 0,
    "layout_name": "Ground Floor",
    "entities": [
      {
        "id": "room-1",
        "name": "Kitchen",
        "entity_type": "room",
        "points": [
          {"x": 0, "y": 0},
          {"x": 8, "y": 0},
          {"x": 8, "y": 6},
          {"x": 0, "y": 6}
        ],
        "metadata": {"room_type": "kitchen", "layer": "ROOM_KITCHEN"}
      }
    ]
  },
  "context": {"client": "autocad-plugin"}
}

Example Vedic Knowledge Ingestion

POST /api/v1/compliance/knowledge/ingest

{
  "entries": [
    {
      "source": "Skanda Purana",
      "principle": "Kitchen placement",
      "room_types": ["kitchen"],
      "preferred_zones": ["south_east"],
      "avoid_zones": ["north_east"],
      "guidance": "Cooking spaces are traditionally aligned with south-east."
    }
  ]
}

Docker

  • Build and run: docker compose up --build

Revit Plugin

A Revit add-in scaffold is available in revit-plugin/ to call this server directly from Revit.See revit-plugin/README.md for build and install steps.

Revit add-in quick steps

  1. Open revit-plugin/VastuRevitPlugin/VastuRevitPlugin.csproj in Visual Studio.
  2. Confirm REVIT_API_DIR path in .csproj.
  3. Build Release.
  4. Copy VastuRevitPlugin.dll to a permanent path.
  5. Copy revit-plugin/VastuRevitPlugin/deploy/VastuRevitPlugin.addin to:
    • %AppData%\Autodesk\Revit\Addins\2025\
  6. Edit .addin <Assembly> path to built DLL.
  7. Start Revit and click:
    • Vastu Compliance -> Analyze Vastu

AutoCAD Plugin

An AutoCAD .NET plugin scaffold is available in autocad-plugin/ with VASTUANALYZE command support.See autocad-plugin/README.md for build and install steps.

AutoCAD add-in quick steps

  1. Open autocad-plugin/VastuAutoCADPlugin/VastuAutoCADPlugin.csproj in Visual Studio.
  2. Confirm AUTOCAD_API_DIR path in .csproj.
  3. Build Release.
  4. In AutoCAD run command:
    • NETLOAD
  5. Select VastuAutoCADPlugin.dll.
  6. Run command:
    • VASTUANALYZE

Autodesk coding standard alignment

Current plugin/backend code follows these practical Autodesk extension conventions:

  • .NET add-ins use explicit command entry points (IExternalCommand / CommandMethod).
  • API interaction is isolated in dedicated client service classes.
  • Model extraction and transport DTOs are separated for testability.
  • Read-only operations are used for model extraction in Revit and AutoCAD.
  • Failures are surfaced to host UI (TaskDialog / command line) with non-crashing behavior.

Security Notes

  • APS credentials are loaded from environment variables only.
  • Rule evaluation is deterministic and side-effect free.
  • AI layer only generates explanations/recommendations for deterministic outcomes.

MCP Server · Populars

MCP Server · New

    WJZ-P

    Douyin Upload MCP Skill

    MCP Server

    Community WJZ-P
    pwno-io

    pwno-mcp

    MCP for Pwn

    Community pwno-io
    antoinebou12

    UML-MCP: Diagram Generation via MCP

    UML-MCP Server is a UML diagram generation tool based on MCP (Model Context Protocol), which can help users generate various types of UML diagrams through natural language description or directly writing PlantUML and Mermaid and Kroki https://uml-mcp.vercel.app/docs

    Community antoinebou12
    JeremyVyska

    BC Code Intelligence MCP Server

    BC Code Intelligence MCP Server - Persona-driven workflow orchestration for Business Central development. Provides 16+ MCP tools, layered knowledge system, and intelligent BC pattern analysis through Model Context Protocol.

    Community JeremyVyska
    noimank

    FNewsCrawler (该项目已放弃维护)

    一个专门为大模型设计的财经信息MCP(Model Context Protocol)服务,通过高效的爬虫技术从各大财经网站(同花顺、东方财富等)获取实时资讯,为AI模型提供准确、及时的财经数据支持。

    Community noimank