JU

Justicelibre

io.github.Dahliyaal/justicelibre

MCP juridique : jurisprudence et lois françaises, 3,9 M+ décisions, 19 outils, accès libre

Yes, your AI can use this right now.Answered a live MCP handshake in 691 ms with no sign-in needed and exposes 19 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://justicelibre.org/mcp

19 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
search_doctrineread-only

Opinions of the CADA (access to administrative documents), decisions of the Défenseur des droits, conclusions of the CE's rapporteurs publics, BOFiP (tax guidance), Code du travail numérique, CNIL deliberations. These are NOT court decisions: an opinion does not bind the judge. Keywords in French. Read a document: get_decision(id=…). For conclusions (ariane_crp), the case number is `numero`; `

get_law_articleread-only

Article of a French code or statute, as in force on a date (default: today). `code` accepts an abbreviation ("CT", "cc"), a name ("code du travail"), a LEGITEXT or a statute ("loi 91-647", "loi du 1er juillet 1901"); list: about(topic="codes"); European texts: "CEDH" (protocols: num="P1-1"), "CHARTE_UE", "TUE", "TFUE". To cite an older decision, pass its date: the article is served as it stood the

search_decisions_citingread-only

Court decisions that EXPLICITLY cite an article ("article 1240 du code civil", "art. L. 1152-1 du code du travail"). Does not find indirect references or citations without an article number: searching by concept is for `search`. Example: search_decisions_citing(code="CC", num="1240")

searchread-only

Searches all sources (French and European case law, codes and statutes, Journal officiel, collective agreements, doctrine), expanding to legal synonyms. Entry point for an open question; for one specific court, use `search_case_law`. A citation ("Cass. soc. 11 mai 2022", an ECLI, an appeal number) is recognised and searched as such. Singular and plural are searched together; "in double quotes": th

search_case_lawread-only

Decisions of one court or court family, by relevance or by date (latest decisions: `search_recent_admin_decisions`). Keywords in French. ECHR, CJEU: texts sometimes in English only. Example: search_case_law(query="licenciement inaptitude", court="CASS") Args: query: keywords (optional with numero_rg), plural included except "in double quotes"; OR/AND/NOT/NEAR in UPPERCASE between two

search_recent_admin_decisionsread-only

Latest decisions from the administrative courts' open data (daily mirror), sorted by date: what a court has just decided (by relevance: `search_case_law`). All words required (singular or plural); "in double quotes": exact form; OR/AND/NOT/NEAR in UPPERCASE between two words are operators (NEAR = within 10 words); lowercase words are plain words. Keywords in French: judgments spell out the full e

get_decisionread-only

Full text of a decision, by `id` or by `numero` (+ `court`). Several decisions with that number: list `decisions` (ECHR/CJEU: the one judgment is served, the rest in `autres_documents`). An administrative number alone ("2200433") is refused; CE: see `homonymes`. Also reads doctrine (cada:…, ddd:…), JORFTEXT and KALIARTI ids. Examples: get_decision(id="CETATEXT000007641393") get_decision(n

search_legislationread-only

Keyword search in French codes and statutes (LEGI), the Journal officiel (JORF) or collective agreements (KALI). Known article: `get_law_article`. Keywords in French. Example: search_legislation(query="harcèlement moral", code="CT") Agreement (corpus="kali"): idcc="1486" without query → table of contents; query="Syntec" → agreements, texts; KALI id → sections or text. Args: query: key

resolve_referenceread-only

Turns a reference into an identifier and an official link: statute or decree number ("91-647", "loi n° 78-17") → the text; identifier (LEGIARTI, LEGITEXT, JORFTEXT, CETATEXT, JURITEXT, ECLI, CELEX of a judgment or of a text, HUDOC) → URL at the source; European article ("art. 8 CEDH", "267 TFUE", "P1-1") → official link and the get_law_article call. A decision number is read with get_decisi

get_legislative_historyread-only

Legislative history (travaux préparatoires) of a French statute: the Assemblée nationale and Sénat files, with stages, texts and reports. Example: get_legislative_history(loi="2016-1547") Args: query: keywords from the file title (French); OR/AND/NOT in UPPERCASE between two words are operators; lowercase words are plain words loi: statute number ("2016-1547") limit: numbe

search_directoryread-only

Public addresses and contacts in France: courts, court registries (greffes), town halls, CCAS, prefectures, public services. Example: search_directory(query="tribunal judiciaire Dunkerque") Args: query: name, town or type of office (French); OR/AND/NOT in UPPERCASE between two words are operators ("Lille OR Douai"); lowercase words are plain words category: directory category (op

aboutread-only

What JusticeLibre covers (sources, volumes, freshness, terms of use), the list of administrative courts and their codes, or the list of codes and statutes accepted by get_law_article. Example: about(topic="codes") Args: topic: service | courts | codes

delete_account_itemcan modify

Permanently deletes one object of the user's JusticeLibre account: a case file (with all its content), a saved reference, a subfolder, a note, or an AI skill proposal not yet activated (`skill`, id s_… or p_…). No recycle bin. confirm=true states the user's explicit agreement; without it, nothing is deleted. Permission supprimer; a reference the AI saved itself can also be removed with permiss

check_citationsread-only

Check each result against the source text (link provided). Finds where a quoted passage comes from: paste the quotation alone (a sentence or a paragraph, 3,000 characters at most), in its original language. Returns the statutory texts and decisions that contain it, with a match percentage (100 = word for word, once line breaks, punctuation, case and accents are removed) and the word-by-word differ

get_account_itemread-only

Reads one object of the user's JusticeLibre account, without changing anything: the account itself (case files with their "d_…" ids, permissions of this connection, skills applied to new case files, tickets and their limits), a whole case file (case sheet, subfolders, saved references "e_…" with their verification state, notes, set-aside references with their reason, active skills), a saved re

create_account_item

Creates one of: a case file, a subfolder, saved references (articles, statutes, decisions, CADA opinions, CNIL deliberations, doctrine), an AI note, a skill proposal (inactive until the user activates it). Never changes existing content. Fields marked "kind: …" apply to that kind only. Requires a JusticeLibre account (OAuth sign-in); without one, the tool says so.

update_account_itemcan modify

Sets the state of an existing case file (title, subtitle, case sheet), subfolder (name), saved reference (subfolder, set aside with a reason) or AI note (text, pinned, set aside). Only the fields given change; giving the same values again changes nothing. Overwrites the previous values. Notes written by the user cannot be changed. Nothing is deleted: deletion is delete_account_item. Requires a Jus

open_ticket

Opens a ticket with the JusticeLibre team ON BEHALF of the user (marked "via AI") to report wrong data, a missing source, a bug, or an idea. Use only if the user asks for it or approves it. Permission tickets; AI limits on top of the user's own: 3 tickets a day, 5 messages an hour; 3 plain-text attachments at most. Replies are read with get_account_item. Requires a JusticeLibre account (OAuth sign

reply_ticket

Adds a message to an existing ticket of the user ON THEIR BEHALF (marked "via AI"). Use only if the user asks for it or approves it. Permission tickets; 5 messages an hour for the AI; 3 plain-text attachments at most. Requires a JusticeLibre account (OAuth sign-in); without one, the tool says so.

Alternatives in Developer Tools

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”