Skip to content
docs
UseBuildChangelog
Open Lumin
All tools

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

NameTypeRequiredDescription
birth_datetimestringYesBirth date and time in ISO 8601 format (e.g., "1990-05-15T14:30:00").
latitudenumberYesBirth location latitude. Range: -90 to 90.
longitudenumberYesBirth location longitude. Range: -180 to 180.
utc_offset_minutesnumberYesUTC offset in minutes (e.g., 330 for IST, -300 for EST).
ayanamsaenum: kp | kp_new | lahiri | raman | true_chitra | khullarNoAyanamsa system. Defaults to kp.
rp_variantenum: five-member-classic | seven-member-with-subs | four-member-reader6NoWhich 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_ruleenum: books-substitute-when-alone | web-always-add | noneNoHow Rahu and Ketu join the RPs (default books-substitute-when-alone).

Example call

Send the request as a standard MCP tools/call:

http
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.