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

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.0
File Size Uploaded
lu_eli_mcp-0.3.0.tar.gz 26.5 kB Details

Built distribution (wheel)

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

Total release size: 48.3 kB

Release files / lu_eli_mcp-0.3.0.tar.gz

Download URL lu_eli_mcp-0.3.0.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
92081fc905f37625eab3ce40d1793de1e07743fe3ef484c30fef9d682e8a30c5
BLAKE2b-256 checksum
How to use checksums
d5b1b8d1906edf81cb388bd6f0a58eeae51fc1cc0231a6b25522fd5817353e8e
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.0-py3-none-any.whl

Download URL lu_eli_mcp-0.3.0-py3-none-any.whl
Size 21.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
990c86073f0339724fe3926880ed76ebc3d6b7a79f70242196ef7897792cddf8
BLAKE2b-256 checksum
How to use checksums
1a6637773cd5ddd7bd5b8aab9fbf62c8736b28905fb2dc1e24b67a61e40ac1fc
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

0.3.1

2 release files

This release

0.3.0 This release

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