Skip to main content

Gemstone Recommendations

asterwise_get_gemstone_recommendations

Computes Ratna-style gemstone picks and cautions from the natal chart. Returns the primary and role-based stones, secondary options, contraindications and a safety note.

Parameters​

ParameterTypeRequiredDescription
birthobjectyesBirth data for tools that need the exact birth time (no sunrise fallback). Required fields: date, time, lat, lon. Optional fields: person_name, timezone, ayanamsa.
response_formatenum: markdown, jsonnoOutput format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload.

What it covers​

Surfaces data.primary, yogakaraka/fifth/ninth/atmakaraka gems, secondary, contraindicated[], and note. The lagna lord is always a functional benefic, so primary is never withheld for lordship. Every slot carries contraindicated (bool) and caution (string|null); contraindicated:true means do not wear that gem for this role (dusthana lord with no trikona — the Sun or Moon as 8th lord are exempt — debilitated, or combust — same rule as asterwise_get_crystal_recommendations_natal). It does not emit mantra or fasting guidance (asterwise_get_remedies) or Lal Kitab totkas (asterwise_get_lal_kitab_remedies). A planet in contraindicated[] that also holds a slot is flagged contraindicated:true in that slot.

Workflow​

BEFORE: RECOMMENDED — asterwise_get_natal_chart — confirm chart before wearing advice.
AFTER: asterwise_get_remedies — broader remedial programme if needed.

Input​

BirthData follows the global contract.

Output contract​

data.primary:
planet (string)
reason (string)
gemstone (string)
substitute_gemstone (string)
metal (string)
colour (string)
note (string)
contraindicated (bool — true means do not wear that gem for this role)
caution (string or null)
data.yogakaraka_gem — { planet (string), gemstone (string), contraindicated (bool), caution (string or null) } or null when the lagna has no yogakaraka
data.fifth_lord_gem — { planet (string), gemstone (string), contraindicated (bool), caution (string or null) }
data.ninth_lord_gem — { planet (string), gemstone (string), contraindicated (bool), caution (string or null) }
data.atmakaraka_gem — { planet (string), gemstone (string), contraindicated (bool), caution (string or null) }
data.secondary — the first usable second gem: the yogakaraka, 9th lord, 5th lord or Atmakaraka gem, in that order, skipping the lagna lord's and any contraindicated one, with role naming the slot; null when none is usable
data.contraindicated[] — { planet (string), gemstone (string), reason (string) } — dusthana (6/8/12) lords that own no trikona (the Sun or Moon as 8th lord are exempt), debilitated planets, combust planets
data.note (string — safety disclaimer)

Response format​

response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data — no fields are added, removed, or filtered by either mode.

Compute class​

MEDIUM_COMPUTE

Errors​

INVALID_PARAMS (local — caught before upstream call):
None — all validation is upstream.

INVALID_PARAMS (upstream):
— Dates before 1800 or after 2100 → MCP INTERNAL_ERROR at the tool layer.

INTERNAL_ERROR:
— Any upstream API failure or timeout → MCP INTERNAL_ERROR

Edge cases:
— A 5th/9th lord that also owns a dusthana keeps contraindicated:false with a caution naming the dusthana.

Do not confuse with​

asterwise_get_remedies — mantras, fasting, charity rows, not a gem matrix.
asterwise_get_lal_kitab_remedies — Lal Kitab actions, not classical Ratna picks.

Connect​

Remote MCP endpoint: https://mcp.asterwise.com/mcp. Authenticate with Authorization: Bearer <API key> or OAuth. See the MCP setup guide.