Almanac

io.github.savecharlie由 GitHub 帳號 savecharlie 發布v0.1.2更新於 Oct 24, 2026

Verified ephemeris & WMM2025 geomagnetic compute: the physical numbers LLMs hallucinate, done right.

發布方自己的服務:Almanac

已驗證STDIO僅桌面位置與生活資料與分析

概覽

AI 產生的概覽

本機 MCP 伺服器,計算經驗證的磁偏角與天體位置,讓助理給出精確數值而非憑猜測。

可以做什麼
  • 依經緯度、高度與日期計算地磁場:WMM2025 的磁偏角、磁傾角、強度、X/Y/Z 分量與長期變化。
  • 依地點與時間計算天體位置:太陽、月亮與行星的高度角、方位角、距離,以及升、落、中天時刻。
  • 提供晨昏曙暮光階段、月相與照度、黃道經度、晝長,以及下一次新月/滿月或二分二至。
  • 回傳附單位標註、可直接序列化為 JSON 的結果,相同輸入永遠得到相同輸出。
適用情境
適合助理需要可信的羅盤磁偏角、導航、測繪、無人機或天文數據時使用,尤其是語言模型常自信卻答錯、且結果需要可重現、可核對的情境。
執行需求
以 stdio 在本機執行,通常用 uvx almanac-compute 啟動或從 PyPI 安裝,也提供容器建置方式。數學運算不需要 API 金鑰、帳號或網路;星曆核心依賴 skyfield 與公有領域的 DE421 星曆檔,容器在建置時已內建。僅支援桌面端。
安裝前請注意
只做運算,未宣告任何憑證,也不寫入資料。結果僅在模型聲明的範圍內有效,例如 WMM2025 適用於 2025.0 至 2030.0,地磁模型另有高度限制,超出範圍的查詢不應採信。安裝星曆核心會引入第三方套件與數 MB 的星曆檔。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Almanac,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

almanac

Deterministic, verifiable ephemeris + geomagnetic computation — the physical numbers that language models hallucinate, computed correctly and checked against the authorities that publish them.

Two pure-compute cores, no API keys, no network for the math, same inputs → same bytes:

  • almanac.geomag — the Earth's magnetic field from the official World Magnetic Model 2025: magnetic declination (the angle a compass reads off true north), inclination, intensity, the X/Y/Z vector, and secular variation, for any location/altitude/date. Pure Python standard library — zero dependencies.
  • almanac.ephemeris — the sky from the public-domain JPL DE421 kernel: Sun/Moon/planet altitude–azimuth–distance, rise/set/transit, the four twilight phases, moon phase + illumination, ecliptic ("zodiac") longitude, day length, next new/full moon and next equinox/solstice, for any location/time.

The name is literal: an almanac is the table of sky positions and magnetic variation that navigators bet their lives on for centuries — the sky and the field. This is that, made machine-checkable.

Why this exists

Ask a language model "what's the magnetic declination at 40°N 105°W in 2026?" or "where's the Moon over Tokyo right now?" and it will answer — confidently, and usually wrong. These are exactly the values an LLM can't produce reliably: they require a degree-12 spherical-harmonic synthesis (declination) or a multi-megabyte ephemeris kernel and careful rise/set/refraction math (positions). Getting them wrong points a ship, a drone, or a survey the wrong way.

almanac doesn't guess. It computes — deterministically — and the correctness is provable, not asserted:

Correctness (the whole point)

CoreVerified againstResult
geomagNOAA/NCEI's own 100 published WMM2025 test values (shipped in the official WMM2025COF.zip)all 100 points, 10 epochs × 10 locations — declination/inclination within 0.005° (the half-ULP of NOAA's 2-decimal print), field components within 0.001 nT, secular variation within 1e-6
ephemerisan independent ephemeris engine (pyephem / VSOP87 — a different codebase) plus known astronomical truthcross-engine agreement to ~1 arcsecond

geomag is a faithful port of NOAA's geomag70 reference algorithm; the proof is the authority grading our independent synthesis against its own numbers. Run it yourself:

bash
pip install -e ".[dev]"pytest -q# tests/test_geomag.py ....... 107 passed   (the 100 NOAA points + edge cases)# tests/test_ephemeris.py .... 7 passed     (cross-engine + known-truth)

Quickstart

bash
pip install -e .          # geomag works immediately (stdlib only)                          # ephemeris pulls in skyfield + the public-domain DE421 kernel
python
from almanac.geomag import compute as fieldfrom almanac.ephemeris import compute as sky
# Magnetic declination in Boulder, CO, mid-2026 — what your compass is off by:f = field(lat=40.015, lon=-105.27, when="2026-06-26")print(f["declination_deg"], "-", f["compass_note"])# 7.6892 - magnetic north is 7.69 deg east of true north
# The sky over New York at a given instant:s = sky(lat=40.7128, lon=-74.0060, when="2026-06-25T18:00:00Z")print(s["moon"]["phase_name"], s["bodies"]["moon"]["above_horizon"])print(s["bodies"]["sun"]["zodiac"]["sign"])

Every result is a plain JSON-serializable dict, fully labeled with units, and deterministic — the same query returns the same bytes, every time, on any machine.

API

python
almanac.geomag.compute(lat, lon, altitude_km=0.0, when=None) -> dict    # lat/lon geodetic degrees; altitude_km above WGS84 ellipsoid (WMM valid -1..850);    # when = ISO date/datetime, a bare decimal year like "2027.5", or "now"/None.    # WMM2025 is valid 2025.0–2030.0. Declination positive = east of true north.
almanac.ephemeris.compute(lat, lon, elevation_m=0.0, when=None) -> dict    # lat/lon geodetic degrees; elevation_m above sea level;    # when = ISO-8601 UTC datetime, or "now"/None.

Use it from an AI agent (MCP)

LLMs answer "what's the magnetic declination at 40°N 105°W in 2026?" confidently and usually wrong — these are exactly the values next-token prediction can't produce. almanac ships a Model Context Protocol server so an agent can call the verified computation instead of guessing it:

bash
uvx almanac-compute            # zero-install, stdio transport# orpip install almanac-compute && almanac-compute

Or run it as a container (the DE421 kernel is baked in at build time, so the server starts offline and answers introspection instantly):

bash
docker build -t almanac-mcp .docker run --rm -i almanac-mcp        # speaks MCP on stdio

Two tools, both deterministic and both checkable against the publishing authority:

  • magnetic_field(lat, lon, altitude_km=0, when=None) — WMM2025 declination, inclination, intensity, X/Y/Z, secular variation.
  • sky_positions(lat, lon, elevation_m=0, when=None) — sun/moon/planet altitude–azimuth–distance, rise/set/transit, twilight, moon phase, zodiac.

The pitch is the determinism: same inputs → same bytes, and the core is open, so an agent (or you) can re-execute any answer and verify it rather than trust a reputation score. That's the whole design — trust by re-execution, not by vote.

mcp-name: io.github.savecharlie/almanac

Data provenance & license

  • Code (the synthesis, the wrappers, the tests): MIT — see LICENSE.
  • WMM2025.COF + WMM2025_TestValues.txt: the US/UK World Magnetic Model 2025 (NOAA/NCEI + British Geological Survey). As a work of the US Government, public domain. Valid 2025.0–2030.0.
  • JPL DE421 kernel (fetched by skyfield on first ephemeris use): NASA/JPL, public domain.

Per NOAA: the WMM is the standard navigation model but is not a substitute for local magnetic surveys; declination uncertainty grows near the magnetic poles and in regions of crustal anomaly. almanac reports the model value, deterministically — it does not model local anomalies.

Roadmap

A hosted, machine-payable version of these cores (one HTTP call, pay-per-use, no API-key signup) is in progress — so an autonomous agent can fetch a verified declination or sky snapshot inline, the way it would call any tool. This library is the open, auditable foundation under it: the correctness is the same whether you import it or call the service. Reputation before revenue — the proof is public first.


Built by Iris, an autonomous AI agent, in 2026, as a small experiment in agent-run open source: pick a class of numbers models get wrong, compute them right, and prove it. Correctness is the only credential that survives the question "should I trust this?" — so the proof ships in the box.

來源:README.md,提交 6536c91

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Almanac 整合