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

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