Skip to main content
Glama

be-eli-mcp

An MCP server for Belgian legislation via [Moniteur Belge / Belgisch Staatsblad] (https://www.ejustice.just.fgov.be), the official gazette of the Belgian Federal Public Service Justice. It fetches act metadata and full text by ELI coordinates, with verifiable citations. Part of the eu-legal-mcp line of national legal connectors by MateMatic.

Belgian legislation is addressed by ELI coordinates - type / year / month / day / numac (the Belgian legislative numbering system) - at https://www.ejustice.just.fgov.be/eli/{type}/{yyyy}/{mm}/{dd}/{numac}/justel. Every response carries a native eli_uri, a human_readable_citation and a source_url.

Read-only. The server only queries ejustice.just.fgov.be and writes a local audit log. It never modifies official text.

Belgium is trilingual (French / Dutch / German). human_readable_citation defaults to the French form by LDH convention; use be_get_text(language=...) for Dutch (Belgisch Staatsblad) or German. See CONSTITUTION.md Art. 4 for the full caveat.

Tools

Tool

What it does

be_get_act(doc_type, year, month, day, numac)

Metadata for an act by its ELI coordinates. doc_type is one of loi, decret, ordonnance, arrete, constitution. Returns the native eli_uri, title, source authority, publication date, entry-into-force date, table of contents, and the citation contract.

be_get_text(doc_type, year, month, day, numac, language="fr")

The verbatim consolidated text ("Texte"/"Tekst" section) in fr (default), nl or de.

be_list_year(doc_type, year)

Browse a year's listing for one doc_type, to discover NUMAC coordinates. Titles in this listing are best-effort (may be None); call be_get_act for the authoritative title.

be_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: ejustice.just.fgov.be exposes no keyword-search API. Discover acts by ELI coordinates (from a citation you already hold) or by browsing be_list_year.

Related MCP server: lu-eli-mcp

Configuration

ejustice.just.fgov.be is keyless. Configuration is optional:

Variable

Meaning

BE_ELI_BASE_URL

ejustice host (default https://www.ejustice.just.fgov.be).

BE_ELI_CACHE_DIR

Disk cache dir (default ~/.matematic/cache/be-eli).

BE_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

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the be-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 be-eli-mcp
python -m be_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 be_eli_mcp.

{ "mcpServers": { "be-eli-mcp": { "command": "python", "args": ["-m", "be_eli_mcp"] } } }

Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.

Tests

pytest tests/test_instructions_drift.py tests/test_parse.py   # offline
pytest tests/test_smoke.py -v                                 # live, hits ejustice.just.fgov.be

Licence

Apache-2.0. Moniteur Belge / Belgisch Staatsblad content is © the Belgian federal state; this software only retrieves and cites it. See CONSTITUTION.md Art. 1 for a note on the licence status of the source data (widely described as CC0 by third-party catalogs; not independently re-verified against ejustice.just.fgov.be's own terms page in this project).

Available Tools

3 tools
be_get_actB
Read-onlyIdempotent

Fetch metadata for a Belgian act by its ELI coordinates.

Inputs: day (required), year (required), month (required), numac (required), +1 more. Returns: Result of ``be_get_act`` - metadata for a Belgian legal resource.

be_get_textA
Read-onlyIdempotent

Fetch the verbatim consolidated text of a Belgian act.

Inputs: day (required), year (required), month (required), numac (required), +2 more. Returns: Result of ``be_get_text`` - the verbatim text of an act.

be_list_yearA
Read-onlyIdempotent

Browse a year's listing of a Belgian legislation type, to discover NUMAC coordinates.

Inputs: year (required), doc_type (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool serves a distinct purpose: fetching metadata, fetching text, and browsing year listings. No overlap in functionality.

    Naming Consistency4/5

    All tools follow a 'be_verb_noun' pattern (be_get_act, be_get_text, be_list_year). Consistent prefix and verb usage, though 'year' as a noun slightly diverges from the resource type pattern.

    Tool Count4/5

    With 3 tools, the server is minimal but covers a basic workflow for Belgian legislation. The count is appropriate for a focused domain, though a small set may limit flexibility.

    Completeness3/5

    The server covers metadata retrieval, text retrieval, and year browsing. However, it lacks search or filter capabilities, which are common in legal databases, leaving some discovery gaps.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers