@maschinenlesbar.org/mudab-cli
v0.0.2
Published
TypeScript API client and CLI for the MUDAB (Meeresumweltdatenbank) API — German marine-monitoring data (stations, parameters, measurements)
Maintainers
Readme
mudab-cli
A tiny, dependency-light TypeScript client + CLI for the MUDAB (Meeresumweltdatenbank — the German marine environment database) REST API: marine-monitoring data from the coastal Bundesländer and research institutions, hosted by the Bundesanstalt für Gewässerkunde (BfG) and surfaced by the Umweltbundesamt (UBA). A bund.dev API.
- No API key. The API is open — no auth, no account.
- Zero runtime HTTP dependencies. Built on
node:http/https; the CLI's only runtime dependency iscommander. - Library + CLI. Use the typed
MudabClientin code, or themudabcommand.
We provide the tool, not the data. The data is © its providers (see DATA_LICENSE.md); its terms are not stated as open — check before redistributing.
Install
npm install -g @maschinenlesbar.org/mudab-cli # the `mudab` command
# or as a library:
npm install @maschinenlesbar.org/mudab-cliCLI
Every command lists one dataset. Results are paged with --from/--count
(default 100 rows); --all fetches the whole table.
mudab stations --count 5 # measurement stations
mudab project-stations # monitoring projects (region, institute)
mudab parameters --compartment wasser # water parameters
mudab measurements --from 0 --count 200 # station measurements (page it — huge)
mudab plc-stations # HELCOM PLC river-load stations
mudab plc-measurements --all # river pollutant loads
mudab compartments # compartment code table (offline)The API does no server-side filtering or sorting. Its OpenAPI spec advertises
filter/orderbyon every endpoint, but the live server ignores them, so the CLI does not offer filter flags. Fetch a page and filter withjq:mudab parameters --all --compact | jq '[.[] | select(.COMPT_DS=="CW")]'
Global flags: --base-url, --timeout, --user-agent, --max-retries,
--max-response-bytes, --compact. See Usage.md for the full reference.
Library
import { MudabClient } from "@maschinenlesbar.org/mudab-cli";
const mudab = new MudabClient();
const stations = await mudab.stations({ range: { from: 0, count: 10 } });
const waterParams = await mudab.parameters({ range: { from: 0, count: 50 } }, "wasser");Each method returns a typed row array (the client extracts it from the API's
single-key wrapper object). Only range is honoured by the server — see the note in
FilterRequest.
Documentation
- Usage.md — full command reference and exit codes
- DEVELOPING.md — architecture, testing, the live-API quirks
- GLOSSARY.md — MUDAB domain terms (stations, compartments, PLC)
- DATA_LICENSE.md — upstream data terms (distinct from the code license)
- SKILLS.md — the Claude Code skills this repo ships
Licence
Code is dual-licensed AGPL-3.0-or-later OR commercial — see LICENSING.md. No external code contributions are accepted (see CONTRIBUTING.md); bug reports and AGPL forks are welcome.
