About udir-mcp
udir-mcp exposes Norway’s NSR school registry and NBR kindergarten registry through their open REST APIs. It is intended for registry lookups, with municipality-based searches and organization-level details such as addresses and coordinates.
Key features
- 01Search schools by municipality
- 02Filter schools by name and type
- 03Search kindergartens by municipality
- 04Retrieve organization details and coordinates
Use cases
- 01List schools within a municipality
- 02Find kindergartens by owner type
- 03Get locations for mapping or distance calculations
MCP support
Exposes search and detail tools for the NSR and NBR registries to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| navn | string | No | Substring filter on school name (case-insensitive) |
| type | enum | No | School type filter (default: all active schools)grunnskole | videregaaende | privat | offentlig | spesialskole | alle |
| kommunenummer | string | Yes | 4-digit municipality number, e.g. '0301' for Oslo (leading zero required; '301' is normalized) |
| inkluder_inaktive | boolean | No | Include closed/inactive units (default false) |
Details
From the project README@nor-data/udir-mcp
MCP-server som wrapper UDIRs åpne registre — bygget for Nabodata-kartleggingen (#4: skoler/barnehager).
- NSR (Nasjonalt skoleregister):
https://data-nsr.udir.no/v3 - NBR (Nasjonalt barnehageregister):
https://data-nbr.udir.no/v3
Begge er åpne, auth-frie REST-API-er.
Verktøy
| Verktøy | Beskrivelse |
|---|---|
sok_skole | Skoler per kommune (4-sifret kommunenr, normaliserer ledende null). Filter: navn-delstreng, type (grunnskole/videregaaende/privat/offentlig/spesialskole), inkluder_inaktive |
hent_skole | Full detalj per orgnr: adresse, koordinater (lat/lon, GeoNorge), elevtall, ansatte-intervall, målform, kontakt |
sok_barnehage | Barnehager per kommune. Filter: navn, eierform (privat/offentlig), inkluder_inaktive |
hent_barnehage | Full detalj per orgnr: adresse, koordinater, eierform, kategorier |
Datakvalitets-merknader (verifisert 6. juni 2026)
- UDIR leverer
{Lengdegrad:0, Breddegrad:0, GeoKilde:"Undefined"}for ikke-geokodede enheter — serveren behandler dette som manglende koordinat (utelater feltet). Navn-queryparam på/v3/enheterignoreres av UDIR — navnefilter gjøres derfor klientside per kommune.- Registrene inneholder test-enheter (orgnr
U999…, kommune 2599) — filtreres implisitt bort ved kommune-søk.
Bygg & test
npm install && npm run build
npm test # E2E med ekte UDIR-kall (11 sjekker)
Nabodata-bruk
sok_grunnkrets (kartverket) → kommunenr → sok_skole/sok_barnehage → hent_* for koordinater → avstandsberegning klientside. Fremtidig fase B: skoler_naer_punkt med batch-detaljhenting og haversine-radius.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.