Skip to main content
Glama
DrewCyber

astro-mcp

by DrewCyber

astro-mcp

Servidor MCP Astrológico — herramientas de astrología de alta precisión para agentes LLM.

Implementa 14 herramientas respaldadas por Swiss Ephemeris (pyswisseph) y se integra con cualquier cliente de Model Context Protocol (Claude Desktop, etc.).

Tools

#

Name

Description

1

calculate_natal_chart

Carta natal completa: planetas, ángulos, casas, aspectos

2

calculate_transits

Aspectos de tránsito a la carta natal, fase lunar, lunaciones y luna vacía de curso

3

calculate_secondary_progressions

Progresiones de un día por año + Arco Solar

4

calculate_solar_return

Carta de retorno solar anual

5

calculate_rectification_hints

Puntúa tiempos de nacimiento candidatos contra eventos de vida

6

calculate_lunar_return

Carta(s) de retorno lunar mensual

7

calculate_synastry

Aspectos entre cartas + superposiciones de casas

8

calculate_composite_chart

Carta compuesta de punto medio o Davison

9

calculate_profections

Profección anual — señor del año y casas activadas

10

get_planetary_hours

24 horas planetarias para cualquier día/ubicación

11

calculate_arabic_parts

12 Partes / Suertes arábigas (Fortuna, Espíritu, Matrimonio, etc.)

12

get_ephemeris

Tabla de posiciones planetarias en un rango de fechas

13

find_aspect_exact_dates

Encuentra fechas exactas de un aspecto específico

14

calculate_antiscia

Puntos de antiscia y contra-antiscia, con contactos de tránsito opcionales

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

Añade a ~/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

Ruta a los archivos de datos .se1 de Swiss Ephemeris

GEOCODING_PROVIDER

nominatim

nominatim o opencage

OPENCAGE_API_KEY

—

Requerido si GEOCODING_PROVIDER=opencage

GEOCODING_USER_AGENT

astro-mcp/1.0

User-agent de Nominatim

GEOCODE_CACHE_SIZE

512

Tamaño de caché LRU para resultados de geocodificación

GEOCODE_CACHE_PATH

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

Caché de geocodificación persistente para que las búsquedas sobrevivan a un reinicio. Almacena solo ciudad → lat/lon/tz. Déjalo vacío para desactivar

DEFAULT_HOUSE_SYSTEM

P

P=Placidus, W=Whole Sign, K=Koch

DEFAULT_ORB_FACTOR

1.0

Multiplicador de orbe global (0.1–3.0)

NODE_TYPE

true

true=Nodo Verdadero, mean=Nodo Medio (aplicado de manera consistente en todas las herramientas)

LOG_LEVEL

WARNING

Nivel de registro de 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

Todas las herramientas devuelven JSON compacto sin espacios en blanco para minimizar los tokens de contexto del LLM (~75% más pequeño que el JSON verboso). Los códigos de planetas están abreviados (Su, Mo, Me, etc.), los aspectos usan códigos de 3 letras (Cnj, Tri, Squ), y la bandera de retrogradación ("R":true) se omite cuando es directo para ahorrar tokens adicionales.

Los fallos usan el mismo contrato, por lo que un cliente nunca tiene que analizar prosa:

{"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

Códigos soportados en todas las herramientas:

  • Su Sol

  • Mo Luna

  • Me Mercurio

  • Ve Venus

  • Ma Marte

  • Ju Júpiter

  • Sa Saturno

  • Ur Urano

  • Ne Neptuno

  • Pl Plutón

  • Ch Quirón

  • Li Black Moon Lilith (Apogeo Medio)

  • NN Nodo Norte (Nodo Verdadero por defecto; Nodo Medio cuando NODE_TYPE=mean)

  • SN Nodo Sur

  • Asteroides (donde include_asteroids es compatible): Ce Ceres, Pa Palas, Jun Juno, Ves Vesta

API Notes

  • get_ephemeris acepta un solo planet o una lista de planetas.

  • get_ephemeris.step soporta 1h, 2h, 3h, 6h, 12h, 1d, 7d, 30d.

  • get_ephemeris ahora devuelve un campo timezone y formatea dt en output_tz.

  • find_aspect_exact_dates.mode soporta:

    • transit-to-transit para dos cuerpos en movimiento

    • transit-to-natal para tránsito a un planeta/ángulo natal

    • auto (por defecto) infiere el modo a partir de la presencia de birth_*

Testing

pytest tests/ -v --cov=src/astro_mcp --cov-report=term-missing

Las regresiones de cartas doradas viven en línea en la suite de pruebas (tests/test_audit_regressions.py) y fueron verificadas contra Astro.com y 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