Skip to main content

lu-eli-mcp

Install (one command)

Published on PyPI + MCP Registry (io.github.matematicsolutions/lu-eli-mcp). Run without cloning:

uvx lu-eli-mcp

Configure your MCP client (stdio):

{ "mcpServers": { "lu-eli-mcp": { "command": "uvx", "args": ["lu-eli-mcp"] } } }

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the lu-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:

python -m pip install lu-eli-mcp
python -m lu_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 lu_eli_mcp.

{ "mcpServers": { "lu-eli-mcp": { "command": "python", "args": ["-m", "lu_eli_mcp"] } } }

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

Building from source: see Install.

An MCP server for Luxembourg legislation via Legilux open data (data.legilux.public.lu). It fetches act metadata and full Akoma Ntoso text with verifiable citations. Part of the eu-legal-mcp line of national legal connectors by MateMatic.

Legilux is genuinely ELI-native: every act is addressed by its ELI and described as jolux RDF over a FRBR model (Work / Expression / Manifestation), with full text as Akoma Ntoso XML. Every response carries a native eli_uri, a human_readable_citation and a resolvable source_url.

Read-only. The server only queries Legilux and writes a local audit log. It never modifies official text.

Tools

Tool What it does
lu_get_act(eli) Metadata for an act by its ELI (full URI or bare eli/... path). Returns the native eli_uri, title, dates, in-force status, available languages / manifestations, and the act's cites / modifies / repeals links.
lu_get_text(eli, language, file_format) Verbatim text in one language (default fr) and file_format (default xml, Akoma Ntoso).
lu_coverage() Declare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback.

There is no free-text search: Legilux exposes no HTTP search endpoint. Discover acts by ELI coordinates (from legilux.public.lu) or by following the cites / modifies / repeals ELIs that lu_get_act returns. Luxembourg is multilingual, so titles and text may be French or German; the languages field shows what exists for a given act.

Configuration

Legilux is keyless. Configuration is optional:

Variable Meaning
LU_ELI_BASE_URL Legilux data host (default https://data.legilux.public.lu).
LU_ELI_CACHE_DIR Disk cache dir (default ~/.matematic/cache/lu-eli).
LU_ELI_AUDIT_DIR Audit log dir (default ~/.matematic/audit).

Copy .mcp.json.example to your MCP client config.

Install

py -3.13 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"   # Windows
# or: python -m pip install -e ".[dev]"                  # POSIX

Tests

pytest tests/test_instructions_drift.py tests/test_parse.py   # offline
pytest tests/test_smoke.py -v                                 # live, hits Legilux

Licence

Apache-2.0. Legilux content is © the Grand Duchy of Luxembourg; this software only retrieves and cites it.

Release files for lu-eli-mcp 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lu-eli-mcp 0.3.1
File Size Uploaded
lu_eli_mcp-0.3.1.tar.gz 26.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lu-eli-mcp 0.3.1
File Interpreter ABI Platform
lu_eli_mcp-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 48.5 kB

Release files / lu_eli_mcp-0.3.1.tar.gz

Download URL lu_eli_mcp-0.3.1.tar.gz
Size 26.6 kB
Tags Source
SHA-256 checksum
How to use checksums
eecf93e5f2ab2d3c9898754b56ee65f011f02db313992ade35b2f972fb004ebc
BLAKE2b-256 checksum
How to use checksums
468709d8fa95abfe35742e6e582d9c749bd39384688983c79b5c9d4b9bed7be3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / lu_eli_mcp-0.3.1-py3-none-any.whl

Download URL lu_eli_mcp-0.3.1-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d3a0eb1a07020cafb1ce0babe4d6935eb79986e77afc6234fcf2417a647a5df
BLAKE2b-256 checksum
How to use checksums
e719ad7ef6ff19dbaa16f28ba45a86f3320989238d74f284809592b8f1e4e379
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.3.3

2 release files

0.3.2

2 release files

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page