MCP server
Danish property data for AI agents
An assistant that needs to check a Danish building, resolve an address or read the planning constraints on a plot should not need a bespoke integration per register. Grundfast exposes 28 read-only tools over the Model Context Protocol, on the same key and the same meter as the REST API.
One endpoint
In practice
One question, four registers
The agent picks the tools; Grundfast answers each call from the official register. This is a real property and real results.
tooladresse_soeg{ "q": "Nyhavn 20, København" }
Nyhavn 20, 1051 København K → BFE 6033800
toolbbr_ejendom{ "bfe": 6033800 }
3 buildings, main building from 1845 · building 1 fredet: true · building 2 tag: "Fibercement herunder asbest"
tooljord_omraadeklassificering{ "lon": 12.5905, "lat": 55.6795 }
omraadeklassificeret: true · "Område med krav om analyser"
toolnatur_byggelinjer{ "lon": 12.5905, "lat": 55.6795 }
10 lines checked · inden_for: false on all
Connect
Connect in one step
A remote server over HTTP with a bearer header. It is listed in the official MCP registry as dk.grundfast/danish-address-property-data.
claude mcp add --transport http grundfast \ https://api.grundfast.dk/mcp \ --header "Authorization: Bearer gf_live_..."
{ "mcpServers": { "grundfast": { "type": "http", "url": "https://api.grundfast.dk/mcp", "headers": { "Authorization": "Bearer gf_live_..." } } } }
Tools
28 tools, grouped by the job they do
Each returns the same shape as its REST endpoint. Two history tools need the Scale plan and the address-change feed needs Pro; everything else works on every plan.
The property
bbr_ejendomBuildings, units and land for a BFE, with heritage status.matrikel_ejendomCadastral parcels and district for a BFE.ejendomsvurderingThe public valuation series for a BFE.geodanmark_bygningerBuilding footprint polygons for a BFE.dhm_bygningshoejderMeasured height of every building on a BFE.bbr_historikScaleThe property as it stood on an earlier date.bbr_bygningssoegningEvery standing building in a kommune or postcode matching BBR facts.
Addresses
adresse_soegSearch addresses by text; each hit carries its BFE.adresse_opslagOne address by its DAR id.adresse_datavaskClean a messy address; ranked, graded candidates.adgangsadresse_reverseNearest addresses to a coordinate.adresse_aendringerProNew, changed and retired addresses in a kommune, postcode or ID list.adresse_historikScaleHow an address has changed over time.
Planning constraints
jord_omraadeklassificeringWhether a point lies in a classified soil area (§ 50 a).jord_kortlaegningWhether a point lies on land mapped as contaminated (V1 or V2), with the lokalitet.jord_kortlaegning_matrikelWhether a parcel is mapped V1/V2, and how much of it each mapped area covers.natur_byggelinjerTen protection lines at a point, each with signed distance to its edge.natur_skovbyggelinjeThe forest building line (§ 17) in depth, including lifted areas.planZone, local plans and municipal plan frames at a point, with status and plan PDF.miljoe_stoejRoad, rail, airport and industry noise bands at a point, with the mapping year.plan_ejendomThe plans for a BFE plus an indicative remaining floor area, inputs echoed.miljoe_screeningPre-renovation screening per building part for asbestos, PCB, lead, PAH, chlorinated paraffins and heavy metals, from the national building atlas.
Place and companies
dagi_reverseMunicipality, region, parish and districts at a point.dagi_omraadeOne administrative area by theme and code.dhm_hoejdeTerrain and surface height at a coordinate.stednavne_naerOfficial place names near a coordinate.orto_luftfoto_aargangeWhich aerial-photo years were flown over a point.cvr_virksomhedA Danish company by CVR number.
Input schemas for every tool come back from tools/list; the matching REST endpoints are in the API reference.
FAQ
Questions about the MCP server
The Model Context Protocol is an open standard for connecting AI assistants and agents to tools and data. An MCP server exposes typed tools that a model can call directly, instead of you writing glue code for every integration.
Any MCP client that supports remote servers over HTTP with a bearer header — the standard remote-server shape, with nothing model-specific in it. The server is also listed in the official MCP registry as dk.grundfast/danish-address-property-data.
No. Every tool call is metered exactly like a REST request, against the same plan and the same key. A gf_test_ key lets an agent explore the tools without being billed.
The server is read-only: every tool is a lookup against a public register, nothing writes, and personal ownership data is not exposed. Per-key rate limits and quotas mean an agent stuck in a loop hits a limit, not a surprise invoice.
Generally, yes. Each tool describes its inputs and outputs in its schema, which is what a model reads to map bygninger to buildings or fredet to listed. The code-list values are the register’s own Danish text — also what an answer should quote back to an official source.
See also
Give your agent the registers
gf_test_ key is never billed.Free up to 5,000 calls a month · no card · test keys never billed · data from Klimadatastyrelsen / Datafordeler, CC BY 4.0