Content
# lu-eli-mcp
<!-- mcp-name: io.github.matematicsolutions/lu-eli-mcp -->
## Instalacja (jedna komenda)
Opublikowany na PyPI + MCP Registry (`io.github.matematicsolutions/lu-eli-mcp`). Uruchomienie bez klonowania:
```bash
uvx lu-eli-mcp
```
Konfiguracja klienta MCP (stdio):
```json
{ "mcpServers": { "lu-eli-mcp": { "command": "uvx", "args": ["lu-eli-mcp"] } } }
```
(Budowanie ze źródeł — niżej.)
An MCP server for **Luxembourg legislation** via [Legilux](https://legilux.public.lu) 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](https://matematic.co).
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). |
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
```bash
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
```bash
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.