astro-mcp
astro-mcp
Астрологический MCP-сервер — инструменты астрологии высокой точности для LLM-агентов.
Реализует 14 инструментов на основе Swiss Ephemeris (pyswisseph) и интегрируется с любым клиентом Model Context Protocol (Claude Desktop и др.).
Tools
# | Name | Description |
1 |
| Полная натальная карта: планеты, углы, дома, аспекты |
2 |
| Транзитные аспекты к натальной карте, фаза Луны, лунные циклы и холостая Луна |
3 |
| Прогрессии «день за год» + Солярная дуга |
4 |
| Годовая солярная карта |
5 |
| Оценка кандидатных времён рождения по событиям жизни |
6 |
| Ежемесячная лунная карта (лунные возвращения) |
7 |
| Синастрия: межкартные аспекты + наложения домов |
8 |
| Композитная карта по средним точкам или Дэвисону |
9 |
| Годовая профекция — хозяин года и активированные дома |
10 |
| 24 планетарных часа для любого дня/места |
11 |
| 12 арабских частей / жребиев (Фортуна, Дух, Брак и др.) |
12 |
| Таблица положений планет за диапазон дат |
13 |
| Поиск точных дат конкретного аспекта |
14 |
| Антисции и контра-антисции, с опциональными транзитными контактами |
Related MCP server: auseklis
Installation
# 1. Clone
git clone https://github.com/DrewCyber/astro-mcp
cd astro-mcp
# 2. Create virtual environment
python3.11 -m venv .venv
source .venv/bin/activate
# 3. Install package + dev dependencies
pip install -e ".[dev]"
# 4. Download Swiss Ephemeris data files
bash scripts/download_ephe.sh
# 5. Set environment variable
export EPHE_PATH="$(pwd)/ephe"
# 6. Run tests
pytest tests/Claude Desktop configuration
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"astro": {
"command": "/path/to/astro-mcp/.venv/bin/python",
"args": ["-m", "astro_mcp"],
"env": {
"EPHE_PATH": "/path/to/astro-mcp/ephe",
"GEOCODING_PROVIDER": "nominatim",
"GEOCODING_USER_AGENT": "astro-mcp/1.0",
"LOG_LEVEL": "WARNING"
}
}
}
}Environment Variables
Variable | Default | Description |
|
| Путь к файлам данных Swiss Ephemeris |
|
|
|
| — | Требуется, если |
|
| User-agent для Nominatim |
|
| Размер LRU-кэша для результатов геокодирования |
|
| Постоянный кэш геокодирования, чтобы запросы переживали перезапуск. Хранит только город → широта/долгота/часовой пояс. Установите пустым для отключения |
|
|
|
|
| Глобальный множитель орбиса (0.1–3.0) |
|
|
|
|
| Уровень логирования Python |
Architecture
src/astro_mcp/
├── server.py # MCP server — tool registration and dispatch
├── schemas.py # Pydantic input models (source of the JSON schemas)
├── config.py # Settings from environment variables
├── core/
│ ├── models.py # Data models and astrological constants
│ ├── errors.py # AstroError and the structured error codes
│ ├── ephemeris_provider.py # Swiss Ephemeris wrapper (pyswisseph)
│ ├── geocoding.py # City → lat/lon/tz (geopy + timezonefinder)
│ ├── moon.py # Lunar phase, lunations and void-of-course
│ └── formatters.py # LLM-optimized serialization
└── tools/
├── natal.py # Tool 1
├── transits.py # Tool 2
├── progressions.py # Tool 3
├── returns.py # Tools 4 + 6
├── rectification.py # Tool 5
├── synastry.py # Tools 7 + 8
├── profections.py # Tool 9
├── planetary_hours.py # Tool 10
├── arabic_parts.py # Tool 11
├── ephemeris.py # Tools 12 + 13
└── antiscia.py # Tool 14Output Format
Все инструменты возвращают компактный JSON без пробелов для минимизации токенов контекста LLM (примерно на 75% меньше, чем подробный JSON). Коды планет сокращены (Su, Mo, Me и т.д.), аспекты используют 3-буквенные коды (Cnj, Tri, Squ), а флаг ретроградности ("R":true) опускается, когда планета директная, чтобы сэкономить дополнительные токены.
Сбои используют тот же контракт, поэтому клиенту никогда не приходится разбирать текст:
{"error":true,"code":"INPUT_ERROR","message":"Invalid arguments for 'calculate_natal_chart'.","hint":"birth_location.lat: Input should be less than or equal to 90"}Planet Codes
Поддерживаемые коды во всех инструментах:
SuСолнцеMoЛунаMeМеркурийVeВенераMaМарсJuЮпитерSaСатурнUrУранNeНептунPlПлутонChХиронLiЧёрная Луна Лилит (средний апогей)NNСеверный узел (по умолчанию истинный; средний, когдаNODE_TYPE=mean)SNЮжный узелАстероиды (где поддерживается
include_asteroids):CeЦерера,PaПаллада,JunЮнона,VesВеста
API Notes
get_ephemerisпринимает либо одинplanet, либо список планет.get_ephemeris.stepподдерживает1h,2h,3h,6h,12h,1d,7d,30d.get_ephemerisтеперь возвращает полеtimezoneи форматируетdtвoutput_tz.find_aspect_exact_dates.modeподдерживает:transit-to-transitдля двух движущихся телtransit-to-natalдля транзита к натальной планете/углуauto(по умолчанию) определяет режим по наличиюbirth_*
Testing
pytest tests/ -v --cov=src/astro_mcp --cov-report=term-missingРегрессионные тесты эталонных карт находятся непосредственно в тестовом наборе (tests/test_audit_regressions.py) и были проверены по Astro.com и Solar Fire.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Swiss Ephemeris for AI agents: exact natal charts, transits, synastry and birth-place resolution
Western natal charts, horoscopes, transits and synastry for AI agents, verified vs NASA JPL.
Real astrology for AI agents: cosmic weather, synastry, timing, astrocartography, and divination.
Vedic and Western astrology for AI agents: charts, dasha, matchmaking, panchanga, numerology, tarot.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMulti-tradition astrology engine that computes real birth charts, transits, and synastry for AI agents via MCP tools.8-
- AlicenseAqualityCmaintenanceAstrology MCP server that computes natal charts, transits, synastry, progressions, returns, eclipses, retrogrades, and moon phases from a real ephemeris, enabling AI agents to provide accurate astrological calculations without hallucination.1261 npm1MIT
- AlicenseAqualityDmaintenanceCalculates astrological natal charts with high precision using Swiss Ephemeris, supporting multiple house systems and location inputs.218 npm5AGPL 3.0
- AlicenseAqualityAmaintenanceVedic and Western astrology for AI agents: 103 read-only tools for natal charts, dasha, kundali matching with Rajju and Vedha vetoes, panchanga, numerology and tarot, backed by Swiss Ephemeris and verified against NASA JPL Horizons.103MIT