Dk Eli Mcp

io.github.matematicsolutionsPublished by GitHub account matematicsolutionsv0.3.3Updated Oct 24, 2026

MCP server for Danish legislation (Retsinformation) with native ELI and verifiable citations.

Overview

AI-generated overview

Local MCP server that lets an assistant fetch Danish legislation from Retsinformation by ELI identifier, with verifiable citations.

What you can do
Look up document metadata by year and number or by accession number, and list documents changed on a given date via the harvest API. Retrieve the full official LexDania XML text of a document. Report what the connector covers and does not cover, with a fallback for each gap. Every response includes an ELI URI, a human-readable citation and a source URL.
When to use it
Useful when an assistant needs to ground answers about Danish laws, consolidated laws, executive orders, circulars or guidelines in the official text, or to check which Danish documents changed on a particular date.
Requirements
Runs locally as a Python package, started with uvx or as a module through the Python interpreter. Network access to retsinformation.dk and its harvest API. No API key. Optional environment variables set base URLs, a cache directory and an audit directory. On Windows 11 with Smart App Control, run it through the signed Python interpreter rather than the blocked launchers.
Before you install
Read-only against public data, but every tool call appends a JSON line to a local audit log. The harvest API behind the recent-changes tool is only available 03:00-23:45 Danish time and returns an upstream error outside that window. Content is in Danish only.

Installation

In SourceWeft

  1. Open Dk Eli Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

dk-eli-mcp

An MCP server for the Danish Retsinformation legal database (retsinformation.dk). It fetches Danish legislation as LexDania 2.1 XML behind native ELI URIs, with verifiable citations.

Part of the MateMatic eu-legal-mcp production line - after PL, DE, AT, ES, FI, IE, NL, SE, FR and LU. Same citation contract, Retsinformation source. Denmark is ELI-native: every document has a stable data.europa.eu/eli-typed identifier exposed as a retsinformation.dk/eli/... URL.

Scope. This MVP grounds Danish documents by ELI coordinate (year + number in the lta collection = Lovtidende A) or by accession number, and lists documents changed on a date. The API is path-based, not keyword search. It covers laws (LOV), consolidated laws (LBK), executive orders (BEK), circulars (CIR) and guidelines (VEJ). Language: Danish. Every response carries a dataset_note.

Licence of the data. Danish legislation in Retsinformation is official public information published as Open Data (keyless). This connector relays it with attribution and a source_url.

The tools

ToolWhat it does
dk_get_actMetadata for a document by year + number, or by accession.
dk_get_textFull LexDania XML of a document (verbatim official text).
dk_recent_changesDocuments changed on a given date (harvest API).
dk_coverageDeclare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback.

Every response carries the contract: eli_uri (a full ELI URL, e.g. https://www.retsinformation.dk/eli/lta/2018/502), human_readable_citation (e.g. Databeskyttelsesloven (LOV nr. 502 af 23/05/2018)), and source_url.

Install

Run it with no install step (once published to PyPI):

bash
uvx dk-eli-mcp

Or from source:

bash
cd dk-eli-mcppip install -e .

Configure (Claude Code / any MCP client)

json
{  "mcpServers": {    "dk-eli-mcp": { "command": "dk-eli-mcp" }  }}

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the dk-eli-mcp.exe launcher that pip writes at install time. The python.exe and py.exe from the python.org installer are signed by the Python Software Foundation, so running the module through the interpreter works:

bash
python -m pip install dk-eli-mcppython -m dk_eli_mcp

pip.exe is blocked for the same reason, so install with python -m pip, not pip install. If python is not on PATH, use the Windows launcher: py -3 -m dk_eli_mcp.

json
{ "mcpServers": { "dk-eli-mcp": { "command": "python", "args": ["-m", "dk_eli_mcp"] } } }

Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.

Environment:

  • DK_ELI_BASE_URL - default https://www.retsinformation.dk
  • DK_ELI_API_URL - default https://api.retsinformation.dk (harvest API)
  • DK_ELI_CACHE_DIR - default ~/.matematic/cache/dk-eli
  • DK_ELI_AUDIT_DIR - default ~/.matematic/audit

No API key. Retsinformation open data is keyless.

The harvest API behind dk_recent_changes is only available 03:00-23:45 Danish time. Outside that window the tool returns an upstream_error; an empty list during the window means nothing changed on that date.

Governance

  • Public data only - read-only against Retsinformation; no client data leaves the machine.
  • Audit log - every tool call appends one JSON line to ~/.matematic/audit/dk-eli-mcp.jsonl.
  • Vendor-neutral - talks only to retsinformation.dk; no LLM provider, no telemetry.
  • Verifiable citations - every response is independently checkable via source_url.

See CONSTITUTION.md and DISCOVERY.md.

Tests

bash
pip install -e ".[dev]"pytest tests/test_instructions_drift.py tests/test_parse.py -v   # offlinepytest tests/test_smoke.py -v                                    # hits live Retsinformation

Licence

Apache-2.0. © Matematic Solutions / Wieslaw Mazur.

Source: README.md at commit dce5db0

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts