Skip to content
docs
UseBuildChangelog
Open Lumin
All tools

Advanced techniques

KP School Spread (KSK against Four Step, KCIL and Bosmia)

get_kp_school_spread

[KP and KP extended, side by side, no blend] For one event, KSK's verdict (the promise engine's, per primary cusp) beside the verdicts of three later KP schools, each computed by its own tool's module and never re-weighed: Four Step (Sunil Gondhalekar, the sub lord's star lord decides), KCIL (S.P. Khullar, star lord, sub lord and sub-sub lord), and Bosmia's 6-fold significators filtered by the 7-member Ruling Planets. Where a school's reading differs from KSK's, 'divergence' names THE RULE that makes it differ and the planets it reads against the one KSK reads, so the difference can be checked. Returns '{ event, requiredHouses, denialHouses, primaryHouses, ksk: { school, system, rule, cusps: [{ house, cuspalSubLord, verdict, reading, housesSignified, requiredCovered }] }, schools: [{ school, author, system, rule, cusps: [{ house, verdict, reading, differsFromKsk, lords[], divergence? }], eventLevel? }], differFromKsk[], readingMap, note }'. **No score, no average, no consensus and no count of agreeing schools**: KSK is the KP verdict, the others are successors, and where they differ report both with the rule, never a tally. Measured on 300 chart-events (60 charts, 5 events): Four Step differs from KSK on 66.0%, KCIL on 41.0%, Bosmia on 35.7% (lumin-engine tests/kp-extended/kp-school-spread.test.ts). For a blended figure, get_multi_system_verdict; beyond KP, get_paradigm_panel.

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.
eventevent nameNoEvent to read (default: Marriage).

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