Methodology v2
Four Step Fruitful Ranking (Gondhalekar)
get_four_step_fruitful_ranking
[KP extended, Sunil Gondhalekar's Four Step Theory] KSK's fruitful significators (the significators of the event's houses that are also Ruling Planets of the moment of judgement, 'judgement_datetime', default now), reordered inside each level by the Four Step authority: the STAR LORD of each planet's SUB LORD, counting how many required houses it signifies. KSK stops at the sub lord, so this ordering is Gondhalekar's and not KSK's; get_fruitful_significators keeps KSK's own L1 to L4 order. Returns '{ school, author, system, divergencePoint, rule, event, requiredHouses, kskOrder[], fourStepOrder[], orderChanged, rows: [{ planet, level, kskPosition, subLord, subLordStarLord, subLordStarLordSignifies, requiredHousesReached, tiebreakScore, rankWithinLevel }], scoreProvenance, note, rpMoment, judgement, nodeRuleVariants }'. The count is a Lumin ordering convention ('scoreProvenance'), never a strength. Levels are never crossed. Quote it under Gondhalekar's name, beside KSK's order. The ranking orders the fruitful set selected with no node rule; 'nodeRuleVariants' states the other two node rules (Astrology for Beginners canon p.318, substitute when alone; KP Reader 6 canon p.132, add) with the fruitful set each selects, unranked (F166). 'judgement.holdsUntil' is the next instant those Ruling Planets change, solved and never a score: 'instant' in UTC, 'local' with the offset in force then only when 'judgement_time_zone' is sent, otherwise with the judgement's own offset (read 'utcOffsetSource'), and 'changes' naming the member (the Ascendant's or the Moon's sign or star lord, or the day lord at sunrise at the place) with its old and new lord. The fruitful set holds until that instant; say so when you quote it.
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. |
| judgement_datetime | string | No | The moment the matter is judged, local wall clock at the birth place unless judgement_latitude/longitude are given (e.g. 2026-09-27T12:00:00). Defaults to now. |
| judgement_latitude | number | No | Latitude of the place of judgement. Defaults to the birth latitude. |
| judgement_longitude | number | No | Longitude of the place of judgement. Defaults to the birth longitude. |
| judgement_utc_offset_minutes | number | No | UTC offset of the place of judgement in minutes. Defaults to the birth offset when the place defaults to the birth place. |
| judgement_time_zone | string | No | IANA time zone of the place of judgement (e.g. "Asia/Colombo"), instead of judgement_utc_offset_minutes: the offset in force there at judgement_datetime is read from the tz database. If both are given they must agree. |
| event | event name | No | Event whose fruitful significators to rank. If omitted, the engine derives the most active event and returns it in eventResolution. Ignored if house_group is provided. |
| house_group | array<house number (1-12)> | No | Override event lookup with explicit house numbers (1-12). |
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_four_step_fruitful_ranking",
"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.