Western Moon Phase
asterwise_get_western_moon_phase
Calculates the tropical lunar phase for any date using Swiss Ephemeris. Returns the phase name, phase angle, illumination percentage, Moon age in days, and the next major phase transition.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
response_format | enum: markdown, json | no | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. |
date | string/null | no | Date for the moon phase, YYYY-MM-DD (years 1-3000). Defaults to today (UTC). |
What it covers
Eight-phase tropical lunar cycle: New Moon (0°), Waxing Crescent, First Quarter (90°), Waxing Gibbous, Full Moon (180°), Waning Gibbous, Last Quarter (270°), Waning Crescent. Phase angle is Sun–Moon elongation in degrees (0–360). Illumination percentage is derived from the phase angle using the cosine formula. Moon age is days since the previous exact New Moon. Computed at 18:00 UTC on the date; phase_name uses Rudhyar's eight 45° phases, each beginning at its angle (the day before a full moon reads Waxing Gibbous). principal_phase marks the day that contains an exact New Moon, First Quarter, Full Moon or Last Quarter.
Workflow
BEFORE: None — standalone.
AFTER: asterwise_get_western_moon_calendar — get the full month's phase data.
Input
date (optional string YYYY-MM-DD, years 1-3000) — Date to compute phase for. Defaults to today (UTC). An invalid or out-of-range date → 422 validation_error, surfaces as MCP INTERNAL_ERROR with the API message.
Example: '2026-05-01'
Output contract
data.date (string — YYYY-MM-DD)
data.phase_name (string — one of the eight 45° phases at 18:00 UTC)
data.phase_angle (float — 0–360°, Sun–Moon elongation)
data.illumination_pct (float — 0–100)
data.moon_age_days (float — days since the previous exact New Moon)
data.moon_longitude (float — tropical ecliptic longitude)
data.sun_longitude (float — tropical ecliptic longitude)
data.is_waxing (bool — true from New to Full Moon)
data.next_phase_name (string — next principal phase: New Moon, First Quarter, Full Moon or Last Quarter)
data.next_phase_date (string — UTC date of the exact next principal phase)
data.next_phase_at (string — exact instant of the next principal phase, ISO 8601 UTC)
data.computed_at (string — the instant used: 18:00 UTC on the date)
data.principal_phase (string or null — principal phase whose exact instant falls on this UTC date)
data.principal_phase_at (string or null — exact instant of principal_phase, ISO 8601 UTC)
Response format
response_format=json — structured phase data.
response_format=markdown — human-readable moon report.
Compute class
FAST_LOOKUP
Errors
INVALID_PARAMS (local): None — date validated upstream.
INVALID_PARAMS (upstream): invalid or out-of-range date (years 1-3000) → 422 validation_error, surfaces as MCP INTERNAL_ERROR with the API message.
INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR
Do not confuse with
asterwise_get_western_moon_calendar — full monthly day-by-day phase table.
asterwise_get_panchanga — Vedic tithi system (lunar day based on 12° arc increments).
Connect
Remote MCP endpoint: https://mcp.asterwise.com/mcp. Authenticate with Authorization: Bearer <API key> or OAuth. See the MCP setup guide.