Advanced techniques
Sudarshana varga modulation (BPHS 74.15-16): the count re-run on varga natures [Parashari]
get_sudarshana_varga_modulation
Parashari, not KP. BPHS ch. 74 vv. 15-16 (Santhanam; ch. 76 in Sharma): 'a natural benefic loses his benevolence if he is in more malefic vargas; similarly a natural malefic loses his malevolence if he is in more benefic vargas'. Each of the seven planets' varga signs is classed by the verse's grounds (own sign or exaltation auspicious, debilitation inauspicious, otherwise the sign lord's natural nature and naisargika enmity; a varga on grounds of both sides counts on neither, the engine's stated reading, 'classingSource', derived), tallied, and given a majority, under TWO readings, both returned, neither picked: 'shadvarga' (D1, D2, D3, D9, D12, D30, the six the printed line names, classical) and 'saptavarga' (adding D7, the seven the commentaries' worked examples count, later). Per reading, the Sudarshana chakra's vv. 10-14 count is re-run on all three rings with each planet's nature set by its majority, giving the composite and the ring bhavas whose verdict moved against the unmodulated count. Returns '{ applicable, applicabilityReason, origins, vargaModulation: { rule, planets: [{ planet, placements: [{ varga, sign, lord, grounds, side }], byReading: { shadvarga, saptavarga: { auspicious, inauspicious, both, majority } } }], notModulated: { planets, reason }, methodology, readings: { shadvarga, saptavarga: { vargas, source } }, source, byReading: { shadvarga, saptavarga: { composite: [{ bhava, verdicts: { lagna, moon, sun }, concordant }], concordantBhavas, changed: [{ ring, bhava, countVerdict, verdict }] } }, classingSource }, notApplied }'. The nodes are not modulated. The modulated counts are count verdicts: v. 13's tie-break is not re-run on them, and the commentaries' 'medium' grade is not computed ('notApplied'). THE GATE TRAVELS WITH IT: vv. 19-20, 'applicable' with its reason and the three ring 'origins'. Reads no date. No score. Gates no KP verdict. The same block 'get_sudarshana_chakra' returns as 'vargaModulation'.
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. |
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_sudarshana_varga_modulation",
"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.