io.github.aneal99/datafordeler-dar-mcp
NPM · DATAFORDELER-DAR-MCP
Danish addresses from Datafordeleren's DAR register, the replacement for DAWA.
Available components
Last scanned (23 hours ago)
Scores higher than 69% of npm servers
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 3 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 33 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability66
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2523 tokens (~252/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage94
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 81% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "dar_graphql" implies "send" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 1 Nov 26 +1
- Stability: 0.97 → pass security
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed npm/datafordeler-dar-mcp@0.1.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 3 packages
| Packages resolved | 3 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
dar_get_access_address Get access address by id ~197
Fetch one access address (husnummer: street + house number, the entrance) from DAR by its UUID. The id is the same UUID DAWA used for /adgangsadresser. Returns street, house number, municipality, postcode, supplementary town name, parish, cadastral parcel (jordstykke), GeoDanmark building id, and access/road point coordinates (EPSG:25832 and WGS84). Example: dar_get_access_address({ access_address_id: "0a3f507a-d330-32b8-e044-0003ba298018" }) -> "Oehlenschlægersgade 35, 1663 København V". To list the individual units (floors/doors) at this entrance, call dar_list_addresses with the same id.
| Name | Type | Req | Description |
|---|---|---|---|
| access_address_id | string | yes | DAR/DAWA access-address UUID (id_lokalId of a Husnummer). |
No output schema declared.
No examples provided.
dar_get_address Get address by id ~213
Fetch one Danish address (adresse: a specific door/floor unit) from DAR by its UUID. The id is the same UUID DAWA used for /adresser, so stored DAWA ids keep working. Returns the normalised address with its access address (husnummer) embedded: street, house number, municipality, postcode, parish, cadastral parcel, building id and the access point coordinates in both EPSG:25832 (x, y) and WGS84 (lat, lon). Example: dar_get_address({ address_id: "0a3f50a0-0000-32b8-e044-0003ba298018" }) -> "Oehlenschlægersgade 35, st. tv, 1663 København V". Not for text search: use dar_search_addresses (API key) or dar_list_access_addresses (municipality + road code).
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | yes | DAR/DAWA address UUID (id_lokalId of an Adresse). |
No output schema declared.
No examples provided.
dar_get_graphql_schema Get DAR GraphQL schema (API key) ~190
Fetch the GraphQL schema (SDL) for DAR/v2. REQUIRES DATAFORDELER_API_KEY. The full schema is about 80,000 characters, mostly Danish field documentation. By default the doc comments are stripped, which leaves a compact list of types, fields and filter inputs. Pass filter to keep only type/input/enum blocks whose name contains the text (case-insensitive), e.g. filter: "DAR_Husnummer" (type, filter input, connection) or filter: "OperationFilterInput" (available operators). Set include_docs: true to keep the field definitions and legal references. Output is truncated at 60000 characters.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | Substring of a type name to keep, e.g. "DAR_Adresse". |
| include_docs | boolean | – | Keep the """doc comment""" blocks (Danish definitions, legal sources). |
No output schema declared.
No examples provided.
dar_get_postcode Get postcode ~116
Fetch a Danish postcode (postnummer) by its 4-digit code or by UUID. Returns id, code, name and status. Example: dar_get_postcode({ postcode: "1663" }) -> "København V", id d4a3a5ad-.... Use the returned id as postcode_id in dar_list_access_addresses to enumerate addresses in that postcode.
| Name | Type | Req | Description |
|---|---|---|---|
| postcode | string | – | 4-digit postcode, e.g. "8000". |
| postcode_id | string | – | Postnummer UUID. |
No output schema declared.
No examples provided.
dar_get_street Get street (named road) ~147
Fetch a named road (NavngivenVej) by UUID, or by municipality_code + road_code. Returns the street name, the municipality that administers it, its road codes per municipality (a street can span municipalities) and the postcodes it runs through. Example: dar_get_street({ municipality_code: "0101", road_code: "5240" }) -> "Oehlenschlægersgade", København. Does NOT search by name (see dar_search_addresses for text search, API key required).
| Name | Type | Req | Description |
|---|---|---|---|
| municipality_code | string | – | – |
| road_code | string | – | – |
| street_id | string | – | NavngivenVej UUID. |
No output schema declared.
No examples provided.
dar_graphql Run a raw DAR GraphQL query (API key) ~502
Send any GraphQL query to https://graphql.datafordeler.dk/DAR/v2. REQUIRES DATAFORDELER_API_KEY. Entities: DAR_Adresse, DAR_Husnummer, DAR_NavngivenVej, DAR_NavngivenVejKommunedel, DAR_NavngivenVejPostnummer, DAR_Postnummer, DAR_SupplerendeBynavn, DAR_Adressepunkt, DAR_Events. Rules the service enforces: - Every entity query needs virkningstid and/or registreringstid (ISO timestamp), or a where filter on id_lokalId. Pass BOTH set to the current time to get the current state; with only one you also get superseded versions. - Filters: where: { field: { eq | in } }. startsWith exists only on adgangsadressebetegnelse, adressebetegnelse, vejnavn, postnr and navn, and is case-sensitive. Dates and ints also take gt/gte/lt/lte. Geometry fields take spatial filters (intersects, within, contains ...) with { wkt, crs: 25832 }. - Paging: first (max 1000, default 100) and after (cursor); read pageInfo { endCursor hasNextPage }. - References are ids, not nested objects: DAR_Husnummer.navngivenVej, .postnummer and .adgangspunkt hold UUIDs; fetch coordinates from DAR_Adressepunkt { position { wkt crs } }. - Field names with æ/ø/å use ae/oe/aa (doerbetegnelse, virkningsaktoer). Example: query { DAR_Husnummer(first: 5, virkningstid: "2026-10-01T12:00:00Z", registreringstid: "2026-10-01T12:00:00Z", where: { adgangsadressebetegnelse: { startsWith: "Rentemestervej 8" }, status: { eq: "3" } }) { pageInfo { endCursor hasNextPage } nodes { id_lokalId adgangsadressebetegnelse status } } } Returns the raw { data, errors } envelope. Use dar_get_graphql_schema to discover fields.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | GraphQL query document. |
| variables | object | – | Optional GraphQL variables object. |
No output schema declared.
No examples provided.
dar_list_access_addresses List access addresses by street, postcode or parcel ~428
List access addresses (husnumre) filtered by one of: - municipality_code + road_code (kommunekode + vejkode, both 4-digit strings), e.g. "0101" + "5240" = Oehlenschlægersgade, København - street_id (NavngivenVej UUID, from dar_get_street or an earlier result) - postcode_id (Postnummer UUID, from dar_get_postcode; NOT the 4-digit postcode) - cadastral_parcel_id (jordstykke id, from an earlier access-address result) This is the anonymous way to enumerate a street when no API key is set. Paginated: page (1-based) and page_size (max 100). has_more is true when a full page came back; request the next page to continue. Results include coordinates (EPSG:25832 and WGS84). Example: dar_list_access_addresses({ municipality_code: "0101", road_code: "5240", page_size: 50 }). Does NOT search by street name. For that use dar_search_addresses (needs DATAFORDELER_API_KEY). Danish municipality codes are 4 digits with a leading zero (København 0101, Aarhus 0751, Odense 0461, Aalborg 0851).
| Name | Type | Req | Description |
|---|---|---|---|
| cadastral_parcel_id | string | – | Jordstykke id. |
| municipality_code | string | – | Kommunekode, 4 digits, e.g. "0101". |
| page | integer | – | 1-based page number. |
| page_size | integer | – | – |
| postcode_id | string | – | Postnummer UUID (not the 4-digit code). |
| road_code | string | – | Vejkode within the municipality, 4 digits, e.g. "5240". |
| status | string | – | "current" returns only status 3 (gældende) records; "all" includes preliminary, discontinued and cancelled. |
| street_id | string | – | NavngivenVej UUID. |
No output schema declared.
No examples provided.
dar_list_addresses List addresses at an access address ~179
List the unit addresses (floors/doors) that belong to one access address (husnummer). Example: dar_list_addresses({ access_address_id: "0a3f507a-d330-32b8-e044-0003ba298018" }) -> 12 addresses at Oehlenschlægersgade 35 (st. tv, st. th, 1. tv, ...). Returns compact records (id, text, floor, door, status). Fetch one with dar_get_address for full detail. A single-family house typically has exactly one address with no floor/door.
| Name | Type | Req | Description |
|---|---|---|---|
| access_address_id | string | yes | DAR/DAWA access-address UUID. |
| status | string | – | "current" returns only status 3 (gældende) records; "all" includes preliminary, discontinued and cancelled. |
No output schema declared.
No examples provided.
dar_search_addresses Search streets and addresses by text prefix (API key) ~429
Find streets, access addresses or unit addresses whose official text starts with a prefix, via the Datafordeler GraphQL service. REQUIRES DATAFORDELER_API_KEY. The service supports prefix matching only (startsWith): no fuzzy, substring or typo-tolerant search, and it is CASE-SENSITIVE. Write the prefix the way DAR writes it: "Vejnavn husnummer, postnr By". This tool upper-cases the first letter for you; the rest must match exactly, including Danish letters (æ, ø, å). level: - "street": match street names (NavngivenVej), e.g. "Rentemester" -> Rentemestervej in København (0101) and Hvidovre. Returns street id, name and administering municipality code. Feed the id to dar_list_access_addresses({ street_id }) to enumerate house numbers. - "access_address" (default): match entrances, e.g. "Rentemestervej 8" -> Rentemestervej 8, 80, 82, ... Results are NOT ranked; an exact house number is one of several prefix matches, so add ", 2400" or pick by house_number. - "address": match unit addresses including floor/door, e.g. "Oehlenschlægersgade 35, st". Returns ids and text only. Follow up with dar_get_access_address / dar_get_address for coordinates, municipality and postcode. Paginate with the returned next_cursor. Example: dar_search_addresses({ query: "Rentemestervej 8, 2400", limit: 5 }).
| Name | Type | Req | Description |
|---|---|---|---|
| after | string | – | Cursor from a previous result's next_cursor, for the next page. |
| level | string | – | – |
| limit | integer | – | – |
| only_current | boolean | – | Keep only status 3 (gældende) records. |
| query | string | yes | Text prefix, e.g. "Rentemestervej 8" or, for level "street", "Rentemester". |
No output schema declared.
No examples provided.
dar_status DAR connection status ~122
Check connectivity to Datafordeleren (DAR) and report which access paths are configured. Returns: whether the legacy REST service answers (and its latency), whether an API key for the GraphQL service is configured, the REST sunset date (2027-01-15; after it only API-key/OAuth access exists), and the attribution text that must accompany the data (CC BY 4.0, Klimadatastyrelsen). Use first when a DAR call fails unexpectedly, or to decide whether text search (dar_search_addresses, needs API key) is available.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
How do I install the io.github.aneal99/datafordeler-dar-mcp server?
io.github.aneal99/datafordeler-dar-mcp runs locally as an npm package, launched with npx -y datafordeler-dar-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · datafordeler-dar-mcp
claude mcp add aneal99-datafordeler-dar-mcp -- npx -y datafordeler-dar-mcp
What is the io.github.aneal99/datafordeler-dar-mcp server?
io.github.aneal99/datafordeler-dar-mcp is listed in the public MCP registry as io.github.aneal99/datafordeler-dar-mcp. Danish addresses from Datafordeleren's DAR register, the replacement for DAWA. This page covers its npm package (datafordeler-dar-mcp).
Is the io.github.aneal99/datafordeler-dar-mcp server safe to use?
io.github.aneal99/datafordeler-dar-mcp scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.aneal99/datafordeler-dar-mcp server expose?
io.github.aneal99/datafordeler-dar-mcp exposes 10 tools: dar_status, dar_get_address, dar_get_access_address, dar_list_addresses, dar_list_access_addresses, and 5 more. Their descriptions and schemas cost roughly 2,523 tokens of context every time the server is loaded.
Is the io.github.aneal99/datafordeler-dar-mcp server still maintained?
io.github.aneal99/datafordeler-dar-mcp is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.aneal99/datafordeler-dar-mcp server under?
io.github.aneal99/datafordeler-dar-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.