Skip to main content
Glama
3121n
by 3121n
README.md
# @nor-data/nve-mcp

MCP-server som wrapper NVE sine åpne kartdata (kart.nve.no/enterprise ArcGIS REST) for punktoppslag på naturfare. Bygget for Konsept 12 («Hva gjør naboene?») — feltene `flood_risk` og `landslide_risk` i 12-feltmatrisen.

## Verktøy

### `hent_flomaktsomhet(lat, lon)`
- **Flom-aktsomhetsområde** (landsdekkende GIS-analyse, `Flomaktsomhet/1`)
- **Dekningssjekk** (`Flomaktsomhet/2`) — skiller «ingen treff» fra «ikke analysert»
- **Detaljert 200-årsflomsone** (`Flomsoner2/17`) + analysert-område-sjekk (`Flomsoner2/0`) der detaljert flomsonekart finnes (TEK17 §7-2-referanse)

### `hent_skredaktsomhet(lat, lon)`
- **Snø-/steinskred** aktsomhet (`SkredSnoSteinAkt/0`) + kartlagt-sjekk (lag 1)
- **Jord-/flomskred** aktsomhet (`JordFlomskredAktsomhet/1` — lag 0 er raster, ikke spørrbart)
- **Kvikkleire** faregradssoner (`SkredKvikkleire2/0`) + kartlagt-sjekk (lag 2)
- Skredtype-koder dekodes (begge NVE/NGU-domener: korte koder 1–99 og fulle koder 110–200)

## Designprinsipper (fra Konsept 12-syntesen)
- **Brukeren er tolkeren**: output forklarer eksplisitt at aktsomhet ≠ faresone
- **Synlig usikkerhet**: dekningslag rapporteres alltid — «ingen treff» utenfor kartlagt område betyr «ikke kartlagt», ikke «trygt»
- **Kildelenke per datapunkt**: hver respons inkluderer tjeneste-URL + temakart-innsyn + lisens

## Verifisert (5. juni 2026)
| Testpunkt | Forventet | Resultat |
|---|---|---|
| Lillestrøm (59.956, 11.046) | flom-treff | ✅ FlomAktsomhetOmr + utenfor 200-årssone (detaljkart finnes) |
| Thorvald Meyers gate 2C, Oslo | rent | ✅ ingen treff, innenfor analysert område |
| Ytterholtet 1, Sørreisa | snø/stein-treff | ✅ PotensieltSkredfareOmr («Snø og steinskred») |
| Gjerdrum (60.063, 11.036) | kvikkleire-treff | ✅ UtlosningOmr |

## Bruk
```bash
npm install && npm run build
node dist/index.js   # stdio MCP
node test-e2e.mjs    # ende-til-ende-test
```

Registrert i `~/.claude.json` som `nve`. Lisens: MIT. Data: NVE/NGU åpne data (NLOD/CC BY).

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools address entirely different hazard types (flood vs landslide), with no overlap in their functionality. Clear distinction.

Naming Consistency5/5

Both tools follow the same 'hent_' + hazard type pattern, using snake_case and Norwegian, providing a predictable naming convention.

Tool Count4/5

With only 2 tools, the server is very narrow in scope. However, this may be appropriate for a focused hazard query service, though it feels slightly thin.

Completeness3/5

The server covers the two main hazard queries (flood and landslide) but lacks other potential hazard types (e.g., storm surge, wildfire) and has no data manipulation tools. Adequate for its stated purpose but not comprehensive.

Maintenance

ActivityInactive
ResponsivenessNo issues