fr-eli-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FR_ELI_BASE_URL | No | Legifrance lf-engine-app base URL. | https://sandbox-api.piste.gouv.fr/api/v1 |
| FR_ELI_AUDIT_DIR | No | Audit log dir (default ~/.matematic/audit). | ~/.matematic/audit |
| FR_ELI_CACHE_DIR | No | Disk cache dir (default ~/.matematic/cache/fr-eli). | ~/.matematic/cache/fr-eli |
| FR_ELI_CLIENT_ID | Yes | Your PISTE application client id (required). | |
| FR_ELI_OAUTH_URL | No | OAuth token endpoint (sandbox default shown in .mcp.json.example). | https://sandbox-oauth.piste.gouv.fr/api/oauth/token |
| FR_ELI_CLIENT_SECRET | Yes | Your PISTE application client secret (required). |
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 |
|---|---|
| fr_searchA | Keyword-search French legislation or case law on Legifrance. |
| fr_get_actB | Consult a LODA law or decree by its |
| fr_get_textA | Fetch the verbatim text of a single article ( |
| fr_get_decisionA | Consult a court decision by its id (returns the native ECLI). Covers three jurisdictions via the same Legifrance
|
| fr_get_deliberationA | Consult a CNIL deliberation by its |
| fr_get_conventionA | Consult a collective labour agreement text by its |
| fr_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:
|
| fr_get_company_agreementA | Consult a company-level agreement by its Legifrance distributes the full text of ACCO agreements only as a |
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 8 tools
Each tool targets a distinct document type or action: search, acts, articles, decisions, deliberations, collective agreements, company agreements, and coverage. The ID-prefix distinctions (LEGITEXT, LEGIARTI, JURITEXT, CNILTEXT, KALITEXT, ACCOTEXT) remove ambiguity.
The fr_ prefix and get_<object> pattern are used consistently across retrieval tools, with fr_search as a clear verb. The only slight deviation is fr_coverage, which uses a noun instead of a verb, but the pattern remains predictable.
With 8 tools, the server is well-scoped for a French legal research connector. Each tool covers a meaningful retrieval need without unnecessary overlap or bloat.
The surface covers search, full acts, individual articles, court decisions across multiple jurisdictions, CNIL deliberations, collective agreements, and company agreement metadata. The explicit coverage tool also handles known gaps, making the read-only legal domain feel complete.