Calls atmakaraka and ishta-devata endpoints sequentially and merges their payloads into top-level atmakaraka and ishta_devata objects for one BirthData.
SECTION: WHAT THIS TOOL COVERS
Returns the karaka layer: eight-karaka mapping, soul significator graha, navamsa-based ishta devata inference, twelfth-house occupants, and D9 positions map. It is not general prediction, medical timing, or matchmaking scoring. Two planets tied by degree use classical highest-longitude resolution without raising an error.
SECTION: WORKFLOW
BEFORE: RECOMMENDED — asterwise_get_natal_chart — understand chart basics before devotional pointers.
AFTER: None.
SECTION: INPUT CONTRACT
Wrapper returns { atmakaraka: <upstream dict>, ishta_devata: <upstream dict> } — not a flat data.* root; consumers must read nested .data fields inside each branch per upstream shape.
SECTION: OUTPUT CONTRACT
Top-level merge:
atmakaraka — upstream POST /v1/astro/atmakaraka body; use atmakaraka.data:
karaka_to_planet{} (eight karakas to planet names)
planet_to_karaka{}
atmakaraka (string)
atmakaraka_sign (string)
atmakaraka_nakshatra (string)
details{} — per karaka: planet, rashi, nakshatra, longitude
ishta_devata — upstream POST /v1/astro/ishta-devta body; use ishta_devata.data:
atmakaraka (string)
karakamsha_lagna (string)
karakamsha_lagna_index (int)
jivanmuktamsa_planet (string)
navamsa_lagna (string)
navamsa_lagna_index (int)
twelfth_house_sign (string)
twelfth_house_index (int)
planets_in_12th[] (string array)
ishta_devta_planet (string)
deity (string)
description (string)
method (string)
d9_positions{} — per planet: { sign (string), sign_num (int) }
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
SECTION: ERROR CONTRACT
INVALID_PARAMS (local — caught before upstream call):
None — BirthData validated via Pydantic only.
INVALID_PARAMS (upstream):
— None — upstream rejection surfaces as MCP INTERNAL_ERROR at the tool layer.
INTERNAL_ERROR:
— Any upstream API failure or timeout on either sequential call → MCP INTERNAL_ERROR
Edge cases:
— Identical-degree planets: classical tie-break applies; no error.
SECTION: DO NOT CONFUSE WITH
asterwise_get_natal_chart — general chart; does not compute ishta devata workflow.
asterwise_get_char_dasha — timing system using karakas, not deity discovery.
Connector