A standalone Vedic (sidereal / Lahiri) astrology MCP server + engine — natal charts, dasha, and panchang from Skyfield + JPL DE440s. No paid or copyleft ephemeris, no network.
Two tools with complete input schemas and detailed descriptions. Naming is clear (verb_noun pattern). Descriptions are comprehensive (200+ chars) and include safety guidance. However, output schemas are not formally documented in the code, only inferred from docstrings. Parameter descriptions are present but lack explicit constraints (enums, ranges, patterns). No error handling guidance visible. Tool composition is sound (each does one thing), but no pagination or batch variants.
Compute a full Vedic natal chart (janma kundali) for a birth moment and place. Returns the ascendant (lagna), the seven grahas with sign/house/dignity, Rahu/Ketu, the Moon's birth nakshatra, yogas, and the running Vimshottari dasha with its cited classical reference. Use this for anything about a person's OWN chart, moon sign, nakshatra, dasha period, or personal timing. birth_date: 'YYYY-MM-DD'. birth_time: 'HH:MM' local clock time (use '12:00' if unknown — say so). lat/lon: birth-place degrees (lon EAST-positive). tz_offset: hours east of UT (India = 5.5). zodiac: 'sidereal' (default) or 'tropical'. Report what the chart and texts say — never predict death, disease, or a guaranteed outcome.
The panchang (five limbs) of a day: tithi, nakshatra, yoga, karana, vara, and each graha's rashi + longitude. Use for questions about today's or a given day's sky, muhurta, or the current nakshatra — no birth data needed. date: 'YYYY-MM-DD' (defaults to today, UTC). tz_offset: hours east of UT. Reports the sky as it is; it does not predict.
Output schemas not formally documented. Docstrings describe return structure informally ('Returns the ascendant, seven grahas...') but no JSON Schema or structured type hints visible in code. LLMs cannot reliably parse unstructured output.
Parameter constraints missing. 'zodiac' accepts 'sidereal' or 'tropical' but no enum declared. 'tz_offset' has no min/max bounds (could accept -12 to +14 hours). 'date' format is documented as YYYY-MM-DD but no regex pattern enforced. LLMs may pass invalid values.
No error handling guidance. Tools raise ValueError on failure but do not document what errors are possible, when they occur, or how to recover. E.g., invalid birth_date format, out-of-range coordinates, or missing ephemeris data, none are explained.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
No pagination or result limits. get_panchang returns all grahas and panchang data in one response. If extended to return historical or forecast data, unbounded results could exhaust context. No limit parameter or pagination guidance.
Tool descriptions include safety disclaimers ('never predict death, disease') but no formal error classification or confirmation pattern for sensitive operations. Astrology predictions are inherently subjective, no dry-run or confirmation step.