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.2

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.2
File Size Uploaded
lu_eli_mcp-0.3.2.tar.gz 27.2 kB Details

Built distribution (wheel)

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

Total release size: 49.1 kB

Release files / lu_eli_mcp-0.3.2.tar.gz

Download URL lu_eli_mcp-0.3.2.tar.gz
Size 27.2 kB
Tags Source
SHA-256 checksum
How to use checksums
84aa2c5335bc3b2f0ecd4a1435bbc8d545feb6f6ee15187c8b7e8a2e2704ccb6
BLAKE2b-256 checksum
How to use checksums
289e9520306b5bb11d5a64f7231f62f2569ba0b4feb3805d812a0863588c11b5
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.2-py3-none-any.whl

Download URL lu_eli_mcp-0.3.2-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01a2b6ced3f0d9cfcec160aef759563612c139a39f136dd58ea289e97f8a52b8
BLAKE2b-256 checksum
How to use checksums
692f366d0b6164465316669db2b8f8022bd74d63fe42a16312016b19aa43428e
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

This release

0.3.2 This release

2 release files

0.3.1

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