kartverket-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kartverket-mcpsearch address: Karl Johans gate 1, Oslo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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):
{
"mcpServers": {
"kartverket": {
"command": "npx",
"args": ["-y", "kartverket-mcp"]
}
}
}Restart Claude Desktop. No credentials needed.
Related MCP server: kartverket-mcp
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, lonaddress_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_msearch_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, coordinateselevation_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
git clone https://github.com/hellosverre/kartverket-mcp
cd kartverket-mcp
npm install
npm run build
npm startFor 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:
{
"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 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.
Available Tools
4 toolsaddress_at_pointA
Reverse geocode: find the addresses closest to a latitude/longitude in Norway. Use when the user has coordinates and wants to know what is there.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude (EPSG:4258 / WGS84). | |
| lon | Yes | Longitude (EPSG:4258 / WGS84). | |
| radius | No | Search radius in metres (1–5000). | |
| limit | No | Max results to return (1–50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'find the addresses closest' but omits details like handling of no results, coordinate validity outside Norway, the exact return format, or any side effects. The description is too minimal for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that gets the purpose across efficiently. While it could benefit from additional structure (e.g., listing key points), it is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of reverse geocoding with 4 parameters and no output schema, the description is minimally adequate. It does not explain return values or how parameters like radius/limit affect results, but the schema partially compensates. Gaps remain in anticipated context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description adds no extra parameter-specific guidance beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs reverse geocoding (addresses from lat/lon) and specifies the geographic scope (Norway). It distinguishes from siblings: elevation_at_point is for elevation, search_address/search_placename are forward geocoding. This leaves no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Use when the user has coordinates and wants to know what is there.' It implicitly tells when to use but does not explicitly mention when not to use or name alternatives. However, the context is sufficient for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elevation_at_pointA
Get ground elevation in metres at a coordinate in Norway, from the national 1m digital terrain model. Returns elevation above sea level and the terrain type (open ground, forest, water, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude (EPSG:4258 / WGS84). | |
| lon | Yes | Longitude (EPSG:4258 / WGS84). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses the data source and expected output (elevation, terrain type), but does not explicitly state read-only behavior, rate limits, or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action. No unnecessary words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and no output schema, the description covers input scope (Norway, CRS), output details (elevation, terrain type), and data source. No output schema needed as description explains return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions. The description adds the country constraint (Norway) and clarifies that coordinates are in EPSG:4258/WGS84, already covered by schema. Slight added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets ground elevation in metres at a coordinate in Norway, using a national 1m digital terrain model. It is distinct from sibling tools (address/place name focused) and uses specific verbs and resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. Sibling tools are address/place name focused, implying usage for elevation queries, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_addressA
Search Norwegian addresses by free text. Returns matching addresses with coordinates (EPSG:4258 / WGS84), postcode, postal area, municipality, and cadastre number (gårdsnummer/bruksnummer). Use when the user gives a street name or a full or partial address and needs the canonical record.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text address query, e.g. "Karl Johans gate 1, Oslo". | |
| limit | No | Max results to return (1–50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes output fields (coordinates, postcode, etc.) and nature as a search operation. No annotations provided, so description appropriately fills gap though could mention if read-only or side-effect-free.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose, second gives usage guidance and output summary. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, description fully explains what the tool does, when to use it, and what results contain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. Description adds example for query parameter but not much beyond schema. Baseline 3 granted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it searches Norwegian addresses by free text, returns structured results. Distinguishes from sibling tools like address_at_point (coordinate-based) and search_placename (placename-focused).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when user provides street name or partial/full address needing canonical record. Does not explicitly mention when not to use or name sibling alternatives, but context implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placenameA
Search Norway's official place-name registry (Sentralt stedsnavnregister / SSR). Covers farms, islands, mountains, fjords, lakes, urban areas, and other named natural features — not street addresses. Use for named places that aren't street addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Place name to search, e.g. "Galdhøpiggen" or "Lofoten". | |
| limit | No | Max results to return (1–50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the scope of search (natural features, not addresses) but lacks details on authentication, rate limits, or return format. Given no annotations, it provides basic behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words. Every sentence adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with two well-described parameters, the description is complete enough to understand what the tool does and when to use it. Lacks output schema details but not critical for a list result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described). The description adds value by clarifying the types of places covered, going beyond parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Norway's official place-name registry for named natural features and explicitly excludes street addresses, distinguishing it from siblings like search_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use the tool (for named places not street addresses) but does not explicitly mention when not to use it or provide alternatives, though sibling tools imply the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: forward and reverse geocoding for addresses, placename search, and elevation query. No overlap in functionality.
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.
With 4 tools, the set is well-scoped for a national geospatial server. Each tool covers a core function without unnecessary duplication.
Covers essential geospatial queries (address forward/reverse, placename search, elevation). Missing features like routing or structured geocoding, but core use cases are complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Norwegian transport (Entur) and geodata (Kartverket): trips, departures, addresses, elevation.
Nominatim MCP — wraps OpenStreetMap Nominatim geocoding API (free, no auth)
Geocoding, truck routing, traffic, weather, and place search via MCP — 11 hosted tools.
Geospatial MCP server for earthquake, tsunami, volcano, disaster, and FX data queries.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server providing geocoding and place discovery services via Nominatim and OpenStreetMap. It enables users to perform forward and reverse geocoding, extract bounding boxes, and find nearby places or administrative hierarchies.10Apache 2.0
- AlicenseAqualityDmaintenanceMCP server that wraps Kartverket's open APIs for Norwegian geographic data including place names, addresses, elevation, municipalities, properties, statistical districts, and building points. Requires no authentication.780MIT
- AlicenseAqualityBmaintenanceMCP server that wraps open Norwegian neighborhood data, enabling queries for public transport coverage, traffic noise, and green areas around a location.343MIT
- AlicenseAqualityBmaintenanceAn MCP server to find and fetch Norwegian open government data from data.norge.no. Enables search, metadata retrieval, and data download.53MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hellosverre/kartverket-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server