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

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.3
File Size Uploaded
lu_eli_mcp-0.3.3.tar.gz 27.3 kB Details

Built distribution (wheel)

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

Total release size: 49.2 kB

Release files / lu_eli_mcp-0.3.3.tar.gz

Download URL lu_eli_mcp-0.3.3.tar.gz
Size 27.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6447f98f94fe047ee7b4cb635e0d4b2b6f43f1f92515ed3ca0cf0fd5ad9206e9
BLAKE2b-256 checksum
How to use checksums
c82034dbc1c5efcaa7c750841172ea92afb2ed571da0a1d3f4e6986ba9ff66fe
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.3-py3-none-any.whl

Download URL lu_eli_mcp-0.3.3-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8c656fa88875483a6d63acb78b22406ad68218a2034de290446fa42ea0b8e96e
BLAKE2b-256 checksum
How to use checksums
56dfe91e0718de41adba102e1310ab5df10c7abc2e8c180bc5fc087f7b16b8ce
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

This release

0.3.3 This release

2 release files

0.3.2

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