aicesat
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AICESAT_PORT | No | Port for the local web UI server. Defaults to 8765. | 8765 |
| EARTHDATA_TOKEN | No | Your Earthdata Login token (JWT) used to authenticate NASA data requests. The server also falls back to AICESAT_EDL_FILE or ~/.netrc if not set. | |
| AICESAT_EDL_FILE | No | Path to a file containing the Earthdata token. Overrides the default ~/.edl/token.prod. |
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 |
|---|---|
| show_photonsA | Slice 1: extract real ICESat-2 ATL03 land-ice signal photons (strong beams, medium+high confidence) over an area and create a 3D scene with an imagery base layer. Area = region name, bbox [W,S,E,N], or polygon [[lon,lat],...]. Uses the H3 chunk index + byte-range reads + Parquet lake: first touch of an area fetches only the chunks it needs, later calls hit the lake. Returns the widget URL to open plus extraction/access provenance. |
| open_uiC | URL of the unified UI: Explore (imagery map, draw a box or polygon on Sentinel-2 imagery, coverage check, build scenes, open the 3-D viewer) and Lake (H3 grid with per-cell stats, storage limit, background loading, eviction). |
| add_glasC | Slice 2: add ICESat/GLAS GLAH06 40 Hz shots (2003-2009 campaigns) to an existing scene, in native coordinates (ITRF2008; heights converted TOPEX/Poseidon -> WGS84 ellipsoid). Returns provenance by campaign. |
| coregisterB | Slice 3: run the ITRF2014 + epoch co-registration (plate motion, ITRF2014-PMM NOAM) on both missions in a scene, co-locate GLAS shots with ICESat-2 photons, and compute delta-h statistics in native and co-registered coordinates. Live pyproj on first call, cached after. Returns the comparability block. exaggeration <= 0 picks a display exaggeration automatically (~3% of scene span); it is always labelled on screen. |
| ui_regionsD | – |
| ui_scenesD | – |
| ui_scene_partD | – |
| ui_coverageD | – |
| ui_extractD | – |
| ui_jobD | – |
| ui_jobsD | – |
| ui_coregisterD | – |
| ui_lake_cellsD | – |
| ui_lake_summaryD | – |
| ui_lake_settingsD | – |
| ui_lake_loadD | – |
| ui_lake_evictD | – |
| ui_benchD | – |
| list_regionsB | Named candidate Greenland demo regions (bbox = west, south, east, north) with validation notes. |
| list_scenesA | Scenes built so far (newest first) with status ready | loading | error, area, series present, and widget URL. |
| lake_statusA | Parquet lake summary: cells, files, rows, bytes, storage limit and usage, recent evictions. |
| lake_load_cellsB | Materialize H3 (res 6) cells into the lake in the background (cell ids as decimal strings); returns a job id. |
| job_statusC | Status and log of a background build job (scene or cell load). |
| check_coverageB | How many ATL03 (ICESat-2) and GLAH06 (ICESat/GLAS) granules touch a region, by month / laser campaign. Give either a region name (see list_regions) or an explicit bbox [W, S, E, N]. No data is fetched. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| aicesat-ui | Explore / Lake / Scene views: draw an area on imagery, build scenes, browse the Parquet lake, view co-registration in 3-D |
TDQS
Scored across 24 tools
The substantive tools are distinct, but the large block of ui_* tools have empty descriptions and overlapping names such as ui_job vs ui_jobs, ui_coverage vs check_coverage, and ui_lake_cells vs ui_lake_summary. An agent cannot reliably distinguish UI shortcuts from actual data operations, so several tool boundaries are unclear.
All names use lower_snake_case and are readable, but conventions vary between verb-first names like show_photons and check_coverage, noun-style names like lake_status and job_status, and the large ui_* prefix group. The ui_* group is internally consistent but the overall set lacks a single predictable naming pattern.
With 24 tools, the server sits at the heavy end of the acceptable range. Many ui_* tools are simple navigation shortcuts that could plausibly be consolidated, while the real operational core is closer to 10 tools, making the overall surface feel larger than its actual scope.
The core scientific workflow is covered: coverage checking, scene creation, adding GLAS data, co-registration, scene listing, lake loading, and job status. However, there are notable gaps such as no scene deletion or update, no job listing/cancellation, and no programmatic lake eviction, with the ui_* links only partially compensating for those missing operations.