Advanced techniques
Varshaphala, Tajik Solar Return [Vedic / Tajik]
get_varshaphala_chart
[Tajik annual chart adjunct] Solar return chart cast for the moment Sun returns to its natal sidereal degree in the target year. Returns Sun-return datetime, chart lagna at that moment, Muntha sign (advances 1 sign per year of life), Muntha house from chart lagna, all planet positions at sun-return, and 'sahams': the fifteen Tajik sahams cast on THIS annual chart, their native frame, with the same per-entry provenance get_sahams carries. **THE YEAR LORD CAN BE NULL, and null is an answer rather than an error.** Since 2026-09-14 'yearLord' follows the stated rule: all five Panchadhikari are resolved (natal lagna lord, annual lagna lord, Muntha-pati, dina-ratri-pati, tri-rashi-pati) and each is tested for a Tajik aspect to the annual ascendant. Read 'varshesha' for all five with their derivations and aspect notes, and 'varshesha.basis': ASPECT_TEST (exactly one aspects, so the gate decides alone), STRENGTH_TIE_BREAK (several aspect and the greatest panchavargeeya bala separates them), MUNTHA_PATI (none aspects, the classical fallback), or UNDECIDED (an exact tie in strength between two that both aspect, for which the rule states no third test). Measured over 200 charts the first three bases cover 100% of them, the strength deciding the 35.5% that were null before 2026-09-14; UNDECIDED did not fire once and survives as a branch. **THE GATE'S ORB IS A READING NO SOURCE NAMES** (F146): 'candidates' test each planet against its own full deeptamsa (unsourced), and 'varshesha.gateVariants' gives the year lord under half that orb (derived from the pair rule) and under the sign aspect alone (Narasimha Rao's worked example, modern), with 'gateDecidesYearLord'; over 200 annual charts the sign-only gate names a different year lord on 46% and half the orb on 25.5%. 'varshesha.narasimhaRaoChain' carries that manual's whole chain (benefic aspects first, his tri-rashi table, the dina-ratri-pati as fallback) as one labelled reading. **THE GATE COMES FIRST AND STRENGTH ONLY BREAKS TIES INSIDE IT**, never the reverse: in the source's own worked example the strongest planet on the chart is NOT the year lord, because it does not aspect the annual ascendant, so a strongest-planet shortcut gets it wrong. 'varshesha.strengths' carries every total that was compared, so the decision can be checked rather than taken. 'yearLordLagnaLordOnly' carries the figure this tool returned before, the annual lagna lord taken unconditionally, which agrees with the full rule on 23.0% of charts. **THE TRI-RASHI-PATI HAS THREE ATTESTED TABLES** (Gansten, HSSA 6, 2018): method A, the Graeco-Arabic triplicities (Karmaprakasa 1.21), is the candidate used; method B, the sign-by-sign table the modern manuals print (Karmaprakasa 1.22-23), is computed beside it in 'varshesha.triRashi' with the year lord it gives ('yearLordTriRashiMethodB', null when the two agree; they differ on about one year in eight); Balabhadra's method A2 is named and not computed. Used for annual subscription-reading products. Two blocks are also tools of their own, named in 'methodSeams': the year lord ('varshesha', 'yearLord', 'yearLordRationale', 'yearLordLagnaLordOnly') is 'get_varshesha', and 'sahams' is 'get_sahams' called with the same 'target_year'. Call those when a reading needs one claim; every block still ships here.
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. |
| target_year | number | No | Year for the solar return (default: current year). |
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_varshaphala_chart",
"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.