Skip to content
docs
UseBuildChangelog
Open Lumin
All tools

Event timing

Event Timing (v2)

find_event_timing_v2

Enhanced KP event timing: checks all 3 dasha levels (MD+AD+PD must jointly signify required houses), filters against Ruling Planets (fruitful significators only), integrates transit hierarchy for year/month/day narrowing. Use this instead of find_event_timing for precise, methodologically correct KP timing. Returns '{ event, isPromised, promise, fruitful[], candidatePeriods: [{ md, ad, pd, start, end, coverage, fruitful }], transitTiming, summary, pagination, pageNote }'. 'promise.coverageGrade' (full/strong/thin/none) is a GRADE: only 'none', the cuspal sub lord reaching no required house, denies (F057; this tool kept a 50% denial until 2026-09-11). 'promise.cslMotion' reports whether the cuspal sub lord is retrograde and, if so, the dates it turns direct and re-crosses its turning degree (F063); reported, gating nothing. **'candidatePeriods' is paged and ordered best first**, so page 1 holds the strongest windows; page on when the user's real-world constraint rules those out, since the 6th window is a real answer when the first five fall in the wrong year.

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 nameNoLife event to find timing for. If omitted, the engine derives the most active event from the running MD+AD lord's signification with Ruling Planets tie-break, and returns it in the eventResolution field. Ignored if house_group is provided.
house_grouparray<house number (1-12)>NoOverride event lookup with explicit house numbers (1-12). When provided, event is ignored.
denial_grouparray<house number (1-12)>NoHouses that DENY the event (e.g., [1,5,9] deny marriage). Only used with house_group. If unsure, omit. The engine derives denial houses automatically from the event name.

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": "find_event_timing_v2",
    "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.