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

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Multi-tradition astrology engine that computes real birth charts, transits, and synastry for AI agents via MCP tools.
    3
  • A
    license
    A
    quality
    A
    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
    74
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Precision-audited astrology MCP for natal charts, transits, synastry and moon phases. No API key.
    10
    124
    MIT

View all related MCP servers

Related MCP Connectors

  • Sub-arcsecond ephemeris and astrology on NASA JPL DE440: natal, transits, eclipses, Human Design.

  • Zi Wei Dou Shu for AI agents: free natal charts, six transit levels, and optional readings.

  • 60+ units, live FX, timezones, and date arithmetic for AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DrewCyber/astro-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server