Event timing
Ruling Planets at a Moment
get_ruling_planets
Compute the Ruling Planets (RP) for the moment in the birth fields: the birth moment by default, which is the set used to rectify a birth time, or any judgement moment you pass there instead (for 'now', call 'get_ruling_planets_at_judgement', which takes the clock itself, rather than typing the time into a birth field). By default ('rp_variant: five-member-classic') the five are the weekday lord, the Moon's sign and star lords and the Ascendant's sign and star lords; 'seven-member-with-subs' adds the Ascendant and Moon sub lords. Returns '{ rulingPlanets: { weekdayLord, moonSignLord, moonStarLord, ascSignLord, ascStarLord, ranked[], variant, nodeRule, nodeAdjustments[], provenanceNote, ascSubLord?, moonSubLord? }, retrogradeScreen: { perPlanet[], variants[], variantsDisagree, nodeRule, note }, derived }'; 'ascSubLord' and 'moonSubLord' appear only on the seven-member variant. 'node_rule' decides how Rahu and Ketu join through a sign they occupy (the books substitute a node for the lord of a sign it holds alone). The corpus gives more than one RP list, so read 'variant' and 'provenanceNote' before quoting the set. In KP the dasha governs the event and the RPs select which of its significators fire at a moment; a planet absent from the RPs is a weaker candidate, not a veto on the dasha. **Not every RP is kept.** KSK, Reader 6 canon p.211: reject an RP 'deposited either in the constellation or sub of a retrograde planet'. 'retrogradeScreen' reports that screen in its three corpus forms side by side (Reader 6 star-or-sub; Beginners canon p.319 sub only; Astro Secrets canon p.969 ignore), with a retrograde RP in a direct star and sub kept and dated until it turns direct; 'ranked' is never trimmed. Rahu and Ketu are never retrograde in KP (Reader 6 canon p.114), so an RP in a node's star or sub is never a tempter. Half of all RP sets carry one under the Reader 6 form (50.7%, every 6 h through 2026, 'scripts/bp020-rp-tempters.ts'). Here the moment is whatever the birth fields hold, which through this server is the injected birth moment, the RECTIFICATION set; for the set KP times with, the moment the matter is judged, call get_ruling_planets_at_judgement.
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. |
| rp_variant | enum: five-member-classic | seven-member-with-subs | four-member-reader6 | No | Which RP list (default five-member-classic). seven-member-with-subs adds the Ascendant and Moon sub lords; four-member-reader6 drops the Ascendant star lord, as KSK's timing examples do (Reader 6 canon pp.138, 211). |
| node_rule | enum: books-substitute-when-alone | web-always-add | none | No | How Rahu and Ketu join the RPs (default books-substitute-when-alone). |
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_ruling_planets",
"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.