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
| Parameter | Type | Required | Description |
|---|---|---|---|
birth | object | yes | Birth 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_format | enum: markdown, json | no | Output 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.