Skip to main content
Glama

Vastu Shastra MCP Server by RoxyAPI

Check room placement - Vastu room direction compliance API

post_vastu_rooms
Read-only

Vastu room direction check for a whole floor plan: send the plot and a list of rooms, by quarter or by outline, and the API returns a verdict per room with the quarters it belongs in, the quarters to keep it out of, a remedy when it is misplaced, and a composite score with the weights published. Four of the twelve room types carry a chapter and verse and the other eight are labelled convention, so a report can say which half of it is classical. Built for floor plan tools, listing checks and practitioner reports.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.en
plotYesThe ground the mandala is projected over. Send width and depth for a compass-aligned rectangle, or polygon for anything else. The x axis runs east and the y axis north, and the mandala is aligned to the compass rather than to the building.
roomsYesThe rooms to check, 1 to 24 of them. Each carries a type and either the quarter it sits in or its outline.
facingNoDirection the front of the house looks out toward, one of the eight compass sectors. Case and punctuation are folded, so north-east, northeast and NorthEast all resolve. Send this or facingDegrees, never both.
compactNoSet true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.
facingDegreesNoDirection the front of the house looks out toward, as a compass bearing in degrees clockwise from true north, measured looking OUT from the building. The same convention the feng shui facing endpoints use, so a bearing works unchanged across the two domains. Send this or facing, never both.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
roomsYes
scoreYes
facingYes
scoringYes
sourcesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / plot / example
      Added value: +{
      +  "depth": 40,
      +  "unit": "feet",
      +  "width": 30
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "facing": {
      +      "type": "string"
      +    },
      +    "rooms": {
      +      "items": {
      +        "properties": {
      +          "avoidDirections": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "idealDirections": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "reading": {
      +            "type": "string"
      +          },
      +          "remedy": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "properties": {
      +              "basis": {
      +                "type": "string"
      +              },
      +              "chapter": {
      +                "type": "number"
      +              },
      +              "publicDomain": {
      +                "type": "boolean"
      +              },
      +              "text": {
      +                "type": "string"
      +              },
      +              "translation": {
      +                "type": "string"
      +              },
      +              "verse": {
      +                "type": "string"
      +              },
      +              "year": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "text"
      +            ],
      +            "type": "object"
      +          },
      +          "type": {
      +            "type": "string"
      +          },
      +          "verdict": {
      +            "type": "string"
      +          },
      +          "zone": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "zone",
      +          "verdict",
      +          "idealDirections",
      +          "avoidDirections",
      +          "reading",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "score": {
      +      "type": "number"
      +    },
      +    "scoring": {
      +      "properties": {
      +        "avoidPoints": {
      +          "type": "number"
      +        },
      +        "conventionWeight": {
      +          "type": "number"
      +        },
      +        "idealPoints": {
      +          "type": "number"
      +        },
      +        "neutralPoints": {
      +          "type": "number"
      +        },
      +        "sourcedWeight": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "sourcedWeight",
      +        "conventionWeight",
      +        "idealPoints",
      +        "neutralPoints",
      +        "avoidPoints"
      +      ],
      +      "type": "object"
      +    },
      +    "sources": {
      +      "items": {
      +        "properties": {
      +          "basis": {
      +            "type": "string"
      +          },
      +          "chapter": {
      +            "type": "number"
      +          },
      +          "publicDomain": {
      +            "type": "boolean"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "translation": {
      +            "type": "string"
      +          },
      +          "verse": {
      +            "type": "string"
      +          },
      +          "year": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "text"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "rooms",
      +    "score",
      +    "scoring",
      +    "facing",
      +    "sources"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral context about the response: the distinction between four classical room types with verse and eight convention-based, and the composite score with published weights. This goes beyond annotations and helps the agent set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph but every clause adds value: purpose, inputs, outputs, classical/convention nuance, and use cases. It front-loads the main purpose and stays concise given the tool's complexity. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to detail return formats. It covers the required inputs (plot and rooms), the response elements (verdict, quarters, remedy, score), and the unique classical/convention distinction. It is complete enough for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are well-documented in the schema. The description adds a high-level mention of 'by quarter or by outline' which maps to direction and polygon parameters, but it does not add parameter-specific details beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Vastu room direction check) on a specific resource (a whole floor plan), lists the inputs (plot and list of rooms) and the detailed outputs (verdict, quarters, remedy, composite score). It is distinct from sibling tools like post_vastu_entrance or get_vastu_directions by focusing on room placement compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is 'built for floor plan tools, listing checks and practitioner reports,' giving a usage context. However, it does not explicitly contrast with alternatives or state when not to use this tool versus siblings like post_vastu_entrance, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources