Skip to content
docs
UseBuildChangelog
Open Lumin
All tools

Advanced techniques

Ayanamsa Frame Spread (what the choice of ayanamsa actually changes)

get_frame_spread

Builds the SAME chart under every ayanamsa the engine implements and reports exactly which positions change lord and which hold. Use it instead of a birth-time disclaimer: the KP and Chitrapaksha frames (kp, kp_new, khullar, lahiri, true_chitra) disagree by a fixed ~5 arcminutes, so among them the set of positions that actually move is small and nameable; Raman's zero point sits about 1 degree 27 arcminutes below Lahiri, roughly one whole sub, so with raman in the comparison most cusps move, and 'spreadByFamily' shows which frame makes the spread large. Returns per cusp and per planet the levels that move (sign / star / sub / subSub) with the lord each frame gives, the base lords always, a 'summary' with 'frameIndependentAtSub' (true for about a third of charts across the five KP and Chitrapaksha frames, which is a stronger statement than any caveat, and for none once raman is included), the dasha balance spread in days (a fixed offset carried to every later period boundary, and a flag when the frames disagree on the birth mahadasha lord outright), and 'birthTimeEquivalence': how much clock-time error each position's frame spread is worth. That last block is the reframe. On the Ascendant the five KP and Chitrapaksha frames are worth well under a minute of birth time, so the frame is noise there, and raman several minutes; on the slow planets it is worth hours or days, so the frame is the entire uncertainty and no birth-time precision can settle it. Nothing here is scored, ranked or averaged, and no frame is preferred: a position either changes lord or it does not. All six frames are computed, 'true_chitra' from Spica's apparent place and 'raman' from Raman's own zero point, so none carries an 'aliasOf'.

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.
framesunknownNono description
include_subsubunknownNono description
include_dashaunknownNoReport the dasha balance spread per frame. Default true.

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