lu-eli-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LU_ELI_BASE_URL | No | Legilux data host | https://data.legilux.public.lu |
| LU_ELI_AUDIT_DIR | No | Audit log dir | ~/.matematic/audit |
| LU_ELI_CACHE_DIR | No | Disk cache dir | ~/.matematic/cache/lu-eli |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lu_get_actA | Fetch metadata for a Luxembourg act by its ELI. |
| lu_coverageA | Declare what this connector covers, how it is sourced, and what it does NOT cover. Call this before telling a user that the law "does not contain" something, and whenever a search comes back empty: the absence may be a gap in this connector rather than in the law. Every gap carries a fallback saying where to look instead. Returns:
|
| lu_get_textA | Fetch the verbatim text of a Luxembourg act in one language and format. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: fetching metadata, fetching verbatim text, and declaring coverage/gaps. There is no overlap or ambiguity between them, so an agent can easily select the right tool for the task.
All tools share the 'lu_' prefix, and two use the verb_noun pattern (get_act, get_text). However, 'lu_coverage' uses a noun directly rather than a verb, creating a minor deviation. The pattern is still readable and predictable overall.
At 3 tools, the set is small but well-scoped for a read-only Luxembourg legislation connector. Each tool fills a necessary role, though a search/browse tool could be expected; the coverage tool partially compensates by documenting gaps.
The connector covers core operations: fetching metadata and full text, plus an explicit gaps/coverage tool to prevent false negatives. Missing a search or listing capability is a minor gap, but the coverage tool's fallbacks mitigate this.