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.