I Stopped Rebuilding the Telescope and Built a Lens Instead.....
Source: Dev.to
Background
In my previous work translating the Surya Siddhanta (an ancient Indian astronomical text), I spent months manually calculating planetary positions to verify Sanskrit verses against modern ephemerides. The process was tedious and repetitive, requiring bespoke simulations for a single cultural context.
When I moved on to my Final Year Project focusing on Mayan and Chinese astronomy, I almost fell into the same trap. I started coding a new simulation for the Mayan calendar and then planned another one for the Han Dynasty. I realized I was rebuilding the “telescope” every time I wanted to look at a different star.
Sky Culture MCP
That realization led to the creation of Sky Culture MCP, a computational microservice that abstracts orbital mechanics, allowing AI agents to focus on cultural interpretation.
The core philosophy is simple: change the lens, not the telescope.
- Telescope: the physics engine—the complex math required to calculate where a planet was 2,000 years ago.
- Lens: the specific cultural context (names, dates, and significance).
Model Context Protocol (MCP)
The service uses the Model Context Protocol (MCP) to bridge high‑precision astronomical data and Large Language Models (LLMs) such as Claude.
| Component | Description |
|---|---|
| Ephemeris | NASA JPL DE421 (high precision from 1900 BC to 2050 AD) |
| Physics Engine | Skyfield (vector astrometry) |
| Time Standard | Barycentric Dynamical Time (TDB) |
Instead of asking an LLM to “hallucinate” where Mars was during a specific Mayan Long Count date, the agent queries the MCP server. The server handles the vector math and returns precise J2000 coordinates.
Primary Function Signature
def convert_culture_to_coordinates(culture_id: str, object_name: str, date_str: str) -> dict:
"""
Takes a cultural input and returns a scientific output.
"""
Example
- Input:
culture_id="mayan",object_name="chak_ek",date_str="M:9,16,4,10,8" - Output: Julian Day Number, Right Ascension & Declination
Lens Library (JSON)
The cultural “lenses” are defined in a JSON library that maps native names to modern identifiers.
{
"chinese_han": {
"name": "Chinese (Han)",
"objects": {
"yinghuo": {
"name": "Yinghuo (Fire Star)",
"modern_id": "mars"
}
}
},
"mayan": {
"name": "Mayan",
"objects": {
"chak_ek": {
"name": "Chak Ek (Great Star)",
"modern_id": "venus"
}
}
}
}
Docker Integration
Running the engine as a Docker container makes it easy to integrate into daily workflows. The following snippet shows how to add the service to a Claude desktop configuration:
{
"mcpServers": {
"sky-culture-lite": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"yourname/sky-culture-lite"
]
}
}
}
Now, when chatting with Claude about a historical text, the AI can call this tool to obtain ground‑truth astronomical data without opening a separate simulation program.
Conclusion
This project demonstrates a shift in how AI can be used for history and science:
- Do not rely on LLMs for precise math (they are prone to errors).
- Offload physics to a deterministic engine (Skyfield).
- Use MCP as a bridge, allowing the AI to “put on a Mayan lens” or a “Han Dynasty lens” and see the sky exactly as those cultures did, while focusing on interpretation, poetry, and meaning.
The approach enables accurate, culturally contextual astronomical queries, empowering researchers in archaeoastronomy and related fields.