kundali-mcp
A Vedic astrology MCP server that computes birth charts, dashas, transits, and yogas locally using Swiss Ephemeris, enabling an LLM to interpret horoscopes and provide personalized advice.
README
Kundali — Vedic Astrology MCP server
An MCP server that exposes a person's Vedic (Jyotish) horoscope as raw, structured chart data — so an LLM can read the chart and do the interpretation itself, advising on the present situation.
Everything is computed locally with Swiss Ephemeris (jyotish.py): no
scraping, works offline. The only network call is optional place geocoding
(OpenStreetMap). Calculations use the sidereal zodiac, Lahiri ayanamsa, mean
lunar node, and whole-sign houses — validated against a reference chart to
within arc-minutes.
Design note: the tools return facts (positions, dignities, houses, dasha periods, transits, yogas), not predictions. The LLM supplies the interpretation — which makes readings conversational and tailored.
Setup
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python mcp_server.py # stdio transport
Register with Claude Code
claude mcp add kundali -- /path/to/kundali-app/.venv/bin/python \
/path/to/kundali-app/mcp_server.py
Register with Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (absolute paths):
{
"mcpServers": {
"kundali": {
"command": "/path/to/kundali-app/.venv/bin/python",
"args": ["/path/to/kundali-app/mcp_server.py"]
}
}
}
Tools
| Tool | Returns (raw data) |
|---|---|
geocode_place |
City → candidate lat/lon + timezone (to confirm an ambiguous birthplace) |
get_birth_chart |
Ascendant, panchang, dasha balance, and a per-planet table: sign, exact degree, nakshatra+pada, retrograde, whole-sign house, dignity, aspected houses, + house-occupancy map |
get_dashas |
Vimshottari Maha → Antar → Pratyantar tree, lifetime Mahadasha timeline, with the periods running on as_of flagged |
get_sade_sati |
Transit Saturn vs natal Moon: house, Sade Sati/small-Panoti status, phase (Rising/Peak/Setting), Saturn's sign ingress/egress dates |
get_current_transits |
Each planet's transiting sign/degree/nakshatra/retro, with house from natal lagna and from natal Moon |
get_yogas |
Detected yogas with the placement rule that triggered each |
Birth fields (same for every chart tool)
name— person's namedate—YYYY-MM-DDtime— 24h local clock,HH:MMorHH:MM:SSplace— birth city/town (geocoded if lat/lon omitted)sex—male/femalelatitude/longitude— optional decimal degrees (+N/+E) to override geocodingtz_offset— optional base (non-DST) UTC offset in hours, e.g.5.5for IST
get_dashas, get_sade_sati, get_current_transits also accept optional
as_of (YYYY-MM-DD) to evaluate a past or future date (defaults to today).
Example prompt
"I was born on 1990-01-15 at 14:30 in Mumbai. Which dasha am I in, am I under Sade Sati, and what does my chart suggest about my career right now?"
The model calls get_birth_chart, get_dashas, get_sade_sati,
get_current_transits, then interprets and advises.
These are traditional astrological interpretations, not deterministic predictions — the server's instructions tell the model to frame them as such.
Yoga coverage
Curated, each labelled with its rule: Gaja-Kesari, Budha-Aditya, Chandra-Mangala, the five Pancha Mahapurusha (Ruchaka/Bhadra/Hamsa/Malavya/ Sasa), Kemadruma, Kendra–Trikona Raj Yoga, Neecha-Bhanga (partial). Not exhaustive — absence isn't proof of absence.
Validation
Validated against an independent Vedic reference for a sample birth chart: every planet's sign/nakshatra/pada/retrograde/dignity/house matches; ascendant within ~20″, dasha balance within a few days, Sade Sati dates within a day, panchang exact.
Architecture
mcp_server.py FastMCP tools + presentation (formats jyotish output)
jyotish.py Swiss Ephemeris engine: positions, chart, panchang, dasha,
sade sati, transits, yogas (pure computation, no network)
geo.py place -> coordinates + timezone (OpenStreetMap / timezonefinder)
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.