Field notes from the Asterwise team.
How we keep ancient calculation correct, fast and verifiable, and what we learn while building it. Engineering, method, and the occasional product note.
What is an astrology MCP server, and why every AI astrology product needs one
LLMs cannot compute planetary positions; they approximate them from training data. For Jyotish calculation, that distinction has real consequences. Here's what an MCP server changes.
# claude connects, then calls real math mcp add asterwise \ https://mcp.asterwise.com/mcp # → OAuth 2.1 · scope asterwise:read # → 103 tools, backed by Swiss Ephemeris tools.call("natal", { ... }) # arc-second, signed, deterministic
The five levels of Vimshottari Dasha, and why two is the common cap
Vimshottari defines five nested time periods. Many implementations return two. The difference between a 17-year window and a 3-day window is the entire timing system.
MethodologyRajju and Vedha as hard vetoes: why they are not part of the Guna Milan score
Many implementations fold Rajju and Vedha into the score as penalties. Classical texts treat them as conditions prior to the score. Why that architectural distinction matters.
Deep DiveBhava Chalit and Rashi house: why every planet has two house positions
A planet near a cusp occupies one house by sign and a different one by spatial position. Both are correct; they answer different questions. Many implementations return only one.
MethodologyCombustion and deep combustion: why they are two fields, not one
Classical Jyotish describes two distinct states of solar proximity. Many implementations return one boolean, collapsing a distinction the tradition treats as meaningful.