Skip to main content
Glama
162,351 tools. Last updated 2026-05-30 07:24

"Planet" matching MCP tools:

  • Fetches an AI-synthesised Moon-sign horoscope for a chosen horizon and returns structured guidance fields plus metadata about the model and period. SECTION: WHAT THIS TOOL COVERS Calls the upstream horoscope service for a lunar sign (English or Sanskrit input accepted; response normalises moon_sign to lowercase English) and a period of daily, weekly, monthly, or yearly. It returns narrative and checklist-style content for life areas, remedy, and timing flavour text. It does not compute a personal natal chart, divisional charts, or dasha — only sign-level transit-flavoured copy tied to the requested horizon. SECTION: WORKFLOW BEFORE: None — this tool is standalone. AFTER: asterwise_get_natal_chart — if the user needs a personalised chart beyond sign-general copy. SECTION: INPUT CONTRACT period is constrained to the tool schema enum (daily, weekly, monthly, yearly). moon_sign accepts Sanskrit (Tula, Vrischika, Karka, Simha, Kanya, Dhanu, Makara, Kumbha, Meena, Mesha, Vrishabha, Mithuna) or English (Libra, Scorpio, Cancer, Leo, Virgo, Sagittarius, Capricorn, Aquarius, Pisces, Aries, Taurus, Gemini); resolution is upstream. response_format selects JSON vs markdown rendering only. SECTION: OUTPUT CONTRACT data.content: do[] (string array) body (string) love (string) avoid[] (string array) money (string) career (string) remedy (string) headline (string) narrative (string) open_loop (string) data.model_used (string — AI model version label) data.generated_at (string — ISO UTC) data.period_key (string — YYYY-MM-DD for daily; identifier for other horizons) data.horizon (string — 'daily', 'weekly', 'monthly', or 'yearly') data.moon_sign (string — lowercase English, e.g. 'libra') SECTION: 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. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — Invalid period enum or other Pydantic field violations on the tool schema → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — Unknown or unsupported moon_sign → MCP INTERNAL_ERROR at the tool layer (upstream rejection). INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Sign-level content only; not a substitute for birth-chart analysis. SECTION: DO NOT CONFUSE WITH asterwise_get_natal_chart — full personalised sidereal chart from birth data, not Moon-sign editorial copy. asterwise_get_gochar — nine-planet transit snapshot vs natal chart for today, not AI horoscope prose.
    Connector
  • Lookup a specific crystal by slug or name (case-insensitive). Returns full detail including dual Vedic/Western planetary assignments, all healing properties, and any safety cautions. SECTION: WHAT THIS TOOL COVERS Returns one crystal entry from the 50-crystal database. Accepts URL-safe slugs (e.g. 'blue-sapphire', 'rose-quartz') or display names (e.g. 'Blue Sapphire', 'Rose Quartz'). The caution field carries critical safety information — Blue Sapphire and Hessonite Garnet carry CRITICAL cautions about Jyotish use without qualified practitioner assessment. Malachite has a CRITICAL toxicity caution. Always surface the caution field to end users. SECTION: WORKFLOW BEFORE: None — standalone or after asterwise_get_gemstone_recommendations. AFTER: None. SECTION: INPUT CONTRACT name: Crystal slug or display name. Examples: 'amethyst', 'blue-sapphire', 'Cat's Eye Chrysoberyl' SECTION: OUTPUT CONTRACT Same shape as each crystal in asterwise_get_crystals — full single crystal object. SECTION: RESPONSE FORMAT response_format=json — single crystal object. response_format=markdown — formatted detail card. Both return identical data. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (upstream): Unknown crystal name → 404, surfaces as MCP INTERNAL_ERROR. INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_crystals — full 50-crystal catalogue. asterwise_get_crystal_by_planet — all crystals for a Vedic planet. asterwise_get_gemstone_recommendations — natal chart-based gem recommendations (house lordship rules), different from this database.
    Connector
  • 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
  • Returns all crystals associated with a specific Vedic planet. Results are sorted with primary Navaratna gems first, then Uparatna substitutes. Only Navaratna and Uparatna Vedic assignments are returned — crystals with no Vedic planetary correspondence are excluded. SECTION: WHAT THIS TOOL COVERS Filters the crystal database by vedic_planet field. Only returns crystals where vedic_correspondence is 'navaratna' or 'uparatna' — none_classical crystals are not returned here because they have no actual Vedic planetary assignment. Useful for Jyotish practitioners recommending remedial gems. Navaratna gems appear first. Valid planets: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_natal_chart — identify the planet needing remediation. AFTER: asterwise_get_gemstone_recommendations — for chart-specific gem safety assessment. SECTION: INPUT CONTRACT planet: One of Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. SECTION: OUTPUT CONTRACT data.total (int) data.crystals[] — same shape as asterwise_get_crystals, sorted Navaratna first. SECTION: RESPONSE FORMAT response_format=json — filtered crystal array. response_format=markdown — formatted list. Both return identical data. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (upstream): Unknown planet → 404. INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_gemstone_recommendations — natal chart house-lordship gem recommendation with contraindications; use for actual gem prescription, not just listing. asterwise_get_crystals — all 50 crystals including Western-only ones.
    Connector
  • Computes the full sidereal natal chart from BirthData and returns planet rows, houses, aspects, arudhas, upapada, bhava cusps, and avakhada metadata. SECTION: WHAT THIS TOOL COVERS Vedic natal endpoint: nine grahas with signs, degrees, nakshatras, combustion, retrograde, Bhava Chalit and rashi houses, twelve house cusps, graha and rashi drishti, arudha padas A1–A12, upapada lagna block, bhava madhya/sandhi arrays, ayanamsa metadata, and avakhada attributes. When include_interpretation=true, ascendant_sign_interpretation, moon_sign_interpretation, moon_nakshatra_interpretation, and interpretation are populated from interpretation JSON; otherwise they are null. It does not return PDFs, yogas list (asterwise_get_yogas), or dasha trees (asterwise_get_dasha). SECTION: WORKFLOW BEFORE: None — this tool is standalone. AFTER: RECOMMENDED — asterwise_get_yogas — layer classical combinations after the base chart exists. SECTION: INPUT CONTRACT BirthData enforces date YYYY-MM-DD, time HH:MM, lat -90..90, lon -180..180, ayanamsa enum locally (Pydantic). Unknown birth time may be entered as time='00:00' without error; lagna-sensitive results are then unreliable and callers must handle that — the API does not flag it. SECTION: OUTPUT CONTRACT data.planets[] — nine objects: planet (string) sign (string) sign_num (int — 0–11) degree (float) nakshatra (string) nakshatra_pada (int — 1–4) is_retrograde (bool) is_combust (bool) is_deep_combust (bool) house (int — Bhava Chalit) rasi_house (int) bhava_chalit_house (int) data.houses[] — twelve objects: house (int) sign (string) sign_num (int) degree (float) data.ascendant (float) data.ascendant_sign (string — Sanskrit name) data.moon_sign (string) data.moon_nakshatra (string) data.ayanamsa_value (float) data.ayanamsa_used (string) data.avakahada: nakshatra, nakshatra_lord, charan (int), rashi, rashi_lord, varna, vashya, yoni, gana, nadi, paya, ascendant, ascendant_lord, sun_sign, sun_sign_lord (strings/ints per upstream) data.graha_drishti — object keyed by planet name; each value object keyed by house strings '1'–'12' with aspect strength int (25, 50, 75, or 100) data.rashi_drishti[] — active sign-to-sign aspect pairs: { from_sign (string), from_sign_num (int 0-11), to_sign (string), to_sign_num (int 0-11) } data.arudha_padas — keys A1–A12 each { sign_index (int), sign_name (string) } data.upapada_lagna: sign_index (int) sign_name (string) upapada_lord (string) second_from_upapada_sign_index (int) second_from_upapada_sign_name (string) planets_in_second_from_upapada[] (string array of planet names) has_benefic_in_second_from_upapada (bool) has_malefic_in_second_from_upapada (bool) data.bhava_madhya[] — twelve objects: { house (int 1-12), sign (string), sign_num (int 0-11), degree (float) } data.bhava_sandhi[] — twelve objects: { house (int 1-12), sign (string), sign_num (int 0-11), degree (float) } data.birth_time_provided (bool — always false; no detection) data.fallback_method (null) ascendant_sign_interpretation (dict or null — sign interpretation from signs/ascendant.json when include_interpretation=true) moon_sign_interpretation (dict or null — Moon sign interpretation from signs/moon_sign.json when include_interpretation=true) moon_nakshatra_interpretation (dict or null — nakshatra interpretation from nakshatras/ files when include_interpretation=true) interpretation (list or null — planet-in-house interpretation list when include_interpretation=true) SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — BirthData Pydantic violations (date/time/lat/lon/ayanamsa) → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — None — calendar years outside supported upstream window surface as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — time='00:00' accepted; lagna may be wrong if true birth time unknown — not auto-detected. — Interpretation fields are null unless include_interpretation=true on the request. SECTION: DO NOT CONFUSE WITH asterwise_get_divisional_chart — sixteen vargas only, not the primary radix bundle returned here.
    Connector
  • Calculate a complete Western natal chart using the tropical zodiac and Swiss Ephemeris. Returns 10 planet positions with Placidus (or chosen) house placements, essential dignities, all active aspects, and element/modality/hemisphere balance statistics. SECTION: WHAT THIS TOOL COVERS Tropical natal chart: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. Each planet returns tropical longitude, sign, house (1–12), retrograde flag, dignity label (domicile/exaltation/detriment/fall/peregrine), dignity score (domicile +5, exaltation +4, triplicity +3, term +2, face +1, detriment -5, fall -4), is_exaltation_degree (within 1° of exact exaltation), dignity_disputed (true for outer planets where exaltation/fall is disputed among modern astrologers). Aspect orbs: conjunction/opposition 5°, square/trine 5°, sextile 3°, minor aspects 1.5°. Not Vedic sidereal (asterwise_get_natal_chart). SECTION: WORKFLOW BEFORE: None — this tool is standalone. AFTER: asterwise_get_western_transits_daily — layer current transits over this natal chart. AFTER: asterwise_get_western_synastry — compare this chart against a partner's chart. AFTER: asterwise_get_western_solar_return — annual return chart for the current year. SECTION: INPUT CONTRACT birth.date — YYYY-MM-DD. Example: '1985-11-12' birth.time — HH:MM (24-hour local time). Example: '06:45' birth.lat — Decimal degrees, north positive. Example: 19.076 (Mumbai) birth.lon — Decimal degrees, east positive. Example: 72.8777 (Mumbai) birth.timezone — IANA timezone string. Example: 'Asia/Kolkata', 'America/New_York', 'Europe/Rome', 'UTC'. Default: UTC. IMPORTANT: Timezone defaults to UTC — always supply the correct local timezone for accurate house cusps. An incorrect timezone shifts the Ascendant. birth.house_system — 'placidus' (default, most common), 'koch', 'equal', 'whole_sign'. Placidus is standard for most Western traditions. Whole sign is traditional/Hellenistic. NOTE: house_system is accepted here but silently ignored by transit, return, synastry, composite, and progression endpoints — those always use the birth location coordinates without house-system selection. ayanamsa — always tropical regardless of any value supplied; field is not present. SECTION: OUTPUT CONTRACT data.zodiac (string — 'tropical') data.house_system (string — the system used) data.ascendant — { longitude (float), sign (string), sign_index (int 0–11), degree_in_sign (float) } data.mc — same shape as ascendant data.planets[] — 10 objects (Sun through Pluto): name (string), longitude (float), sign (string), sign_index (int 0–11) degree_in_sign (float), house (int 1–12) is_retrograde (bool), dignity (string), dignity_score (int) is_exaltation_degree (bool), dignity_disputed (bool) data.houses[] — 12 objects: house (int 1–12), cusp_longitude (float), sign (string) sign_index (int 0–11), degree_in_sign (float) data.aspects[] — each: planet_a (string), planet_b (string), type (string) exact_angle (float), orb (float), is_applying (bool) data.elements — { fire (int), earth (int), air (int), water (int), dominant (string) } data.modalities — { cardinal (int), fixed (int), mutable (int), dominant (string) } data.hemisphere — { eastern (int), western (int), northern (int), southern (int) } data.ayanamsa_value (float — 0.0 for tropical) data.ayanamsa_used (string — 'tropical') data.birth_time_provided (bool) SECTION: 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 natal report. Both modes return identical underlying data. SECTION: COMPUTE CLASS MEDIUM_COMPUTE (~300ms) SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — WesternBirthData Pydantic violations (date pattern, time pattern, lat/lon bounds) → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — None expected for valid coordinates and dates post-1800. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Polar latitudes (above ~65°N or below ~65°S) may cause Placidus house calculation failure; use whole_sign or equal house system for polar births. — time='00:00' accepted; lagna-sensitive results are unreliable for unknown birth times. SECTION: DO NOT CONFUSE WITH asterwise_get_natal_chart — Vedic sidereal chart using Lahiri ayanamsa; different zodiac, different house system, different planet set (9 grahas vs 10 tropical planets). asterwise_get_western_aspects — takes raw longitudes as input; use when you already have positions and don't need full chart computation.
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Run Plant Builder production-plant simulations with tunable knobs for goals, rates, and shifts.

  • Evidence-based plant-based food-as-medicine protocols for 47 chronic conditions. ACLM-aligned.

  • Fetches an AI-synthesised Western sun-sign horoscope for a chosen horizon and returns structured guidance fields plus metadata about the model and period. SECTION: WHAT THIS TOOL COVERS Calls the upstream western horoscope service for a tropical sun sign and a period of daily, weekly, monthly, or yearly. Uses the tropical zodiac (not sidereal). Content is grounded in current sky aspects, slow planet positions, and the solar season — not Vedic transit rules. It does not compute a personal natal chart, divisional charts, or dasha — only sign-level tropical transit-flavoured copy tied to the requested horizon. No remedy field — Western tradition has no planetary remedy system. SECTION: WORKFLOW BEFORE: None — this tool is standalone. AFTER: asterwise_get_western_natal — if the user needs a personalised tropical chart beyond sign-general copy. SECTION: INPUT CONTRACT period is constrained to the tool schema enum (daily, weekly, monthly, yearly). sun_sign accepts English zodiac names only (Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces). No Sanskrit aliases — this is Western astrology. response_format selects JSON vs markdown rendering only. SECTION: OUTPUT CONTRACT data.content: headline (string) narrative (string) love (string) career (string) money (string) body (string) power_window (string) caution_window (string) closing_message (string) phases[] (monthly only — array of phase objects with phase_number, start_date, end_date, title, narrative) year_theme (string — yearly only) chapters[] (yearly only — array of chapter objects with chapter_number, start_date, end_date, title, narrative) auspicious_months[] (yearly only — string array of month names) landmark_dates[] (yearly only — array of {date, event} objects) data.model_used (string — AI model version label) data.generated_at (string — ISO UTC) data.period_key (string — YYYY-MM-DD for daily; YYYY-W## for weekly; YYYY-MM for monthly; YYYY for yearly) data.horizon (string — 'daily', 'weekly', 'monthly', or 'yearly') data.sun_sign (string — lowercase English, e.g. 'aries') data.zodiac_type (string — 'western') SECTION: 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. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — Invalid period enum or other Pydantic field violations on the tool schema → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — Unknown or unsupported sun_sign → MCP INTERNAL_ERROR at the tool layer (upstream rejection). INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR — Horoscope not yet generated for the current period → MCP INTERNAL_ERROR with status not_generated Edge cases: — Sun-sign content only; not a substitute for birth-chart analysis. — If a period's horoscope has not yet been generated by the cron, returns 404 upstream (surfaces as INTERNAL_ERROR). — No remedy field in western horoscopes by design. SECTION: DO NOT CONFUSE WITH asterwise_get_horoscope — Vedic Moon-sign horoscope using sidereal zodiac, not Western tropical sun-sign. asterwise_get_western_natal — full personalised tropical chart from birth data, not sign-general editorial copy.
    Connector
  • Returns classical graha (planet) properties for all nine planets or a single planet per classical Vedic tradition. SECTION: WHAT THIS TOOL COVERS Returns tattva (element), guna (Sattvic/Rajasic/Tamasic), gender, caste/varna, natural benefic/malefic nature, direction, color, presiding deity, ruling day of week, metal, body part governed, and naisargika maitri (natural friends, enemies, neutrals) for each of the nine grahas: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Rahu and Ketu include note explaining reference-table limits for shadow nodes. SECTION: WORKFLOW BEFORE: None — standalone reference. AFTER: asterwise_get_puja_suggestions — propitiation for a specific graha. SECTION: INPUT CONTRACT planet (optional): One of Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Omit to get all nine planets. SECTION: OUTPUT CONTRACT Single planet: data.planet, data.tattva, data.guna, data.gender, data.caste, data.nature, data.direction, data.color, data.deity, data.day, data.metal, data.body_part, data.friends[], data.enemies[], data.neutrals[] All planets: data.planets{} — object keyed by planet name, each with above fields SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (upstream): Unknown planet name → MCP INTERNAL_ERROR INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_puja_suggestions — ritual propitiation per planet, not properties. asterwise_get_rudraksha — bead recommendations per planet, not natal properties.
    Connector
  • Computes Harsha Bala (positional happiness score) for all 7 classical planets in a Varshaphal solar return chart. Maximum 20 per planet (4 components × 5 points each). SECTION: WHAT THIS TOOL COVERS Harsha Bala is entirely distinct from Pancha Vargeeya Bala. Pancha Vargeeya Bala measures mathematical strength (sign dignity, exaltation arc, divisional chart fractions). Harsha Bala measures whether a planet is positionally comfortable — does it occupy the right house, sign, hemisphere, and return type for its nature? A planet with high Pancha Vargeeya Bala (60/80) but zero Harsha Bala has the capacity to deliver results, but does so through stress, delay, and frustration. A Year Lord (Varsha Pati) with 0 Harsha Bala signals a difficult year even when it wins the Pancha Adhikari election. 4 Components (5 points each, maximum 20): 1. STHANA — Happy house placement in the Varsha chart (measured from Varsha Ascendant, not natal Ascendant): Sun=9th, Moon=3rd, Mars=6th, Mercury=1st, Jupiter=11th, Venus=5th, Saturn=12th. 2. SWAKSHETRA/UCCHA — Planet in its own sign (Swakshetra) or sign of exaltation (Uccha). 3. PUM-STRI (Gender/Hemisphere) — Male planets (Sun, Mars, Jupiter) prefer houses 7–12 (visible hemisphere). Female planets (Moon, Venus, Saturn) prefer houses 1–6 (invisible hemisphere). Mercury earns this component unconditionally. 4. DINA-RATRI (Day/Night) — Male planets (Sun, Mars, Jupiter) prefer a daytime solar return. Female planets (Moon, Venus, Saturn) prefer a nighttime return. Mercury earns this component unconditionally. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_varshaphal — identify the Year Lord (Varsha Pati) before interpreting Harsha Bala. The Year Lord's Harsha Bala is the most actionable number in this response. AFTER: asterwise_get_varshaphal_saham — use Harsha Bala to assess whether each Saham lord can deliver its theme with ease or difficulty. SECTION: INPUT CONTRACT Same as asterwise_get_varshaphal — BirthData plus target_year. target_year (required int): The Gregorian civil year of the solar return. Not age. time (required): Solar return ascendant and house positions are time-sensitive. SECTION: OUTPUT CONTRACT data.target_year (int) data.ayanamsa (string) data.solar_return_utc (string — ISO UTC of solar return moment) data.is_day_return (bool — true if solar return falls between sunrise and sunset; directly determines Dina-Ratri component results for all planets) data.varshaphal_ascendant_longitude (float — Varsha Ascendant in degrees; all house placements are measured from this) data.planets[] — 7 objects (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn in that order): planet (string — planet name) harsha_bala (int — total score 0–20) max_harsha_bala (int — always 20) varsha_house (int — planet's house in the Varsha chart, 1–12, from Varsha Ascendant) rashi_index (int — 0–11, 0=Mesha) rashi (string — Sanskrit sign name) components{} — four keys: sthana{}: earned (bool), points (int — 0 or 5), happy_house (int), actual_house (int), description (string) swakshetra_uccha{}: earned (bool), points (int — 0 or 5), in_own_sign (bool), in_exaltation (bool), current_rashi_index (int) pum_stri{}: earned (bool), points (int — 0 or 5), gender (string — 'male'|'female'|'neutral'), happy_hemisphere (string), actual_house (int) dina_ratri{}: earned (bool), points (int — 0 or 5), happy_period (string), actual_period (string — 'day' or 'night') interpretation (string — qualitative label: 'Excellent', 'Strong', 'Moderate', 'Weak', or 'Very weak') (string — methodology and interpretation guidance) SECTION: 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. SECTION: COMPUTE CLASS SLOW_COMPUTE — internally runs the full solar return computation before deriving Harsha Bala. SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — BirthData Pydantic only. INVALID_PARAMS (upstream): None — upstream rejection surfaces as MCP INTERNAL_ERROR. INTERNAL_ERROR: Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Rahu and Ketu are excluded — Harsha Bala is defined only for the 7 classical grahas. — Polar latitudes where sunrise/sunset cannot be computed affect is_day_return → MCP INTERNAL_ERROR. — target_year is a Gregorian year, not age. SECTION: DO NOT CONFUSE WITH asterwise_get_varshaphal — returns Pancha Vargeeya Bala (mathematical strength out of 80) for the Pancha Adhikaris; Harsha Bala (positional happiness out of 20) is a completely different measurement returned by this tool. asterwise_get_varshaphal_saham — derives sensitive zodiac points; this tool scores planet positional comfort. asterwise_get_chart_strength — Shadbala for the natal chart, not Tajika Harsha Bala for the solar return.
    Connector
  • Computes all 10 Tajika Saham (sensitive points) for a Varshaphal solar return chart. Sahams are the Tajika equivalent of Arabic Parts — mathematically derived zodiac points that focus the annual horoscope on specific life themes. SECTION: WHAT THIS TOOL COVERS Saham formula: (A - B + Ascendant) % 360, with a conditional +30° correction applied when the Ascendant does not fall in the forward zodiacal arc from B to A. This conditional is the defining classical Tajika Saham rule — without it, results are wrong. Day and night formulas differ: the Minuend and Subtrahend swap based on whether the solar return falls during daytime or nighttime at the birth location. Punya Saham (Fortune) is always computed first because Yashas (Fame) and Mahatmya (Status) use it as an operand. The Saham lord (planet ruling the sign where the Saham falls) is the Sahamesha — its strength, house placement, and Tajika aspects to the Varsha Ascendant determine whether the theme manifests positively or is obstructed. 10 Sahams returned: punya — Fortune and Luck (Moon-Sun day / Sun-Moon night) vidya — Education and Learning (Sun-Jupiter day) yashas — Fame and Reputation (Jupiter-Punya day) — uses Punya as operand mitra — Friends and Allies (Jupiter-Venus day) mahatmya — Greatness and Status (Punya-Mars day) — uses Punya as operand asha — Desires and Fulfillment (Saturn-Venus day) karmakarya — Action and Profession (Mars-Mercury day) vyapara — Business and Trade (Mars-Saturn day) vivaha — Marriage and Relationships (Venus-Saturn day) santapa — Sorrow and Stress (Saturn-Moon day) SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_varshaphal — understand the base solar return chart (year lord, Muntha, Varsha Ascendant) before interpreting Saham lords. The Saham is meaningless without knowing which house it occupies from the Varsha Ascendant. AFTER: asterwise_get_varshaphal_harsha_bala — assess the Saham lord's positional happiness score to determine ease or difficulty of manifestation. SECTION: INPUT CONTRACT Same as asterwise_get_varshaphal — BirthData plus target_year. target_year (required int): The Gregorian calendar year of the solar return. Not age — the civil year (e.g. 2026). Feeding age instead of year silently produces the wrong return. time (required): Solar return Ascendant is time-sensitive. Accurate birth time is required for reliable Saham interpretation. SECTION: OUTPUT CONTRACT data.target_year (int — calendar year of the solar return) data.ayanamsa (string — ayanamsa system used, e.g. 'lahiri') data.solar_return_utc (string — ISO UTC timestamp of solar return moment) data.is_day_return (bool — true if solar return occurs between sunrise and sunset; determines which Saham formula variant is used) data.varshaphal_ascendant_longitude (float — Varsha Ascendant in degrees; all 10 Saham longitudes are computed relative to this) data.total (int — always 10) data.sahams[] — 10 objects in order [punya, vidya, yashas, mitra, mahatmya, asha, karmakarya, vyapara, vivaha, santapa]: slug (string — lowercase key, e.g. 'punya') name (string — full display name, e.g. 'Punya Saham') theme (string — life area, e.g. 'Fortune and Luck') longitude (float — Saham longitude in degrees 0–360) rashi_index (int — 0–11, 0=Mesha) rashi (string — Sanskrit sign name, e.g. 'Mesha') degree_in_sign (float — degrees within the sign) saham_lord (string — classical lord of the sign where Saham falls) formula_used (string — describes whether day or night formula was applied and which planets were operands, e.g. 'day: Moon - Sun + Asc') (string — methodology note) SECTION: 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. SECTION: COMPUTE CLASS SLOW_COMPUTE — internally runs the full solar return computation (binary-search Sun longitude + house computation) before deriving Sahams. SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — BirthData Pydantic only. INVALID_PARAMS (upstream): None — upstream rejection surfaces as MCP INTERNAL_ERROR. INTERNAL_ERROR: Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Day/night determination uses sunrise/sunset at the birth coordinates for the solar return date. Polar latitudes where sunrise cannot be computed → MCP INTERNAL_ERROR. — target_year is a Gregorian year, not age — always verify the caller passes the civil year. SECTION: DO NOT CONFUSE WITH asterwise_get_varshaphal — returns the full base solar return chart including Muntha, year lord, and planet positions; Saham points are not included there. asterwise_get_varshaphal_harsha_bala — scores planet positional happiness; this tool computes zodiac points, not planet positions. asterwise_get_gemstone_recommendations — birthchart gemstone recommendations, unrelated to Tajika Saham.
    Connector
  • Computes Vimshottari Dasha from birth data and returns hierarchical period trees plus current Maha/Antar interpretation blocks. SECTION: WHAT THIS TOOL COVERS Computes the classical classical Vimshottari timeline from the Moon's birth nakshatra: Mahadasha and nested sub-periods up to the depth set by levels, with Julian and calendar boundaries and optional modern summaries. It returns data.periods[] and data.interpretation for the active periods. It does not compute Char Dasha, Yogini Dasha, Ashtottari, or transit correlations; use the dedicated tools for those systems. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_natal_chart — establishes chart and Moon context before interpreting Dasha lords. AFTER: asterwise_get_dasha_transits — correlates active Dasha lords with transits for the same birth data. SECTION: INPUT CONTRACT levels (int, default 3, max 5): tree depth — 1 = Mahadasha only; 2 adds Antardasha; 3 Pratyantar; 4 Sookshma; 5 Prana (much larger payload). Response dates in periods[] use DD/MM/YYYY, not ISO. BirthData fields follow global contract (date YYYY-MM-DD, time HH:MM; time='00:00' is accepted without flag — lagna-sensitive timing may be wrong if birth time is unknown). SECTION: OUTPUT CONTRACT data.periods[] — array of Mahadasha objects: planet (string) start_jd (float) end_jd (float) start_date (string — DD/MM/YYYY, not ISO) end_date (string — DD/MM/YYYY) modern_summary (string or null) sub[] — array of Antardasha objects with the same shape; sub=null at deepest level data.interpretation.current_mahadasha: planet (string) start_date (string) end_date (string) duration_years (float) modern_summary (string or null) favorable_conditions[] (string array) favorable_results[] (string array) unfavorable_conditions[] (string array) unfavorable_results[] (string array) timing_note (string) data.interpretation.current_antardasha — same fields as current_mahadasha plus mahadasha_planet (string) data.birth_time_provided (bool) SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE (~100ms at levels=1, ~1500ms at levels=5) SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — levels < 1 or levels > 5 → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — None — BirthData validation is upstream beyond Pydantic field constraints. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Period start_date/end_date strings are DD/MM/YYYY; do not parse as ISO. SECTION: DO NOT CONFUSE WITH asterwise_get_char_dasha — classical sign-based periods with ISO dates on periods[], not planet-based Vimshottari. asterwise_get_yogini_dasha — 36-year eight-Yogini cycle with data.periods.root[], not Vimshottari. asterwise_get_ashtottari_dasha — 108-year alternative tree with data.periods.root[] and same levels semantics as this tool.
    Connector
  • Returns all 50 crystals in the database sorted alphabetically. Each entry includes chakra associations, elemental correspondences, Vedic and Western planetary assignments, physical/emotional/spiritual healing properties, geographic origins, affirmations, and safety cautions. SECTION: WHAT THIS TOOL COVERS Dual-tradition crystal database distinguishing classical Vedic assignments from modern Western metaphysical ones. vedic_correspondence field is always one of: 'navaratna' (primary classical gem — one of the nine planetary gems), 'uparatna' (classical substitute gem), or 'none_classical' (no Vedic text assigns this stone — Western tradition only). The nine Navaratna: Ruby (Sun), Pearl (Moon), Red Coral (Mars), Emerald (Mercury), Yellow Sapphire (Jupiter), Diamond / White Sapphire (Venus), Blue Sapphire (Saturn), Hessonite Garnet (Rahu), Cat's Eye Chrysoberyl (Ketu). Crystals like Labradorite and Amazonite are marked none_classical — they were unknown in ancient India. Does not compute natal chart recommendations (asterwise_get_crystal_recommendations). SECTION: WORKFLOW BEFORE: None — standalone catalogue. AFTER: asterwise_get_crystal_by_planet — filter by Vedic planet for remedial use. SECTION: INPUT CONTRACT No required parameters. SECTION: OUTPUT CONTRACT data.total (int — 50) data.crystals[] — 50 objects each: slug, name, colors[], hardness_mohs (float) chakras[] (string array) element (string) zodiac_signs[] (string array) vedic_planet (string or null) vedic_correspondence (string — 'navaratna'|'uparatna'|'none_classical') western_planet (string or null) keywords[] (string array) healing_physical, healing_emotional, healing_spiritual (strings) description (string) origins[] (string array) affirmation (string) caution (string or null) SECTION: RESPONSE FORMAT response_format=json — full 50-crystal array. response_format=markdown — formatted catalogue. Both return identical data. SECTION: COMPUTE CLASS FAST_LOOKUP — static database, no ephemeris. SECTION: ERROR CONTRACT INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_crystal — single crystal detail by name. asterwise_get_crystal_by_planet — filter by Vedic planetary correspondence. asterwise_get_crystal_recommendations — recommendations by zodiac/chakra/intention.
    Connector
  • Calculates all active aspects between a supplied set of planetary longitudes. Accepts a dictionary of body name to tropical ecliptic longitude and returns every aspect within standard natal orbs. SECTION: WHAT THIS TOOL COVERS Flexible aspect calculator that works with any set of positions — natal planets, transit planets, progressed planets, or custom hypothetical points. Aspect orbs: conjunction/opposition 5°, square/trine 5°, sextile 3°, semisextile/quincunx/semisquare/sesquiquadrate 1.5°. Returns is_applying based on relative speeds if speeds are provided, otherwise assumed separating. SECTION: WORKFLOW BEFORE: None — standalone; or use asterwise_get_western_natal to get positions first. AFTER: None. SECTION: INPUT CONTRACT positions — dict mapping planet/body name (string) to tropical longitude (float 0–360). Must contain at least 2 entries. Example: {'Sun': 229.6, 'Moon': 221.8, 'Mars': 189.6, 'Jupiter': 309.6} Names can be any string — the tool does not enforce planet names. SECTION: OUTPUT CONTRACT data.aspects[] — each: planet_a (string), planet_b (string), type (string — aspect name) exact_angle (float), orb (float), is_applying (bool) data.orbs_used — dict of aspect type to orb value used data.body_count (int — number of input bodies) data.aspect_count (int — number of aspects found) SECTION: RESPONSE FORMAT response_format=json — aspect grid object. response_format=markdown — formatted aspect table. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local): — fewer than 2 bodies in positions dict → MCP INVALID_PARAMS immediately. INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_western_natal — computes both positions and aspects from birth data. asterwise_get_western_synastry — inter-chart aspects between two people.
    Connector
  • Computes KP ruling planets for the instantaneous chart at lat/lon with no birth data and returns day lord, Moon/Ascendant lord chains, and a deduplicated ruling_planets list. SECTION: WHAT THIS TOOL COVERS Current-moment KP snapshot: target_utc, day_lord, Moon and Ascendant tuples with sign/nakshatra/sub lords, ruling_planets[] unique names. Not natal positions (asterwise_get_kp_chart) and not house significators (asterwise_get_kp_significators). Coordinate sanity is upstream — not locally validated floats beyond whatever FastMCP passes. SECTION: WORKFLOW BEFORE: None — this tool is standalone. AFTER: asterwise_get_kp_chart — if natal confirmation is needed afterwards. SECTION: INPUT CONTRACT lat and lon only; no date parameter — "now" is implicit on the server clock. SECTION: OUTPUT CONTRACT data.ayanamsa (string — 'kp') data.target_utc (string — ISO UTC) data.day_lord (string — planet name) data.moon: longitude (float) rashi (string) sign_lord (string) nakshatra_lord (string) sub_lord (string) data.ascendant — same fields as data.moon data.ruling_planets[] (string array — unique names, deduplicated) SECTION: 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. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — lat/lon not range-checked locally. INVALID_PARAMS (upstream): — None — coordinate errors surface as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Represents instantaneous sky — differs from natal stored charts. SECTION: DO NOT CONFUSE WITH asterwise_get_kp_chart — needs BirthData and returns full natal KP cusps. asterwise_get_prashna_chart — horary keyword workflow, not ruling-planet snapshot.
    Connector
  • Recommends crystals from a Vedic natal chart using house lordship rules for gem selection. This is the only API that derives crystal recommendations from a computed natal chart — not from zodiac sign or chakra preference. SECTION: WHAT THIS TOOL COVERS Classical rules applied: 1. INCLUSION RULE — A planet is recommended only if it lords at least one Trikona house (1st, 5th, or 9th). If a planet lords both a Trikona and a Dusthana (6th, 8th, or 12th), the Trikona lordship prevails and the planet is still recommended. This is the dual-lordship rule — violating it produces wrong exclusions. 2. EXCLUSION RULE — A planet that does not lord any Trikona house is contraindicated. This includes pure Dusthana lords, pure Kendra lords (4th, 7th, 10th), and pure neutral lords. 3. SCORING — Crystals are scored by which Trikona lordship their planet holds: Lagna lord (1st) Navaratna +5, Uparatna +4 — primary Life Stone Yogakaraka Navaratna +5, Uparatna +4 — lords both a non-1st Kendra AND a non-1st Trikona simultaneously 9th lord Navaratna +4, Uparatna +3 — Fortune Stone (Bhagyesh) 5th lord Navaratna +3, Uparatna +2 — Lucky Stone (Panchamesh) 4. YOGAKARAKA — A planet that lords both a non-1st Kendra (4th, 7th, or 10th) AND a non-1st Trikona (5th or 9th) is the supreme benefic for that Lagna. Example: Mars for Cancer Lagna (lords 5th and 10th). 5. DANGEROUS COMBINATIONS — Pairs of recommended crystals from enemy planet camps are flagged in warnings[]: Saturn+Sun, Saturn+Mars, Jupiter+Venus, Moon+Rahu, Moon+Ketu. 6. CLASSICAL VEDIC ONLY — Crystals with vedic_correspondence='none_classical' (Labradorite, Amazonite, Black Obsidian, etc.) are never returned. These stones have no Vedic planetary assignment in the database. SECTION: WORKFLOW BEFORE: None — this tool internally computes the natal chart. No separate natal chart call required. AFTER: asterwise_get_crystal — get full detail (hardness, origins, affirmation, full caution text) on any recommended crystal by slug. AFTER: asterwise_get_remedies — broader classical remedial programme alongside gem recommendations. SECTION: INPUT CONTRACT Standard BirthData (date, time, lat, lon, timezone, ayanamsa). Defaults to Lahiri ayanamsa. time (required): Ascendant (Lagna) is time-sensitive. Inaccurate birth time changes the Lagna → changes all house lords → changes recommendations entirely. SECTION: OUTPUT CONTRACT data.natal_context{} — chart factors used for recommendations: lagna_sign (string — Ascendant sign in English, e.g. 'Libra') lagna_lord (string — classical lord of the 1st house) fifth_sign (string — 5th house sign in English) fifth_lord (string — lord of the 5th house, Panchamesh) ninth_sign (string — 9th house sign in English) ninth_lord (string — lord of the 9th house, Bhagyesh) yogakaraka (string or null — Yogakaraka planet name if one exists for this Lagna; null if none) contraindicated_lords (string array — planets that do not lord any Trikona; their gems are contraindicated) ayanamsa (string — ayanamsa used, e.g. 'lahiri') data.total (int — number of crystals returned, up to 5) data.crystals[] — recommended crystals sorted by match_score descending: slug, name, colors[], hardness_mohs (float), chakras[], element, zodiac_signs[] vedic_planet (string — the planet this crystal corresponds to) vedic_correspondence (string — always 'navaratna' or 'uparatna'; none_classical never appears) western_planet (string or null) keywords[], healing_physical, healing_emotional, healing_spiritual, description origins[], affirmation, caution (string or null — always surface this to end users) match_score (int — house lordship score; higher indicates stronger lordship basis) match_reasons (string array — which house lordship triggered this recommendation) warnings (string array — dangerous combination warnings; may be empty) SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE — full natal chart computation + crystal scoring pass. SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): BirthData Pydantic violations → MCP INVALID_PARAMS INVALID_PARAMS (upstream): Dates before 1800 or after 2100 → MCP INTERNAL_ERROR INTERNAL_ERROR: Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — An empty crystals[] is valid when no Navaratna or Uparatna Vedic gem corresponds to the Trikona lords of this specific chart. — Blue Sapphire (Saturn) and Hessonite (Rahu) carry CRITICAL cautions in their caution field — always surface this to end users before advising wear. — Rahu and Ketu do not own signs in the classical system — they never appear as lagna_lord, fifth_lord, or ninth_lord. SECTION: DO NOT CONFUSE WITH asterwise_get_gemstone_recommendations — also a chart-based gem endpoint but uses a different engine (Atmakaraka + role-based prescription vs house lordship scoring); returns gem names not crystal database entries; does not include match_score or match_reasons. asterwise_get_crystal_recommendations — recommends crystals by zodiac sign, chakra, or intention keyword (no natal chart computation; Western metaphysical matching, not classical Jyotish). asterwise_get_crystal_by_planet — lists all crystals for a Vedic planet without house context — use this for reference, not prescription.
    Connector
  • Computes Gochar against the natal Moon and Lagna and returns per-planet transit longitudes, houses, AVK scores, vedha flags, and a roll-up summary. SECTION: WHAT THIS TOOL COVERS Produces a transit snapshot: natal Moon and ascendant signs, nine graha transit rows with nakshatra/pada, houses from Moon and Lagna, favourability flags, optional Ashtakavarga bindu (null for Rahu/Ketu), vedha state, interpretation strings, themes, and quality labels, plus summary counts and sade sati / chandra ashtama flags. It does not list ingress events over a range (asterwise_get_transits), correlate with Vimshottari (asterwise_get_dasha_transits), or return Panchanga elements. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_natal_chart — anchors what "natal" means for the same birth record. AFTER: asterwise_get_dasha_transits — adds dasha-lord correlation for today. SECTION: INPUT CONTRACT target_date (string, optional — YYYY-MM-DD): date to compute transits for; defaults to today if omitted. BirthData follows the global contract (time='00:00' accepted without unknown-time detection). SECTION: OUTPUT CONTRACT data.natal: moon_sign (string) moon_sign_index (int) ascendant_sign (string) ascendant_sign_index (int) data.target_date (string — YYYY-MM-DD, today) data.transits[] — nine objects (Sun through Ketu): planet (string) transit_sign (string) transit_sign_index (int) transit_degree (float) is_retrograde (bool) nakshatra (string) nakshatra_pada (int) house_from_moon (int — 1–12) house_from_lagna (int — 1–12) is_favorable_from_moon (bool) is_favorable_from_lagna (bool) bindu_override (bool) vedha_active (bool) vedha_blocking_planet (string or null) ashtakavarga_score (int or null — null for Rahu and Ketu) interpretation (string) themes[] (string array) quality (string — 'favorable' or 'unfavorable') data.summary: favorable_count (int) unfavorable_count (int) vedha_blocked_count (int) overall_score (int) sade_sati_active (bool) sade_sati_phase (string or null) sade_sati_interpretation (object or null — populated when sade_sati_active is true; contains phase-specific prose for rising, peak, or setting phase of Sade Sati) chandra_ashtama_active (bool) SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — target_date must match YYYY-MM-DD when provided (Pydantic pattern on the tool schema) → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — None — upstream rejection surfaces as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — ashtakavarga_score is null for Rahu and Ketu. SECTION: DO NOT CONFUSE WITH asterwise_get_transits — ingress and station tables for a chosen date window, not a single-day Gochar snapshot. asterwise_get_dasha_transits — scores how transits meet active dasha lords, not the full nine-planet Gochar row set.
    Connector
  • Lists Lal Kitab style totkas per stressed planet from BirthData with priority tiers and typed action rows (remedy, donation, keep, avoid). SECTION: WHAT THIS TOOL COVERS Outputs data.system, ayanamsa, and remedies[] entries tying planets to lk context and nested remedies[] instructions. Distinct from classical mantra/gem rows (asterwise_get_remedies). Best interpreted alongside asterwise_get_lal_kitab_chart for house context. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_lal_kitab_chart — see chart before applying totkas. AFTER: None. SECTION: INPUT CONTRACT BirthData only. SECTION: OUTPUT CONTRACT data.system (string — 'lal_kitab') data.ayanamsa (string) data.remedies[] — each: planet (string) lk_house (int) rashi (string) pucca_ghar (bool) kachcha_ghar (bool) uchcha (bool) neecha (bool) priority (string — 'high', 'medium', or 'low') remedies[] — { type (string — 'remedy', 'donation', 'keep', or 'avoid'), action (string) } SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — BirthData Pydantic only. INVALID_PARAMS (upstream): — None — upstream rejection surfaces as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Empty remedies[] possible when no graha needs attention — still success if upstream returns so. SECTION: DO NOT CONFUSE WITH asterwise_get_remedies — mantra/gem prescriptions, not Lal Kitab totkas. asterwise_get_gemstone_recommendations — classical Ratna focus, not household remedies.
    Connector
  • Combines active Vimshottari lords with today's transits and returns scored correlations plus transit longitudes and houses from Moon and Lagna. SECTION: WHAT THIS TOOL COVERS Builds a snapshot for the current calendar day (no date parameter): active Mahadasha, Antardasha, and Pratyantar; transiting planet positions; pairwise dasha–transit correlations with scores; and a filtered list of stronger correlations. It does not return full Dasha trees (use asterwise_get_dasha), ingress calendars (asterwise_get_transits), or standalone Gochar without Dasha context (asterwise_get_gochar). SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_natal_chart — same birth data should be understood before interpreting houses and lords. AFTER: asterwise_get_gochar — optional broader transit snapshot without dasha scoring. SECTION: INPUT CONTRACT No date field — "today" is fixed by the API. All parameters are otherwise defined in the tool schema. BirthData follows the global contract (unknown birth time: time='00:00' accepted without detection). SECTION: OUTPUT CONTRACT data.target_date (string — YYYY-MM-DD, today) data.active_dasha: start_date (string) end_date (string) maha — { planet (string), start_date (string), end_date (string) } antar — { planet (string), start_date (string), end_date (string) } pratyantar — { planet (string), start_date (string), end_date (string) } data.transit_positions{} — keyed by planet name: rashi_index (int) rashi (string) is_retrograde (bool) house_from_moon (int) house_from_lagna (int) data.correlations[] — each object: dasha_level (string) dasha_lord (string) transit_planet (string) aspect_type (string) score (int — 1=mild, 2=moderate, 3=high) natal_rashi (string) transit_rashi (string) is_retrograde (bool) significance (string) data.periods_of_significance[] — same shape as correlations[] filtered to score ≥ 2 SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — all validation is upstream. INVALID_PARAMS (upstream): — None — upstream rejection surfaces as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Target date is always "today"; past/future analysis is not supported by this tool. SECTION: DO NOT CONFUSE WITH asterwise_get_gochar — full nine-planet Gochar with AVK and vedha fields, without dasha–transit correlation scores. asterwise_get_transits — ingress and station lists over a chosen range, not today's dasha snapshot. asterwise_get_dasha — full Vimshottari tree without transit overlay.
    Connector
  • Use when you need the full natal chart for interpretation, comparison, or downstream transit/progression work. Returns planets, houses, aspects, patterns, dignities, and Big Three. `detail="compact"` drops the per-aspect details (keeps `aspects.summary` counts) and per-pattern planet lists — saves ~15k tokens on a typical chart, useful when you only need placements + angles. Next step: if you need aspect-by-aspect narrative material, call with `detail="full"`; for transits to this chart, call `current_transits` or `transit_search` with the same birth data.
    Connector
  • Calls atmakaraka and ishta-devata endpoints sequentially and merges their payloads into top-level atmakaraka and ishta_devata objects for one BirthData. SECTION: WHAT THIS TOOL COVERS Returns the karaka layer: eight-karaka mapping, soul significator graha, navamsa-based ishta devata inference, twelfth-house occupants, and D9 positions map. It is not general prediction, medical timing, or matchmaking scoring. Two planets tied by degree use classical highest-longitude resolution without raising an error. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_natal_chart — understand chart basics before devotional pointers. AFTER: None. SECTION: INPUT CONTRACT Wrapper returns { atmakaraka: <upstream dict>, ishta_devata: <upstream dict> } — not a flat data.* root; consumers must read nested .data fields inside each branch per upstream shape. SECTION: OUTPUT CONTRACT Top-level merge: atmakaraka — upstream POST /v1/astro/atmakaraka body; use atmakaraka.data: karaka_to_planet{} (eight karakas to planet names) planet_to_karaka{} atmakaraka (string) atmakaraka_sign (string) atmakaraka_nakshatra (string) details{} — per karaka: planet, rashi, nakshatra, longitude ishta_devata — upstream POST /v1/astro/ishta-devta body; use ishta_devata.data: atmakaraka (string) karakamsha_lagna (string) karakamsha_lagna_index (int) jivanmuktamsa_planet (string) navamsa_lagna (string) navamsa_lagna_index (int) twelfth_house_sign (string) twelfth_house_index (int) planets_in_12th[] (string array) ishta_devta_planet (string) deity (string) description (string) method (string) d9_positions{} — per planet: { sign (string), sign_num (int) } SECTION: 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. SECTION: COMPUTE CLASS MEDIUM_COMPUTE SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — BirthData validated via Pydantic only. INVALID_PARAMS (upstream): — None — upstream rejection surfaces as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout on either sequential call → MCP INTERNAL_ERROR Edge cases: — Identical-degree planets: classical tie-break applies; no error. SECTION: DO NOT CONFUSE WITH asterwise_get_natal_chart — general chart; does not compute ishta devata workflow. asterwise_get_char_dasha — timing system using karakas, not deity discovery.
    Connector