Advanced techniques
Kalachakra Method Spread (which dates move between readings) [Vedic Parashari]
get_kalachakra_spread
[Parashari, not KP] The sibling of get_frame_spread for the Kalachakra METHOD rather than the ayanamsa. Runs all three stated methods on one chart at one date: the Parashara reading with the whole-run balance (classical, BPHS 46.95's example reproduces under it), the Parashara reading with the first-dasha balance (disputed), and Raghavacharya's rows-as-antardashas reading (later). Returns each method's mahadasha at birth with its balance, its mahadasha and antardasha at 'query_date' (or 'before-birth' / 'beyond-the-run'), and the date its schedule stops, plus 'moves' naming which of those four conclusions change between methods and 'holding' naming the ones that do not. 'fractionMethodSpread' adds the balance axis: whether kalas and nominal ghatikas disagree about the dasha at birth. Measured over 200 charts at ages 10 to 70 ('lumin-engine/scripts/bp011-kalachakra-spread.ts'): the mahadasha at birth moves on 94.0% of charts and the mahadasha at a query date on 98.1% of (chart, age) pairs, 97.3% even where all three schedules are still running; the fraction method moves the dasha at birth on only 6.0%. So a Kalachakra date is a statement under a named method and almost never a property of the chart; say which method, or say that they disagree. NOTHING IS SCORED, RANKED, AVERAGED OR VOTED ON and there is no best method. Not a KP tool.
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. |
| query_date | string | No | ISO date to compare the three methods at (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_spread",
"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.