Computes Vimshottari Dasha from birth data and returns hierarchical period trees plus current Maha/Antar interpretation blocks.
SECTION: WHAT THIS TOOL COVERS
Computes the classical Parashari Vimshottari timeline from the Moon's birth nakshatra: Mahadasha and nested sub-periods up to the depth set by levels, with Julian and calendar boundaries and optional modern summaries. It returns data.periods[] and data.interpretation for the active periods. It does not compute Jaimini Char Dasha, Yogini Dasha, Ashtottari, or transit correlations; use the dedicated tools for those systems.
SECTION: WORKFLOW
BEFORE: RECOMMENDED — asterwise_get_natal_chart — establishes chart and Moon context before interpreting Dasha lords.
AFTER: asterwise_get_dasha_transits — correlates active Dasha lords with transits for the same birth data.
SECTION: INPUT CONTRACT
levels (int, default 3, max 5): tree depth — 1 = Mahadasha only; 2 adds Antardasha; 3 Pratyantar; 4 Sookshma; 5 Prana (much larger payload). Response dates in periods[] use DD/MM/YYYY, not ISO. BirthData fields follow global contract (date YYYY-MM-DD, time HH:MM; time='00:00' is accepted without flag — lagna-sensitive timing may be wrong if birth time is unknown).
SECTION: OUTPUT CONTRACT
data.periods[] — array of Mahadasha objects:
planet (string)
start_jd (float)
end_jd (float)
start_date (string — DD/MM/YYYY, not ISO)
end_date (string — DD/MM/YYYY)
modern_summary (string or null)
sub[] — array of Antardasha objects with the same shape; sub=null at deepest level
data.interpretation.current_mahadasha:
planet (string)
start_date (string)
end_date (string)
duration_years (float)
modern_summary (string or null)
favorable_conditions[] (string array)
favorable_results[] (string array)
unfavorable_conditions[] (string array)
unfavorable_results[] (string array)
timing_note (string)
data.interpretation.current_antardasha — same fields as current_mahadasha plus mahadasha_planet (string)
data.birth_time_unknown (bool)
SECTION: 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.
SECTION: COMPUTE CLASS
MEDIUM_COMPUTE (~100ms at levels=1, ~1500ms at levels=5)
SECTION: ERROR CONTRACT
INVALID_PARAMS (local — caught before upstream call):
— levels < 1 or levels > 5 → MCP INVALID_PARAMS
INVALID_PARAMS (upstream):
— None — BirthData validation is upstream beyond Pydantic field constraints.
INTERNAL_ERROR:
— Any upstream API failure or timeout → MCP INTERNAL_ERROR
Edge cases:
— Period start_date/end_date strings are DD/MM/YYYY; do not parse as ISO.
SECTION: DO NOT CONFUSE WITH
asterwise_get_char_dasha — Jaimini sign-based periods with ISO dates on periods[], not planet-based Vimshottari.
asterwise_get_yogini_dasha — 36-year eight-Yogini cycle with data.periods.root[], not Vimshottari.
asterwise_get_ashtottari_dasha — 108-year alternative tree with data.periods.root[] and same levels semantics as this tool.
Connector