# Auseklis

> Astrology MCP server — natal charts, transits, synastry, eclipses, retrogrades. Real ephemeris, no API keys, MIT-licensed.

- **Type:** MCP server
- **Install:** `agentstack add mcp-igmizo-auseklis`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [igmizo](https://agentstack.voostack.com/s/igmizo)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [igmizo](https://github.com/igmizo)
- **Source:** https://github.com/igmizo/auseklis

## Install

```sh
agentstack add mcp-igmizo-auseklis
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# auseklis

**Astrology MCP server** — natal charts, transits, synastry, progressions, returns, eclipses, retrogrades, moon phases. Computed from a real ephemeris, so AI agents stop hallucinating planet positions.

Named after the Latvian morning star. MIT-licensed with **no AGPL ephemeris data** — see [Licensing](#licensing).

## Tools

| Tool | What it does |
| --- | --- |
| `get_planet_position` | Position of one body/point at a moment (sign, degree, speed, retrograde) |
| `compute_natal_chart` | Full birth chart: 13 points, houses, angles, Part of Fortune, aspects |
| `compute_transits` | Aspects from the current (or any) sky to a natal chart |
| `compute_progressions` | Secondary progressions (day-for-a-year) |
| `compute_synastry` | Cross-chart aspects between two people |
| `compute_composite_chart` | Midpoint composite chart of a relationship |
| `find_returns` | Solar/lunar/planetary returns (exact moments) |
| `get_moon_phase` | Phase, illumination, Moon sign, next four quarters |
| `find_eclipses` | Lunar/solar eclipses with signs, incl. local visibility |
| `find_retrograde_periods` | Station retrograde/direct moments for any planet |
| `find_sign_ingresses` | When a body changes signs (equinoxes, Saturn ingresses, …) |
| `find_aspect_times` | Exact moment a transit perfects ("when does Saturn square my Sun?") |

Plus two prompts (`natal_chart_reading`, `current_sky_report`) and a glossary resource (`auseklis://glossary`).

**Features:** local birth times with IANA timezones (full historical DST handling) · tropical and sidereal (Lahiri, Fagan/Bradley) zodiacs · whole-sign, equal, Porphyry, and Placidus houses · mean lunar nodes and Black Moon Lilith · Part of Fortune (classical day/night formula).

## Installation

### Claude Code

```bash
claude mcp add auseklis -- npx -y auseklis
```

### Claude Desktop / any MCP client (stdio)

```json
{
  "mcpServers": {
    "auseklis": {
      "command": "npx",
      "args": ["-y", "auseklis"]
    }
  }
}
```

No API keys, no configuration — the ephemeris is computed locally.

### Desktop Extension

Download `auseklis.mcpb` from the [releases page](https://github.com/igmizo/auseklis/releases) and double-click to install in Claude Desktop. Or build it yourself: `npm run bundle`.

### Remote (self-hosted)

The same server runs as a Cloudflare Worker speaking Streamable HTTP. Deploy it to your own account:

```bash
npm run deploy   # wrangler deploy
claude mcp add --transport http auseklis https://auseklis..workers.dev/mcp
```

Set the `MCP_SHARED_SECRET` secret to require a bearer token.

## Library usage

The ephemeris core (everything under `src/ephemeris/`) is importable directly — no MCP client or subprocess needed. This is the right shape for serverless runtimes (Vercel, Workers), where spawning `npx auseklis` per request is not an option:

```ts
import { computeNatalChart } from "auseklis/ephemeris";
import { findRetrogradePeriods } from "auseklis/ephemeris/events";
import { findEclipses } from "auseklis/ephemeris/eclipses";

const chart = computeNatalChart({
  utc: "1990-03-15T13:45:00Z",
  location: { latitude: 56.95, longitude: 24.11 }, // Riga
  houseSystem: "placidus",
});
```

`auseklis/ephemeris` carries the chart math (natal, transits, synastry, composite, progressions, single positions, angles) plus `resolveInstant` for local-time → UTC conversion; `…/events` and `…/eclipses` carry the time-domain searches. Fully typed, ESM only, no data files.

## Example questions to ask

- *"Compute my natal chart — born 15 March 1990, 15:45 in Riga."*
- *"What's transiting my Sun this month?"*
- *"When exactly is my Saturn return?"*
- *"Synastry between me and my partner?"* (two birth date/times)
- *"When is Mercury retrograde in 2027, and in which signs?"*
- *"Is tonight's full moon visible as an eclipse from here?"*

The model handles place-name → coordinates; the server handles local-time → UTC via the IANA timezone database.

## Accuracy

Positions come from [astronomy-engine](https://github.com/cosinekitty/astronomy) (VSOP87 + NOVAS C 3.1): ±1 arcminute for 1700–2200, far below the 1° resolution astrological interpretation uses. Event searches (stations, ingresses, returns, quarters) are refined to ~1 second of time. Verified in CI against published eclipse dates, the 2026 equinox, NOVAS Sun positions, and an independent Placidus implementation.

## Architecture

```
src/
├── ephemeris/        Astrology core — backend-agnostic
│   ├── engine.ts     EphemerisBackend interface + astronomy-engine adapter (the swap seam)
│   ├── index.ts      Charts, aspects, synastry, composite, progressions
│   ├── events.ts     Time searches: returns, stations, ingresses, aspect times, moon phases
│   ├── eclipses.ts   Eclipse searches with astrological context
│   ├── houses.ts     Whole-sign, equal, Porphyry, Placidus (semi-arc solver)
│   ├── points.ts     Mean lunar nodes, Black Moon Lilith
│   ├── sidereal.ts   Ayanamsa (Lahiri, Fagan/Bradley)
│   └── time.ts       IANA timezone → UTC conversion (no dependencies, uses Intl)
├── mcp/              Tool/prompt/resource definitions on @modelcontextprotocol/sdk
├── stdio.ts          Local entry — `npx auseklis`
└── index.ts          Remote entry — Cloudflare Worker, Streamable HTTP via @hono/mcp
```

The `EphemerisBackend` interface in `engine.ts` is the deliberate swap seam: a future Rust/WASM clean-room ephemeris only needs to reimplement that one interface.

## Development

```bash
npm install
npm run typecheck   # strict TS
npm test            # 23-check smoke suite (ephemeris references + MCP end-to-end)
npm run build       # emit dist/
npm run dev         # local Cloudflare Worker on :8787
npx @modelcontextprotocol/inspector node dist/stdio.js   # poke tools interactively
```

See [docs/tools.md](docs/tools.md) for the full tool reference and [docs/architecture.md](docs/architecture.md) for design notes.

## Licensing

MIT. This project deliberately avoids the Swiss Ephemeris (`.se1`/`.se2` data files and the `sweph` bindings): those are AGPL-licensed, which would impose AGPL obligations on any network service built on them. Everything here is computed from MIT-licensed code with no external data files — safe to embed, fork, and deploy commercially. Details in [NOTICE](NOTICE).

The trade-off: no Chiron or asteroids (they need ephemeris data files). They are on the roadmap via public-domain JPL-derived data.

## Roadmap

- v1: Rust/WASM clean-room ephemeris backend behind the same `EphemerisBackend` seam
- Chiron + major asteroids from public-domain JPL data
- Koch houses, declination/parallel aspects

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [igmizo](https://github.com/igmizo)
- **Source:** [igmizo/auseklis](https://github.com/igmizo/auseklis)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** yes
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-igmizo-auseklis
- Seller: https://agentstack.voostack.com/s/igmizo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
