io.github.savecharlie/almanac
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| magnetic_fieldA | Earth's magnetic field from the official World Magnetic Model 2025. Call this instead of recalling declination or field values from memory: they require a degree-12 spherical-harmonic synthesis and are not reliably predictable token-by-token. Args: lat: Geodetic latitude in degrees, -90 to 90. lon: Longitude in degrees, -180 to 180. altitude_km: Height above the WGS84 ellipsoid, -1 to 850 km (WMM validity). Defaults to 0 (sea level). when: ISO date/datetime, a bare decimal year (e.g. "2026.5"), or "now". Defaults to "now" (UTC). Must fall in 2025.0–2030.0. Returns:
JSON-serializable dict with:
- declination_deg (compass angle off true north, + = east) and
compass_note (nearest named point)
- inclination_deg, total_intensity_nT, horizontal_intensity_nT and the
north/east/down (X/Y/Z) field components in nT
- secular_variation: annual rate of change per component
- query: echoed inputs and the resolved decimal year
- units, model, model_epoch, valid_range, engine, deterministic
The payload's own Raises: ValueError: lat/lon/altitude out of range, or a date outside WMM2025 validity [2025.0, 2030.0). Deterministic and verifiable: a faithful synthesis of NOAA's WMM2025 that reproduces all 100 of NOAA's own published test values to printed precision. Re-run the open-source core to check any answer: github.com/savecharlie/almanac |
| sky_positionsA | Sun, Moon and planet positions and events for a place and time. Call this instead of recalling ephemeris values from memory: rise/set times, moon phase and body positions depend on a multi-megabyte JPL kernel and are not reliably predictable token-by-token. Args: lat: Geodetic latitude in degrees, -90 to 90. lon: Longitude in degrees, -180 to 180. elevation_m: Observer height above sea level in metres. Defaults to 0. when: ISO date/datetime or "now". Defaults to "now" (UTC). Returns: JSON-serializable dict with: - bodies: for the Sun and Moon, altitude_deg/azimuth_deg, above_horizon, distance_km and distance_au, plus ecliptic ("zodiac") sign - sun: rise/set/transit times and day_length_hours - moon: rise/set/transit, phase_angle_deg, illuminated_fraction, phase_name and the next new/full moons - twilight: the four twilight-phase times - next_season_event: the next equinox or solstice - query: echoed inputs and resolved UTC time; plus kernel, engine, deterministic Times are ISO-8601 UTC; angles in degrees. Raises: ValueError: if lat or lon is out of range. Computed from the public-domain JPL DE421 kernel via skyfield, cross-checked against an independent engine to ~1 arcsecond. Deterministic: same inputs → same output. github.com/savecharlie/almanac |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
sky_positions and magnetic_field have clearly distinct purposes: one computes celestial body positions/events, the other computes geomagnetic field values. There is no overlap or ambiguity between them.
Both tool names use the same two-word snake_case noun phrase pattern (sky_positions, magnetic_field), creating a consistent and predictable naming convention.
With only two tools, the server feels thin for a general 'almanac' purpose, though the two tools are individually substantial and well-scoped. This falls at the borderline of the recommended 3-15 tools.
The server covers celestial positions and magnetic field, but an almanac might reasonably include other data such as tides, calendar events, or climatological norms. These are notable gaps that would require additional tools to fulfill a broader almanac role.