Ashtakoota Compatibility
asterwise_get_compatibility
Scores North Indian Ashtakoota (36-point Guna Milan) for two charts and returns koota breakdown, dosha flags, classical vetoes, mangal cross-check, and narrative guidance.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
person1 | object | yes | Birth data for a single person. Fields: date, time, lat, lon*, person_name, timezone, ayanamsa |
person2 | object | yes | Birth data for a single person. Fields: date, time, lat, lon*, person_name, timezone, ayanamsa |
response_format | enum: markdown, json | no |
What it covers
Implements classical Ashtakoota with eight weighted kootas (Varna through Nadi), dosha booleans and cancellations, Rajju/Vedha veto objects, supplementary Mahendra and Stree Deergha checks, mangal compatibility, and a structured narrative. It is not Dashakoot (asterwise_get_dashakoot), Tamil Porutham (asterwise_get_porutham), or twelve-koota Thirumana (asterwise_get_thirumana_porutham).
Workflow
BEFORE: RECOMMENDED — asterwise_get_natal_chart per person — understand charts before interpreting scores.
AFTER: asterwise_get_papasamyam — optional malefic balance overlay.
Input
Two BirthData objects follow the global contract (unknown midnight time accepted without flag). All scoring is computed upstream from those payloads.
Output contract
data.total_score (float — out of 36)
data.breakdown{} — keys Varna, Vashya, Tara, Yoni, GrahaMaitri, Gana, Bhakoot, Nadi — each value float score
data.compatibility_level (string — e.g. 'Average', 'Good')
data.doshas{}:
varna_dosha (bool)
bhakoot_dosha (bool)
nadi_dosha (bool)
bhakoot_dosha_type (string or null)
data.dosha_cancellations{}:
varna_dosha_cancelled (bool)
bhakoot_dosha_cancelled (bool)
nadi_dosha_cancelled (bool)
data.analysis:
major_doshas (string or object per upstream)
cancelled_doshas (string or object per upstream)
recommendation (string)
data.classical_vetoes:
has_veto (bool)
vedha — { present (bool), description (string) }
rajju — { present (bool), description (string), rajju_type (string — 'Siro', 'Kantha', 'Udara', 'Kati', or 'Pada') }
veto_note (string)
data.mangal_compatibility:
person_a_manglik (bool)
person_a_severity (string or value per upstream)
person_b_manglik (bool)
person_b_severity (string or value per upstream)
match_status (string)
description (string)
data.supplementary_checks:
mahendra — { is_auspicious (bool), distance (int), description (string) }
stree_deergha — { distance (int), quality (string), is_favorable (bool), description (string) }
data.compatibility_narrative:
overall (string)
strengths[] (string array)
concerns[] — each { veto_type, severity, description, nakshatra_pair or body_part }
recommendation (string)
data.birth_time_provided (bool)
Response format
response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data — no fields are added, removed, or filtered by either mode.
Compute class
MEDIUM_COMPUTE
Errors
INVALID_PARAMS (local — caught before upstream call):
None — all validation is upstream.
INVALID_PARAMS (upstream):
— None — malformed birth payloads surface as MCP INTERNAL_ERROR at the tool layer.
INTERNAL_ERROR:
— Any upstream API failure or timeout → MCP INTERNAL_ERROR
Edge cases:
— Rajju and Vedha conditions may be present alongside high scores — read classical_vetoes before conclusions.
Do not confuse with
asterwise_get_dashakoot — ten-point South Indian extension, not 36-point Ashtakoota.
asterwise_get_porutham — Tamil ten-porutham pass/fail grid, different schema.
Connect
Remote MCP endpoint: https://mcp.asterwise.com/mcp. Authenticate with Authorization: Bearer <API key> or OAuth. See the MCP setup guide.