Vastu Compliance MCP Server
An MCP server for checking architectural designs against Vastu principles, integrating with Autodesk tools to provide deterministic compliance scoring and explainable recommendations.
README
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
- Create
.envfrom.env.example - Install dependencies:
pip install -r requirements.txt
- Run:
uvicorn app.main:app --reload
Open docs:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Metrics: http://localhost:8000/metrics
Run in Visual Studio Code
- Open folder
Vastu Compilance MCPin VS Code. - Create/select Python interpreter:
Ctrl + Shift + P->Python: Select Interpreter
- Create
.envfrom.env.example. - Install dependencies in VS Code terminal:
python -m pip install -r requirements.txt
- Run backend:
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
- 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/initializeGET /mcp/toolsPOST /mcp/tools/callPOST /api/v1/compliance/analyze/revit3dPOST /api/v1/compliance/analyze/autocadPOST /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
- Open
revit-plugin/VastuRevitPlugin/VastuRevitPlugin.csprojin Visual Studio. - Confirm
REVIT_API_DIRpath in.csproj. - Build
Release. - Copy
VastuRevitPlugin.dllto a permanent path. - Copy
revit-plugin/VastuRevitPlugin/deploy/VastuRevitPlugin.addinto:%AppData%\Autodesk\Revit\Addins\2025\
- Edit
.addin<Assembly>path to built DLL. - 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
- Open
autocad-plugin/VastuAutoCADPlugin/VastuAutoCADPlugin.csprojin Visual Studio. - Confirm
AUTOCAD_API_DIRpath in.csproj. - Build
Release. - In AutoCAD run command:
NETLOAD
- Select
VastuAutoCADPlugin.dll. - 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.
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.