Advanced techniques
Upagrahas: Gulika/Mandi, the kaala velas, and the Dhuma group (BPHS ch. 3)
get_upagrahas
Parashari, not KP. The sub-planets of Brihat Parashara Hora Shastra ch. 3, each with its verses. The Dhuma group (vv. 61-64) is arithmetic on the natal Sun: Dhuma = Sun + 4 signs 13°20′, Vyatipata = 12 signs − Dhuma, Parivesha = Vyatipata + 6 signs, Indrachapa = 12 signs − Parivesha, Upaketu = Indrachapa + 16°40′; the text supplies its own check (Upaketu + one sign = the Sun) and it is returned as 'dhumaGroupResidual'. The kaala velas (vv. 66-70) divide the day (sunrise to sunset) or night (sunset to next sunrise) into eight parts lorded from the weekday lord by day and the fifth weekday's lord by night, the eighth lordless: Saturn's part is Gulika, the Sun's Kaala, Mars' Mrityu, Jupiter's Yamaghantaka, Mercury's Ardhaprahara. v. 70 gives Gulika's LONGITUDE as the Ascendant rising at the start of its portion; the other four are given the same rule by extension and say so. Gulika is also called Mandi; the later mid-portion reading is reported beside the BPHS point and labelled as not in the text, so a caller comparing against software can see why they differ. Every point carries whole-sign and Sripati houses. Edition stated (Santhanam 1984). Gates no KP verdict; the engine already computes Gulika as a TIME WINDOW in the panchang, and this is the POSITION.
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. |
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_upagrahas",
"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.