Eme
FreeNot checkedEME (Earth-Moon-Earth) prediction for amateur radio — moon windows, path loss and degradation, computed locally
About
EME (Earth-Moon-Earth) prediction for amateur radio — moon windows, path loss and degradation, computed locally
README
eme-mcp
MCP server for EME — Earth-Moon-Earth, moonbounce. When the moon is up from your grid, when it is up from both ends of a schedule at once, what the path costs on 2m, 70cm and 23cm, and which days ahead are least degraded.
Part of the qso-graph project. No network, no authentication.
Why it needs nothing from the network
The moon's position is computed here, from the abridged ELP-2000/82 series as Meeus tabulates it (Astronomical Algorithms, chapter 47). That is around 250 lines of standard library and a coefficient table. It is also what WSJT-X does, and the norm for EME software.
That matters for more than tidiness. Moonrise and moonset are different for every grid square, so a service-backed answer means a request per location per query — and a planning tool that stalls, rate-limits, or goes dark when a remote service does.
JPL Horizons is still here — as the test oracle. Recorded Horizons responses are fixtures, so every CI run checks these numbers against NASA's rather than against themselves. Measured against Horizons for a Boise grid:
| agreement | |
|---|---|
| Azimuth | within 0.01° |
| Elevation | within 0.003° |
| Range | within 9 km of ~392,000 (0.002%) |
Thirty arcseconds, against a 432 MHz array that is degrees wide.
Install
uvx eme-mcp # run it; nothing to install
Tools
| Tool | Description |
|---|---|
eme_moon_window |
Moon azimuth, elevation and range from a grid square over time — and, given a second locator, the mutual window when both stations can see it |
eme_path_loss |
One-way, round-trip and echo path loss on 2m / 70cm / 23cm, or any frequency |
eme_degradation |
How much worse than perigee this moment is, with the moon's declination |
eme_calendar |
The least degraded days ahead |
get_version_info |
Service version and the ephemeris series used |
What this does not yet do
Sky noise is not included. The full degradation figure an EME operator plans with
combines the distance term with the galactic background behind the moon, from the Haslam
408 MHz all-sky map. That map is not yet carried and pinned, so eme_degradation and
eme_calendar report the distance term and say so in every answer rather than
returning a number that looks complete and is not. Tracked in
qso-graph-devel#52.
Elevations are geometric: no atmospheric refraction, which lifts an object near the horizon by about half a degree.
The two path-loss figures
They answer different questions and are often confused, so both are returned:
echo_dbis the one to budget a station with — the radar equation, accounting for the moon reflecting about 6.5% of what reaches it. Near 252 dB on 2m, 262 on 70cm and 271 on 23cm at mean distance, which are the numbers EME operators know.round_trip_dbis twice the free-space loss. It ignores the moon entirely.
Licence
GPL-3.0-or-later. See LICENSE.
The algorithms are from Jean Meeus, Astronomical Algorithms (2nd edition, Willmann-Bell, 1998), chapters 7, 11, 12, 22, 40 and 47 — cited in the source where each is used. The implementation is ours; the mathematics is his and is not claimed.
Install Eme in Claude Desktop, Claude Code & Cursor
unyly install emeInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add eme -- uvx eme-mcpStep-by-step: how to install Eme
FAQ
Is Eme MCP free?
Yes, Eme MCP is free — one-click install via Unyly at no cost.
Does Eme need an API key?
No, Eme runs without API keys or environment variables.
Is Eme hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Eme in Claude Desktop, Claude Code or Cursor?
Open Eme on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Unyly Deploy
Deploy sites and MCP servers to Unyly straight from your AI agent
by UnylyAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiPayMCP
Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://w
by blustAITemplate MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Compare Eme with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
