Skip to content
docs
UseBuildChangelog
Open Lumin
All tools

Advanced techniques

Graha drishti (BPHS ch. 26): whole-sign aspects with sputa virupas [Parashari]

get_graha_drishti

Parashari, not KP. Graha drishti of Brihat Parashara Hora Shastra ch. 26 (Santhanam; ch. 28 in Sharma), whole sign, with houses counted from the lagna's sign and never read off the Placidus chart. Three layers, each with its own 'sources' class: (1) the FULL aspects by sign, every planet the 7th, Mars the 4th and 8th, Jupiter the 5th and 9th, Saturn the 3rd and 10th (classical); (2) the PARTIAL aspects by sign, a quarter on the 3rd and 10th, a half on the 5th and 9th, three quarters on the 4th and 8th (derived: the degree scale read at whole-sign offsets, because no sign-level verse is on disk); (3) the SPUTA VIRUPAS of each pair by degree, 0 to 60: the general scale (26.6-8), BPHS 26.9-12 for Mars, Jupiter and Saturn with Jupiter's 4th/8th-sign term per the Sanskrit ('withSpecialVirupas', 'twice') and per both English translations ('withSpecialEnglishVirupas', 'once'), 'jupiterTermDisputed' marking a pair where they differ. Returns 'planets' (the signs and whole-sign houses each of the seven aspects, with grade), 'pairs' (all 63 from the seven onto the other eight bodies and the lagna degree, zeros included), 'houses' (per whole-sign house, which planets aspect it fully and partially), 'mutualFullAspects', and the nodes: whether Rahu and Ketu cast graha drishti is reported as FIVE stated readings, defined once in 'nodeReadings' with its method note, where each is held, its class and what contradicts it (F175, Q043): the 7th only (derived, the 'all planets' rule applied to the nodes), none (modern; BPHS 9.11 gives Rahu a drishti), both nodes 5/7/9 (modern), Rahu full on 5/7/9/12 with half on 2/10 and quarter on 3/6 (later, the Khemraj BPHS 51.26; Uttara Kalamrita 2.18 denies the 12th; Ketu not stated), and Rahu 5/7/9 with Ketu 3/7/10 (the Ketu half unsourced); laid out per node in 'nodes', none folded into the seven; the nodes receive aspects in 'pairs' and cast no virupas. The sign grade and the virupas are one doctrine at two resolutions and can differ; both ship. The same sign rule the avasthas and the Sudarshana chakra use. Different from get_aspects_and_strength, which applies the offsets as exact degrees with an orb to Placidus cusps. No score. Gates no KP verdict. **'pairs' is paged**, in the engine's order and never cut inside a row; 'planets', 'houses', 'mutualFullAspects', 'nodeReadings', 'nodes', 'notes', 'sources' and 'methodSeams' repeat whole on every page, so the sign layer reads from page 1 and the virupas of every pair are reached by paging to the last page. Each of the three layers is also a tool of its own, named in 'methodSeams': 'get_graha_drishti_by_sign' (the sign layer), 'get_sputa_drishti' (the virupas of every pair) and 'get_node_drishti_spread' (the five node readings). Call those when a reading needs one layer; this tool returns all three in one call.

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.

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_graha_drishti",
    "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.