Advanced techniques
Kalachakra Dasha, Parashara reading (BPHS ch. 46 vv. 52-130) [Vedic Parashari]
get_kalachakra_dasha
[Parashari, not KP] Kalachakra dasha in the reading where the Moon's pada row IS the nine mahadashas (Santhanam, Raman), the dasha Brihat Parashara Hora Shastra ranks above every other but Vimshottari. Returns the Moon's nakshatra pada, its chakra (savya or apsavya), the pada's nine-rasi row with Deha, Jiva and paramayu (100, 85, 83 or 86), the balance at birth measured all three ways vv. 90-93 give (kalas over 200, ghatikas over a nominal 15, ghatikas over the bhabhoga, the last declared as collapsing into kalas), and the dated schedule: each mahadasha with its nine antardashas (sub-sign years x mahadasha years / paramayu, from the mahadasha's own place in the row, wrapping; they sum to the mahadasha). 'balance_convention' is full-cycle by default, the fraction taken of the whole run, because that is the one reading under which BPHS 46.95's worked example (Krittika at 1s 4 deg 50', 3y 7m 24d of Capricorn) reproduces to the day; first-dasha takes it of the first dasha only, is attested, and is contradicted by that example. Every mahadasha change carries its gati (manduki, markati, simhavalokana, vv. 96-100) READ TWO WAYS, as the pairs the verse names and as the wheel junctions those pairs describe, because the pairs leave two apsavya leaps unnamed; both ship, neither is picked. 'dehaJiva' lists the planets in the Deha and Jiva rasis by sign (vv. 123-128) and emits no result. THE SCHEDULE STOPS AT THE END OF THE PADA'S RUN AND DOES NOT CROSS INTO THE NEXT: how it would is disputed four ways, so a query date past 'runEndsAt' returns 'beyond-the-run' with no dasha. That is common, not an edge case: measured over 200 charts ('lumin-engine/scripts/bp011-kalachakra-spread.ts') this schedule has already stopped at age 40 on 45.5% of charts, mean stopping age 46.2. The rows are read a second way by Raghavacharya (get_kalachakra_raghavacharya_dasha), and the method changes the mahadasha at a query date on 98.1% of (chart, age) pairs, so read get_kalachakra_spread before stating a Kalachakra date. Not a KP tool and never an input to a KP verdict. No effect is emitted. Edition stated (Santhanam 1984; Sharma numbers this ch. 48).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| birth_datetime | string | Yes | Birth date and time in ISO 8601 format (e.g., "1990-05-15T14:30:00"). |
| latitude | number | Yes | Birth location latitude. Range: -90 to 90. |
| longitude | number | Yes | Birth location longitude. Range: -180 to 180. |
| utc_offset_minutes | number | Yes | UTC offset in minutes (e.g., 330 for IST, -300 for EST). |
| ayanamsa | enum: kp | kp_new | lahiri | raman | true_chitra | khullar | No | Ayanamsa system. Defaults to kp. |
| balance_convention | enum: full-cycle | first-dasha | No | full-cycle (default): the balance fraction is of the whole nine-sign run, the reading BPHS 46.95's worked example reproduces under. first-dasha: the fraction is of the first dasha alone, attested and contradicted by that example. |
| query_date | string | No | ISO date to mark the running mahadasha and antardasha (default: now). Send a zone (Z, or +hh:mm as in 2026-10-20T10:30:00+05:30). A value without a zone is read as UTC, never as local time, and a date alone is midnight UTC. This is a different moment from judgement_datetime, which is a local wall clock sent with its own offset. |
Example call
Send the request as a standard MCP tools/call:
POST https://mcp.lumin.guru/mcp
Authorization: Bearer mcp_yourkey...
Accept: application/json, text/event-stream
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_kalachakra_dasha",
"arguments": {
"birth_datetime": "1992-08-14T04:32:00",
"latitude": 6.927,
"longitude": 79.861,
"utc_offset_minutes": 330,
"ayanamsa": "kp"
}
}
}Birth data
This tool requires birth data on every call. The MCP server is stateless, so calling set_birth_profile first validates the data and returns the reading plan, but it does not store anything. Repeat the same five fields here.