boligmcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CACHE_PATH | No | SQLite cache file (default ./cache.db) | ./cache.db |
| EMODATA_USER | No | Username for energy labels | |
| EMODATA_PASSWORD | No | Password for energy labels | |
| ADRESSEVAELGER_TOKEN | No | Optional; defaults to adressevaelger123 | adressevaelger123 |
| DATAFORDELER_API_KEY | No | Required for BFE chain, BBR, VUR, EJF, DAGI | |
| DATAFORSYNINGEN_TOKEN | No | Optional imagery token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sourcesA | List official Danish property data sources, their access tier, and whether credentials are configured. |
| search_addressB | Search Danish addresses by free text using Adressevælgeren (DAWA replacement). Use before any property lookup. |
| resolve_propertyC | Resolve a Danish address to DAR IDs, coordinates, cadastral IDs and BFE. Requires Datafordeleren for BFE. |
| get_buildingsB | Get BBR buildings and units for a BFE or address-id. |
| get_parcelA | Get cadastral parcels (matrikel) for a BFE number. |
| get_valuationB | Get official property and land valuation (VUR) for a BFE, including history. |
| get_tradesC | Get non-protected ownership type and recorded trade prices (EJF). Never returns private owner names. |
| get_admin_areasB | Get municipality, region, parish, court and police districts for an address. |
| get_plansC | Get local plans, municipal plan frameworks and zone status from Plandata.dk at the address coordinate. |
| get_environmentB | Get soil contamination, §3 nature, conservation and coastal/forest protection overlays at the address. |
| get_energy_labelC | Get the official energy label (energimærke) when EMOData credentials are configured. |
| get_area_statsB | Get municipality-level population, income and dwelling statistics from Danmarks Statistik. |
| property_reportA | Build a compact combined report for a Danish address. Calls all sources in parallel and marks missing ones. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct data source or action: search_address finds addresses, resolve_property converts them to IDs, and get_* tools each pull a specific type of property data (buildings, parcels, valuation, trades, etc.). property_report aggregates them without overlapping. No two tools have ambiguous boundaries.
All tool names follow a consistent verb_noun pattern using snake_case, e.g., list_sources, search_address, get_buildings, property_report. The verbs vary appropriately (list, search, resolve, get, build) but the structure is uniform and highly predictable.
With 13 tools, the set is well-scoped for a Danish property data server. Each tool covers a distinct aspect of property information, from address lookup to energy labels and area statistics, without unnecessary redundancy or overwhelming breadth.
The tool surface covers the complete lifecycle of property data queries: address search, ID resolution, buildings, parcels, valuation, trades, administrative areas, plans, environment, energy, and statistics. The property_report tool even aggregates all sources, ensuring no dead ends or missing operations for the stated purpose.