Skip to main content
Glama
README.md
# kartverket-mcp

An MCP server that exposes Kartverket's open geographic data to Claude (and any other MCP client).

Kartverket is Norway's national mapping authority. It publishes addresses, place names, cadastre data, and elevation models under an open licence (NLOD / CC BY 4.0). This server wraps four of those endpoints as MCP tools, so an LLM can look up Norwegian addresses, reverse-geocode a point, search the official place-name registry, or query elevation from the national 1 m DTM — all without an API key.

## Install

Add to your Claude Desktop config (`%APPDATA%\Claude\claude_desktop_config.json` on Windows, `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "kartverket": {
      "command": "npx",
      "args": ["-y", "kartverket-mcp"]
    }
  }
}
```

Restart Claude Desktop. No credentials needed.

## Tools

### `search_address`
Free-text address search against `ws.geonorge.no/adresser/v1/sok`.

```
query: "Karl Johans gate 1, Oslo"
→ address, postcode, postal_area, municipality, cadastre (gnr/bnr), lat, lon
```

### `address_at_point`
Reverse geocoding. Finds addresses within a radius of a lat/lon.

```
lat: 59.91, lon: 10.75, radius: 100
→ up to N nearest addresses, each with distance_m
```

### `search_placename`
Searches Sentralt stedsnavnregister (SSR) — farms, mountains, lakes, islands, urban areas. Not street addresses.

```
query: "Galdhøpiggen"
→ name, type (e.g. Fjell, By, Øy), counties, municipalities, coordinates
```

### `elevation_at_point`
Ground elevation in metres above sea level, from the national 1 m DTM.

```
lat: 61.636, lon: 8.312
→ elevation_m, terrain (ÅpentOmråde / Skog / Vann / …), source (dtm1)
```

## Example questions Claude can now answer

- *"What's the postcode of Karl Johans gate 1 in Oslo?"*
- *"What's the street address nearest to 59.9139° N, 10.7522° E?"*
- *"How high is Galdhøpiggen?"* (placename search → elevation lookup)
- *"Find every address within 50 m of the Oslo Opera House coordinates."*

## Development

```bash
git clone https://github.com/hellosverre/kartverket-mcp
cd kartverket-mcp
npm install
npm run build
npm start
```

For local iteration, `npm run dev` runs the server with `tsx` (no build step).

To test against your local checkout, point Claude Desktop at the built file:

```json
{
  "mcpServers": {
    "kartverket": {
      "command": "node",
      "args": ["/absolute/path/to/kartverket-mcp/dist/index.js"]
    }
  }
}
```

## Data & attribution

All data comes from Kartverket via `ws.geonorge.no`. It's published under [Norsk lisens for offentlige data (NLOD) 2.0](https://data.norge.no/nlod/no/2.0) or CC BY 4.0 depending on the dataset. When you use this data, you're expected to credit Kartverket.

This project is not affiliated with Kartverket.

## License

MIT. See [LICENSE](LICENSE).

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct purpose: forward and reverse geocoding for addresses, placename search, and elevation query. No overlap in functionality.

Naming Consistency4/5

Tools follow a clear pattern: coordinate-based queries use '<resource>_at_point' and text-based searches use 'search_<resource>'. While not all verb_noun, the pattern is predictable and consistent.

Tool Count5/5

With 4 tools, the set is well-scoped for a national geospatial server. Each tool covers a core function without unnecessary duplication.

Completeness4/5

Covers essential geospatial queries (address forward/reverse, placename search, elevation). Missing features like routing or structured geocoding, but core use cases are complete.

Maintenance

ActivityInactive
ResponsivenessNo issues