Skip to content

Latest commit

 

History

220 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JusticeLibre

🌐 Site officiel : https://justicelibre.org 📡 Endpoint MCP : https://justicelibre.org/mcp (Streamable HTTP, sans clé)

L'accès libre à la jurisprudence française et européenne. Alternative open source à Doctrine, Lexis et Légifrance.

Site MCP Server Décisions Articles de loi Licence

Serveur Model Context Protocol (MCP) qui expose ~3,3 M décisions de justice + ~1,5 M articles de loi consolidés + ~700 k textes annexes (KALI/JORF/CNIL) de la France, de l'UE et du Conseil de l'Europe — gratuit, sans authentification, indexé sur Google.

Source Volume Couverture
Cour de cassation + cours d'appel + Conseil constitutionnel 1 169 102 DILA bulks + Judilibre PISTE
Conseil d'État + 9 CAA + 40 TA (JADE bulk) 552 576 DILA bulk
Open data justice administrative (CE/CAA/TA récents) 985 996 API justice-administrative.fr
ArianeWeb (Conseil d'État) 70 396 scrape Sinequa
Cour Européenne des Droits de l'Homme 76 051 HUDOC (FR + fallback EN)
Cour de Justice de l'Union Européenne 44 270 EUR-Lex / Cellar
INCA (jurisprudence judiciaire ancienne) 382 480 DILA bulk
TOTAL décisions ~3,28 M
Articles de loi en vigueur (LEGI) 1 481 309 DILA bulk
Conventions collectives (KALI) 286 732 DILA bulk
JO (textes non codifiés) 409 564 DILA bulk
Délibérations CNIL 8 126 DILA bulk

Pourquoi JusticeLibre

Les outils juridiques propriétaires (Pappers Justice, Doctrine.fr, Lexis 360, Dalloz) coûtent 50-200 €/mois et ferment l'accès au droit derrière un paywall. L'open data juridique français existe (loi 2016 République Numérique, loi 2019 réforme de la justice) mais reste techniquement inaccessible :

  • Légifrance n'expose que ~25% de la jurisprudence en open data, fragmenté
  • Judilibre nécessite OAuth2 PISTE (frictionnel, oublie ChatGPT/Claude classique)
  • Les bulks DILA arrivent en ZIPs XML bruts de plusieurs Go, inutilisables sans pipeline ETL
  • Les TAs ne sont diffusés que par une API Elasticsearch non documentée

JusticeLibre rend cette donnée immédiatement utilisable par tout LLM ou humain :

  • Aucune clé, aucun compte : utilisable depuis Claude.ai, ChatGPT, Cursor, Zed, Continue immédiatement
  • Couverture unique : Cour de cassation + Conseil d'État + Conseil constitutionnel + 9 CAA + 40 TA + CEDH + CJUE + délibérations CNIL
  • Articles de loi avec versions historiques : "quel était l'article 1382 CC en 1992 ?" → texte napoléonien, pas la réforme 2016
  • Indexable Google : ~3 M URLs SSR exposées (sitemap), pas un SPA bot-blind
  • Open source MIT : auto-hébergeable

Comparaison

JusticeLibre Pappers Justice OpenLegi mcp-juridique.fr Doctrine.fr
Gratuit ❌ payant partiel ❌ payant ❌ 50€/mois
Sans inscription
Cour EDH ✅ 76k décisions ⚠️ partiel
CJUE ✅ 44k arrêts ⚠️ partiel
Conseil constit. ✅ 7k décisions + tool dédié ⚠️ ⚠️
40 TA en parallèle ✅ fan-out ⚠️ partiel
9 CAA en parallèle ✅ fan-out ⚠️
CNIL délibérations ✅ ~8k ⚠️
Articles loi versionnés ✅ 1.5M ⚠️ ⚠️ Légifrance brut ⚠️
BM25 pertinence ⚠️ ⚠️ ⚠️
Open source ✅ MIT ⚠️
MCP natif ✅ Streamable HTTP ❌ (REST seul)
Indexable Google ✅ 3M SSR pages ❌ SPA

Outils MCP exposés (29)

Recherche fédérée

Outil Description
search_all Fan-out parallèle sur toutes les sources, ranking BM25 + bonus autorité (CE +20%, Cass +15%, CEDH +15%, CAA +10%)
about_justicelibre Présentation des tools, hiérarchie d'autorité, workflow recommandé

Jurisprudence judiciaire (PISTE Judilibre + bulk DILA)

Outil Description
search_judiciaire_libre 1.17M décisions (Cass + CA + Conseil constit.) - bulk DILA, sans auth
get_decision_judiciaire_libre Texte intégral via JURITEXT/CONSTEXT id
search_judiciaire Live PISTE Judilibre (besoin OAuth)
get_decision_judiciaire Texte via PISTE
search_cc Conseil constitutionnel dédié (7112 décisions, filtre par nature : QPC/DC/L/SEN/AN/PDR)
get_cc_decision Cette décision CC, par son numéro (ex: "2023-1048 QPC"). Lookup exact : un numéro porté par plusieurs natures (2019-778 existe en DC et en QPC) est refusé tant que nature n'est pas précisé, plutôt que de servir un voisin. Pour la postérité d'une décision (qui la cite, la confirme, la renverse) : search_cc(query='"2019-778 DC"')

Jurisprudence administrative (CE + 9 CAA + 40 TA)

Outil Description
search_admin BM25 pondéré sur 552k décisions admin bulk JADE
get_admin_decision Lookup par numéro de requête (désambiguïsation par juridiction). Échoue si le numéro est introuvable — ne sert jamais la décision « la plus proche »
get_ce_decision CE spécifique, avec repli ArianeWeb si le numéro n'est pas dans le bulk. Idem : pas de résultat approchant
search_conseil_etat ~270k CE via Sinequa (moteur sémantique natif)
get_decision_text Texte intégral via DCE/DTA/DCAA id
search_admin_recent / _all_caa / _all_ta Tri date desc pour l'actualité
list_juridictions 51 codes juridiction (CE, CAA13...78, TA06...109)

Jurisprudence européenne

Outil Description
search_cedh 76k décisions Cour EDH avec sémantique ECHR
get_decision_cedh Texte via itemid (ex: "001-249914")
search_cjue 44k arrêts CJUE + Tribunal UE
get_decision_cjue Via CELEX ou ECLI

Articles de loi (killer feature)

Outil Description
get_law_article Article à une date donnée. Ex: ("CC","1128","1992-05-15") -> texte napoléonien ; ("CC","1128","2024-01-01") -> texte post-réforme. titre_texte = titre du texte parent ; la hiérarchie des sections (partie/livre/titre/chapitre) n'est pas ingérée du bulk LEGI et n'est donc pas renvoyée
get_law_versions Timeline complète des versions d'un article
search_legi BM25 sur 1.5M articles consolidés (79 codes + Constitution + lois non codifiées). Un sigle code inconnu renvoie une erreur, jamais une recherche non filtrée déguisée en succès
search_decisions_citing Cross-référence inverse : "quelles décisions citent l'article X ?"
resolve_law_number Numéro loi/ord/décret -> LEGITEXT/JORFTEXT
build_source_url URL Légifrance canonique pour un identifier

Droit positif complémentaire

Outil Description
search_jorf 1.24M textes JO (lois, décrets, arrêtés, circulaires depuis 1990)
search_kali 335k conventions collectives + accords de branche
search_cnil ~8k délibérations CNIL (RGPD, données personnelles)

Quick start

Claude Desktop / Claude.ai

Dans Settings -> Connectors -> Add custom connector :

URL : https://justicelibre.org/mcp
Auth : aucune

ChatGPT / Cursor / Zed / Continue

Ajoute le serveur MCP https://justicelibre.org/mcp à ta config (cf doc de chaque client).

Auto-hébergement

git clone https://github.com/Dahliyaal/justicelibre.git
cd justicelibre
pip install -r requirements.txt

# Mode stdio (Claude Desktop)
python3 server.py

# Mode Streamable HTTP (Claude.ai web, OpenAI connectors)
python3 server.py http   # listen 0.0.0.0:8765

Exemples d'usage

Contentieux QPC

# Toutes les QPC sur l'article 8 DDHC ces 2 dernières années
search_cc(query="proportionnalité", nature="QPC",
          date_min="2024-01-01", date_max="2026-01-01")

Recours CEDH

# Décisions CEDH France sur la garde à vue
search_cedh(query="garde à vue France")
# Texte intégral
get_decision_cedh(itemid="001-249914")

Recherche jurisprudence administrative ciblée

# Tous les TA + CAA en parallèle sur "harcèlement institutionnel"
search_admin(query="harcèlement institutionnel université",
             sort="relevance", limit=30)
# TA Lyon spécifique
get_admin_decision(numero="2200433", juridiction="Tribunal Administratif de Lyon")

Article de loi à une date précise

# L. 262-8 CASF en vigueur au 1er janvier 2023
get_law_article(code="CASF", num="L262-8", date="2023-01-01")
# Toutes les versions historiques
get_law_versions(code="CC", num="1128")

Architecture

                        +---------------------+
                        |   Client MCP        |
                        | (Claude/ChatGPT/.)  |
                        +----------+----------+
                                   | Streamable HTTP
                                   v
                  +--------------------------------+
                  |  justicelibre.org/mcp          |
                  |  (FastMCP + nginx + cloudflare)|
                  +--+-------+--------+--------+---+
                     |       |        |        |
        +------------+       |        |        +------------+
        v                    v        v                     v
  +--------------+  +--------------+ +--------------+  +--------------+
  | Bulks DILA   |  | ArianeWeb    | | HUDOC API    |  | InforCuria   |
  | (SQLite +    |  | (Sinequa CE) | | (CEDH)       |  | (CJUE)       |
  |  FTS5 BM25)  |  |              | |              |  |              |
  +--------------+  +--------------+ +--------------+  +--------------+
       ~2.4M            ~270k           76k                44k
  • Bulks XML DILA téléchargés en local sur al-uzza (Hetzner) avec parsers Python
  • Index FTS5 SQLite par fond (jade.db, legi.db, jorf.db, kali.db, cnil.db)
  • Fallback live API pour la fraîcheur
  • Indexation Google : 3M+ URLs SSR via sitemap (vs SPA bot-blind chez les concurrents)

Sources de données

Source Volume Auth URL
DILA bulks (CASS/CAPP/CONSTIT/JADE/JORF/KALI/CNIL/LEGI) ~6 M docs Aucune echanges.dila.gouv.fr
ArianeWeb Conseil d'État ~270k Aucune conseil-etat.fr
opendata.justice-administrative.fr ~1.5M Aucune opendata.justice-administrative.fr
HUDOC Cour EDH 76k Aucune hudoc.echr.coe.int
InforCuria CJUE 44k Aucune curia.europa.eu
PISTE Judilibre (optionnel) toutes nouvelles décisions OAuth2 piste.gouv.fr

Données sous Licence Ouverte 2.0 (Etalab) - réutilisation libre avec mention de la source.


Limites légales respectées

JusticeLibre respecte strictement :

  • Article 226-18, 226-24, 226-31 Code pénal : interdiction de profiler les magistrats (jamais de stats par juge dans les outils exposés)
  • Loi 78-17 Informatique et Libertés : pseudonymisation respectée (ne pas ré-identifier les personnes anonymisées par DILA)
  • Licence Ouverte 2.0 : mention de source et date sur chaque page

Status & roadmap

  • V1 : 6 tools sur opendata.justice-administrative.fr (avril 2026)
  • V2 : +CEDH, CJUE, Légifrance/PISTE codes consolidés
  • V3 : Killer features articles loi + cross-référence décisions citant
  • V4 : Bulks DILA en MCP (BM25 admin, judiciaire libre, CC, CNIL, JORF, KALI)
  • V5 : Thésaurus FR (495 entrées) + search_all unifié + bonus autorité
  • V6 : SSR + sitemap (~3M URLs indexables Google), citations cliquables Légifrance dated, source attribution
  • Crawl complet TAs opendata (~1,5M en cours)
  • LLM extraction citations contextuelles ("même code", "présent code")
  • Embeddings BGE-M3 sur tout le corpus pour recherche sémantique

Communauté

  • Issues / suggestions : GitHub Issues
  • MCP Registry : PulseMCP
  • Built by : @Dahliyaal - projet né d'un usage personnel sur 8 fronts contentieux en parallèle (MDPH, RSA, Barreau, etc.). Outil né d'un besoin réel, pas d'un wrapper Légifrance pondu pour le SEO.

Contribuer

Tout PR bienvenue : nouveaux scrapers, fixes, traductions, exemples d'usage, intégrations clients MCP.

git clone https://github.com/Dahliyaal/justicelibre.git
cd justicelibre
bash tests/run_all.sh   # tests

Licence

MIT - Logiciel libre. Données sous Licence Ouverte 2.0 (Etalab).

About

Accès libre à la jurisprudence française et européenne · MCP server + REST API + recherche web sur ~3M décisions (Cass, CE, CAA, TA, CEDH, CJUE) + 1.5M articles de loi (LEGI/JORF/KALI)

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages