|
|
1 개월 전 | |
|---|---|---|
| data | 1 개월 전 | |
| src | 1 개월 전 | |
| tests | 1 개월 전 | |
| .dockerignore | 1 개월 전 | |
| .env.example | 1 개월 전 | |
| .gitignore | 1 개월 전 | |
| AGENTS.md | 1 개월 전 | |
| Dockerfile | 1 개월 전 | |
| IMPLEMENTATION_PLAN.md | 1 개월 전 | |
| README.md | 1 개월 전 | |
| RELEASE_NOTES.md | 1 개월 전 | |
| docker-compose.yml | 1 개월 전 | |
| initial_idea.md | 2 달 전 | |
| killserver.sh | 2 달 전 | |
| main.py | 2 달 전 | |
| requirements.txt | 2 달 전 | |
| restart.sh | 2 달 전 | |
| run.sh | 2 달 전 | |
| tests.sh | 2 달 전 |
Ephemeris MCP is a standalone Swiss Ephemeris computation service exposed through MCP. v0.2 provides planetary positions, house cusps, lunar state, sidereal time, and related astronomical data to downstream consumers. astro-mcp is the first downstream consumer; others (e.g. satrack-mcp) are planned.
The server binds to 0.0.0.0 and the current reachable instance is
192.168.0.200:7015.
get_sky_state) for downstream chart enginesThe implementation is intentionally split between:
The current design and tool intent are described in:
initial_idea.mdIMPLEMENTATION_PLAN.mdAGENTS.md/home/lucky/wiki/entities/projects/ephemeris-mcp.mdmain.py — uvicorn entry pointsrc/ephemeris_mcp/ — application codetests/ — automated checksrun.sh / restart.sh / killserver.sh — service helpersDockerfile / docker-compose.yml — container entry pointsdata/ephe/ — Swiss Ephemeris .se1 files (git-tracked, image-bundled)data/cache/ — runtime sqlite cache (gitignored, volume-mounted)logs/ — runtime logsUse 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-16T20:01:04Z",
"in_text": "6d 8h 1m"
}
}
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.200:7015 and mounts MCP at
/mcp/sse.
get_sky_state is the preferred raw snapshot for downstream chart engines.house_system is provided, it also includes house cusps and angles../data/ephe/ and is bundled into the Docker image.seas_18.se1 (and related seas_*.se1 files) — all included.seas_00.se1 through seas_168.se1 cover Chiron from ~675 CE to ~4650 CE.sepl_*.se1 and semo_*.se1 are needed for far-future dates (beyond 3000 CE).ephemeris.sqlite3) lives in ./data/cache/ and is NOT bundled — it's volume-mounted at runtime.docker compose up --build.data/ephe/ is COPY'd into the image (self-contained, no volume mount needed).data/cache/ is volume-mounted for persistent runtime cache.7015 and serves MCP at /mcp/sse.