Observatory-grade Indian astronomy, years -5000..+5000: positions, eclipses, panchang date search.
MCP Server: com.kaalshodh/kaalshodh
This MCP server provides observational-grade Indian astronomy data covering years from -5000 to +5000. It supports queries for celestial positions, eclipses, and panchang date search. The server description focuses on astronomical computations and date-based results across an extended historical range.
🛠️ Key Features
Indian astronomy data
Year range support: -5000 to +5000
Celestial positions
Eclipses
Panchang date search
🚀 Use Cases
Find astronomical positions for dates within -5000..+5000
Look up eclipse information by time period
Search for panchang dates within the supported historical span
⚡ Developer Benefits
Clear scope: positions, eclipses, and panchang date search for -5000..+5000
Developer-consumable functionality centered on Indian astronomy queries
⚠️ Limitations
Only the capabilities described (positions, eclipses, panchang date search) are reflected in the provided data
No additional tools, topics, or configuration details were provided
Captured live from the server via tools/list.
get_astro_events
Return precomputed astronomical events between start_date and end_date —
any range within years -5000..+5000 (eclipses -1999..3000), instant.
Events are global (location-independent) and served from binary-searched
lookup tables — no live ephemeris computation.
Example questions: "planetary events this month", "solar eclipses in the
12th century", "when was Shani retrograde in 1500 BCE?", "adhik maas
years this decade".
Ritu/ayana changes are Sayan sankrantis: Surya entering Meena=Vasanta,
Vrishabha=Grishma, Karka=Varsha (=Dakshinayan start, = solstice),
Kanya=Sharada, Vrishchika=Hemanta, Makara=Shishira (=Uttarayan start,
= solstice) — query event_types=["sankranti"] with ayanamsa="Sayan".
Args:
start_date: Start date inclusive, YYYY-MM-DD (e.g. "2026-01-01");
negative years allowed (e.g. "-3101-01-01")
end_date: End date inclusive, YYYY-MM-DD (e.g. "2026-12-31")
ayanamsa: "Lahiri" (Vedic sidereal, default) or "Sayan" (tropical/Western)
grah: Optional planet filter. One of: Surya, Chandra, Mangala, Budha,
Guru, Shukra, Shani, Rahu, Ketu
event_types: Optional list of event type filters. Valid values:
"transit" – Mangala..Ketu change rashi (NOT Surya/Chandra)
"sankranti" – Surya changes rashi (~monthly)
"moon_transit" – Chandra changes rashi (~monthly)
"full_moon" – Purnima (Moon at 180° elongation)
"new_moon" – Amavasya (Moon at 0° elongation)
"retrograde_start" – planet turns retrograde
"retrograde_end" – planet resumes direct motion
"equinox" – Vernal or Autumnal equinox (Sayan Surya)
"solstice" – Summer or Winter solstice (Sayan Surya)
"asta_start" – planet enters combust zone (Grah Asta)
"asta_end" – planet exits combust zone (Uday)
"solar_eclipse" – solar eclipse (catalog, years -1999..3000)
"lunar_eclipse" – lunar eclipse (catalog, years -1999..3000)
"kaal_sarp" – Kaal Sarp window (interval)
"adhik_maas" – intercalary Hindu month (interval)
"kshay_maas" – lost Hindu month (interval)
"kumbh_mela" – Kumbh Mela window (interval)
The max range is set by the densest requested type: 3 years by default,
up to 1000 years for sparse-only queries (kumbh, maas). Interval events
also carry end_time, duration_days, and type-specific details.
Returns:
Dict with keys: start_date, end_date, ayanamsa, count, events (list).
Each event has: time (UTC ISO), event_type, grah, from, to, and
(for intervals) end_time, duration_days, plus a details dict.
Return the nearest occurrence of one event type before or after a date —
walks outward from any date in years -5000..+5000, instant.
Ideal for questions like "when is the next Kumbh Mela?", "when does Guru
go retrograde next?", "when is Makara Sankranti?" or "when was the last
total solar eclipse before 1500 CE?" without scanning a whole range.
Args:
event_type: One of the values listed in get_astro_events (e.g.
"kumbh_mela", "solar_eclipse", "adhik_maas", "sankranti").
from_date: Reference date, YYYY-MM-DD (BC years like "-0500-01-01" allowed).
direction: "next" (first after from_date) or "prev" (last before).
ayanamsa: "Lahiri" (default) or "Sayan".
grah: Optional grah filter for grah-specific event types.
location: Optional Kumbh Mela location (Haridwar/Prayagraj/Ujjain/Nashik).
Returns:
Dict with event_type, direction, from_date, ayanamsa, valid_range, and
`event` (null if the reference date is outside the data range).
Return the rashi (zodiac sign) and retrograde status of the 9 grahas at
any instant in years -5000..+5000, plus the paksha (lunar fortnight).
Served from precomputed lookup tables — O(log n), instant even for
"where was Shani on this day in 3102 BCE?".
Example questions: "which planets are retrograde right now?",
"what sign was Guru in when I was born?", "sky snapshot for 500 CE".
Args:
time: ISO 8601 UTC datetime (e.g. "2026-03-22T12:00:00Z").
Negative years allowed (e.g. "-3101-02-18T00:00:00Z").
Defaults to now.
ayanamsa: "Lahiri" (Vedic sidereal, default) or "Sayan" (tropical).
grah: Optional single planet (Surya, Chandra, Mangala, Budha,
Guru, Shukra, Shani, Rahu, Ketu) — returns just that one.
Returns:
Dict with time, ayanamsa, paksha (Shukla/Krishna), and grahas mapping
each planet to its rashi name and retrograde status (or the single
grah's status when `grah` is given).
Search up to 10,000 years (-5000..+5000) for every date whose sunrise
panchang matches the given constraints — instant, from precomputed
tables. This answers questions no LLM can: dating inscriptions and
historical events, Hindu→Gregorian conversion, recurrence questions.
Example questions:
- "An inscription says Kartika Shukla 5, Thursday, in the 1200s CE —
which dates fit?" → masa=Kartika, paksha=Shukla, tithi=5,
vaar=Thursday, range 1200..1300.
- "Convert Vikram Samvat 1680 Kartik Shukla 5 to a Gregorian date"
→ same constraints over the matching Gregorian years (VS ≈ year+57);
check vikram_samvat in the results.
- "When does my janma-tithi (Shravana Krishna Ashtami) fall in 2027?"
- "Which years this century does Diwali (Kartika Amavasya) fall on a
Sunday?"
- "Full moon in Chitra nakshatra in the 5th century BCE" → tithi=Purnima,
nakshatra=Chitra, range -0500..-0400.
Give at least one of tithi/nakshatra/masa. All names fuzzy-match
("Ekadashi", "ekadasi", or the number 11 all work).
Args:
start_date, end_date: YYYY-MM-DD; negative years allowed
("-0500-01-01"). Wide ranges are fine — results are capped.
tithi: Name or number 1..30 (1..15 Shukla, 16..30 Krishna;
Purnima=15, Amavasya=30). A bare name like "Ekadashi"
matches both pakshas unless paksha is given.
paksha: "Shukla" (waxing) or "Krishna" (waning).
nakshatra: Name or number 1..27 (Ashwini=1 .. Revati=27). This is the
MOON's nakshatra at sunrise.
masa: Amavasyant Hindu month name or number 1..12
(Chaitra=1 .. Phalguna=12).
vaar: Weekday — English ("Thursday") or Vedic ("Guruvara").
tz_offset_hours: Local offset for civil-day assignment (default 5.5
= India).
max_results: Cap (≤200); response flags truncation.
Returns matched dates each with its full sunrise panchang (tithi,
nakshatra, masa with adhik flag, vikram samvat, weekday). Ayanamsa is
Lahiri. Dates are proleptic Gregorian, astronomical year numbering.
For an app-exact panchang of any matched date, certify it with the
HinduCalendar MCP server's get_panchang.
Find every window when the given planets occupy the same rashi (sign)
simultaneously — conjunction-class questions over ±5000 years, instant.
Example questions: "when are Guru and Shani next together in Kumbha?"
(the ~60-year social-cycle conjunction), "when were Guru, Shani and
Mangala last in one sign?", "were all planets really in one rashi at the
Kali Yuga epoch (Feb 3102 BCE)?", "great conjunctions in the 1st
millennium".
Resolution is the rashi (30°) — for exact-degree conjunctions treat these
windows as candidates. Including Chandra gives many short (~2 day)
windows; omit it for long-period questions.
Args:
grahas: Two or more of: Surya, Chandra, Mangala, Budha, Guru,
Shukra, Shani, Rahu, Ketu.
start_date, end_date: YYYY-MM-DD, negative years allowed.
rashi: Optional sign filter — Vedic (Mesh..Meen) or western
(Aries..Pisces) name, or 1..12. Omit = any shared sign.
ayanamsa: "Lahiri" (default) or "Sayan".
max_results: Cap (≤100); response flags truncation.