Skip to main content
Glama
DrewCyber

astro-mcp

by DrewCyber

astro-mcp

Астрологический MCP-сервер — инструменты астрологии высокой точности для LLM-агентов.

Реализует 14 инструментов на основе Swiss Ephemeris (pyswisseph) и интегрируется с любым клиентом Model Context Protocol (Claude Desktop и др.).

Tools

#

Name

Description

1

calculate_natal_chart

Полная натальная карта: планеты, углы, дома, аспекты

2

calculate_transits

Транзитные аспекты к натальной карте, фаза Луны, лунные циклы и холостая Луна

3

calculate_secondary_progressions

Прогрессии «день за год» + Солярная дуга

4

calculate_solar_return

Годовая солярная карта

5

calculate_rectification_hints

Оценка кандидатных времён рождения по событиям жизни

6

calculate_lunar_return

Ежемесячная лунная карта (лунные возвращения)

7

calculate_synastry

Синастрия: межкартные аспекты + наложения домов

8

calculate_composite_chart

Композитная карта по средним точкам или Дэвисону

9

calculate_profections

Годовая профекция — хозяин года и активированные дома

10

get_planetary_hours

24 планетарных часа для любого дня/места

11

calculate_arabic_parts

12 арабских частей / жребиев (Фортуна, Дух, Брак и др.)

12

get_ephemeris

Таблица положений планет за диапазон дат

13

find_aspect_exact_dates

Поиск точных дат конкретного аспекта

14

calculate_antiscia

Антисции и контра-антисции, с опциональными транзитными контактами

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

EPHE_PATH

./ephe

Путь к файлам данных Swiss Ephemeris .se1

GEOCODING_PROVIDER

nominatim

nominatim или opencage

OPENCAGE_API_KEY

—

Требуется, если GEOCODING_PROVIDER=opencage

GEOCODING_USER_AGENT

astro-mcp/1.0

User-agent для Nominatim

GEOCODE_CACHE_SIZE

512

Размер LRU-кэша для результатов геокодирования

GEOCODE_CACHE_PATH

~/.cache/astro-mcp/geocode.json

Постоянный кэш геокодирования, чтобы запросы переживали перезапуск. Хранит только город → широта/долгота/часовой пояс. Установите пустым для отключения

DEFAULT_HOUSE_SYSTEM

P

P=Плацидус, W=Целые знаки, K=Кох

DEFAULT_ORB_FACTOR

1.0

Глобальный множитель орбиса (0.1–3.0)

NODE_TYPE

true

true=Истинный узел, mean=Средний узел (применяется единообразно во всех инструментах)

LOG_LEVEL

WARNING

Уровень логирования 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 14

Output 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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Multi-tradition astrology engine that computes real birth charts, transits, and synastry for AI agents via MCP tools.
    8
    -
  • A
    license
    A
    quality
    C
    maintenance
    Astrology 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.
    12
    61 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Calculates astrological natal charts with high precision using Swiss Ephemeris, supporting multiple house systems and location inputs.
    2
    18 npm
    5
    AGPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Vedic 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.
    103
    MIT