Recommends crystals based on zodiac sign, chakra, or intention keyword. At least one filter is required. Returns crystals that match the most criteria first.
SECTION: WHAT THIS TOOL COVERS
Scoring: zodiac match scores 3, chakra match scores 2, keyword match scores 1. Crystals matching multiple filters rank highest. Returns up to limit results (default 5, max 20). Valid chakras: Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown. Valid zodiac signs: English Western zodiac names (Aries, Taurus, etc.). Intention keyword is matched against each crystal's keywords[] list (partial match). Not a Jyotish prescription — does not account for natal chart or planetary periods. For chart-based gem prescription use asterwise_get_gemstone_recommendations.
SECTION: WORKFLOW
BEFORE: None — standalone for consumer apps.
AFTER: asterwise_get_crystal — get full detail on any recommended crystal.
SECTION: INPUT CONTRACT
At least one of: zodiac_sign, chakra, intention must be provided.
zodiac_sign (optional): English zodiac sign, e.g. 'Taurus', 'Scorpio'.
chakra (optional): One of Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown.
intention (optional): Keyword string, e.g. 'protection', 'abundance', 'love'.
limit (optional int, default 5, max 20): Maximum results to return.
SECTION: OUTPUT CONTRACT
data.total (int — number returned)
data.filters_applied{} — the filters used
data.crystals[] — matched crystals sorted by score descending
SECTION: RESPONSE FORMAT
response_format=json — recommendation object. response_format=markdown — formatted recommendations. Both return identical data.
SECTION: COMPUTE CLASS
FAST_LOOKUP
SECTION: ERROR CONTRACT
INVALID_PARAMS (upstream): No filters provided → 422. Invalid chakra name → 422.
INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR
SECTION: DO NOT CONFUSE WITH
asterwise_get_crystal_by_planet — Vedic planet filter only.
asterwise_get_gemstone_recommendations — natal chart house-lordship gem prescription with contraindications.
Connector