暂无描述

Lukas Goldschmidt 8a9c91ff8b v0.1: core sky-state slice 2 天之前
src 1f1f31fe7b v0.1: core sky-state slice 2 天之前
tests 1f1f31fe7b v0.1: core sky-state slice 2 天之前
.env.example 1f1f31fe7b v0.1: core sky-state slice 2 天之前
.gitignore 1f1f31fe7b v0.1: core sky-state slice 2 天之前
AGENTS.md 1f1f31fe7b v0.1: core sky-state slice 2 天之前
IMPLEMENTATION_PLAN.md 1f1f31fe7b v0.1: core sky-state slice 2 天之前
README.md 1f1f31fe7b v0.1: core sky-state slice 2 天之前
RELEASE_NOTES.md 1f1f31fe7b v0.1: core sky-state slice 2 天之前
initial_idea.md 1f1f31fe7b v0.1: core sky-state slice 2 天之前
killserver.sh 1f1f31fe7b v0.1: core sky-state slice 2 天之前
main.py 1f1f31fe7b v0.1: core sky-state slice 2 天之前
requirements.txt 1f1f31fe7b v0.1: core sky-state slice 2 天之前
restart.sh 1f1f31fe7b v0.1: core sky-state slice 2 天之前
run.sh 1f1f31fe7b v0.1: core sky-state slice 2 天之前
tests.sh 1f1f31fe7b v0.1: core sky-state slice 2 天之前

README.md

Ephemeris MCP

Ephemeris MCP is a standalone celestial computation engine exposed through MCP. v0.1 ships the core sky-state slice: planetary positions, solar events, lunar state, moon phase, sidereal time, constellation lookup, discovery, health, and root. Satellite tooling remains planned for later slices.

The server binds to 0.0.0.0 and the current reachable instance is 192.168.0.249:7015.

What it is

  • A shared sky-state service for time- and location-dependent calculations
  • A source of planetary positions, solar events, lunar state, sidereal time, and constellation lookup
  • A convenience moon-phase tool for quick manual checks
  • A utility layer for downstream consumers that want raw sky data

What it is not

  • Not an interpretation engine
  • Not a charting service
  • Not a consumer-facing astrology app
  • Not a finished satellite tracking stack in v0.1

Project direction

The implementation is intentionally split between:

  • objective ephemeris computation
  • cache-backed retrieval of repeatable results
  • a small MCP surface for downstream consumers
  • a later satellite slice that will add TLE and pass prediction support

The current design and tool intent are described in:

Repo layout

  • main.py - uvicorn entry point
  • src/ephemeris_mcp/ - application code
  • tests/ - automated checks
  • run.sh / restart.sh / killserver.sh - service helpers
  • tests.sh - test runner
  • data/ - local ephemeris/cache data
  • logs/ - runtime logs
  • mcporter - preferred manual client for smoke tests

mcporter Examples

Use the repo's configured MCP client pattern:

mcporter --config "$CONFIG" list ephemeris

Tool calls follow the same shape:

mcporter --config "$CONFIG" call ephemeris.get_moon_phase --args '{"datetime":"2026-05-10T12:00:00Z"}'

The moon-phase response includes the next major phase as both an ISO timestamp and a compact relative string:

{
  "phase_name": "Last Quarter",
  "next_major_phase": {
    "phase_name": "New Moon",
    "at_utc": "2026-05-16T03:18:00Z",
    "in_text": "5d 15h 18m"
  }
}
mcporter --config "$CONFIG" call ephemeris.get_lunar_state --args '{"datetime":"2026-05-10T12:00:00Z","lat":52.52,"lon":13.405}'
mcporter --config "$CONFIG" call ephemeris.get_planetary_positions --args '{"datetime":"2026-05-10T12:00:00Z","lat":52.52,"lon":13.405}'

The server is exposed on the LAN at 192.168.0.249:7015 and mounts MCP at /mcp/sse.

Working notes

  • Keep the server deterministic and easy to reason about.
  • Prefer structured outputs over free-form text.
  • Keep the repo docs and wiki reference aligned when the scope changes.
  • Keep future ideas in the plan even if they are not in v0.1 yet.