io.github.Dahliyaal/justicelibre
REMOTE · JUSTICELIBRE.ORG · SCANNED AUG 3
Free access to 3.3M French & EU court decisions + 1.5M law articles w/ history. 31 read-only tools
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 31 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9749 tokens (~286/item across 34 items; 31 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · justicelibre.org
claude mcp add --transport http dahliyaal-justicelibre https://justicelibre.org/mcp
[mcp_servers.dahliyaal-justicelibre] url = "https://justicelibre.org/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dahliyaal-justicelibre": {
"type": "remote",
"url": "https://justicelibre.org/mcp",
"enabled": true
}
}
} openclaw mcp add dahliyaal-justicelibre --url https://justicelibre.org/mcp --transport streamable-http
mcp_servers:
dahliyaal-justicelibre:
url: "https://justicelibre.org/mcp" {
"mcpServers": {
"dahliyaal-justicelibre": {
"type": "http",
"url": "https://justicelibre.org/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 57
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://justicelibre.org/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=justicelibre.org | CN=YE1,O=Let's Encrypt,C=US | 14 Jun 2026 | 12 Sept 2026 | ECDSA 256 | ECDSA-SHA384 | 614cdfd55a3415735c08d55111c8250dd3e |
| SANs: *.justicelibre.org, justicelibre.org | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of justicelibre.org. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| org. | present | 26974 | 8 | Verified |
| justicelibre.org. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://justicelibre.org/mcp | Verified | 200 | |
| http (plaintext) | http://justicelibre.org/mcp | HTTPS enforced | 301 | https://justicelibre.org/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
about_justicelibre ~86
Vue d'ensemble du protocole JusticeLibre : cartographie des sources et règles d'acheminement. Appeler cet outil en priorité pour appréhender la matrice de compatibilité des identifiants, les périmètres de recherche de chaque juridiction, et les spécificités des bases de données exploitées.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
build_source_url ~457
Construit l'URL canonique d'un document à partir de son identifiant. Utile pour vérifier les sources à la main sur le site officiel (Légifrance, Conseil constitutionnel, EUR-Lex, HUDOC, etc.) ou pour inclure un lien cliquable dans un courrier. Identifiants reconnus : - `LEGIARTI*` → Légifrance article (passer `legitext` du texte parent pour distinguer code (/codes/) vs loi non codifiée (/loda/) - `LEGITEXT*` / `JORFTEXT*` → texte entier Légifrance - `JURITEXT*` / `CONSTEXT*` / `CETATEXT*` → décisions Légifrance - CELEX (`6XXXXCJXXXX`) → EUR-Lex (CJUE) - `ECLI:*` → EUR-Lex deeplink - itemid HUDOC (`001-XXXXXX`) → Cour EDH - ArianeWeb (`/Ariane_Web/AW_DCE/|XXXXXX`) → conseil-etat.fr Args: identifier: l'ID à convertir legitext: (optionnel) LEGITEXT du texte parent si `identifier` est un LEGIARTI — améliore la précision de l'URL (codes/ vs loda/) date: (optionnel, YYYY-MM-DD) — appendé à l'URL Légifrance pour pointer vers la version de l'article en vigueur à cette date (ex: `/loda/article_lc/LEGIARTI.../2023-01-01`). Indispensable pour vérifier l'état du droit à une date historique, sinon Légifrance affiche la version courante même si l'article a été abrogé depuis. Returns: `{"id", "source_url"}` ou `{"error"}` si format non reconnu.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | — | — |
| identifier | string | yes | — |
| legitext | string | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_admin_decision ~561
Récupère une décision administrative par son **numéro de requête exact**. Couvre toutes les juridictions : Conseil d'État, cours administratives d'appel (CAA), tribunaux administratifs (TA). Utilise un lookup SQL exact sur le champ `numero` — pas de FTS5, pas de faux positifs. ⚠️ **Désambiguïsation indispensable** : un même numéro à 7 chiffres (ex: 2200433) est partagé par 24+ tribunaux administratifs différents (chaque TA a sa propre série annuelle qui repart à 1). Sans `juridiction`, tu obtiens un homonyme au hasard parmi 24 — souvent pas le bon. **Si tu sais quelle juridiction a rendu la décision, passe-la TOUJOURS.** Args: numero: numéro de requête (ex : "2200433", "2116343", "497566") juridiction: identifiant de la juridiction. **Recommandé pour tout numéro à 7 chiffres** (TA/CAA codifié). Formats acceptés : - **Nom long (recommandé)** : "Cour administrative d'appel de Lyon", "Tribunal administratif de Paris", "Conseil d'État" (avec ou sans accent, casse libre). Matching tolérant via extraction de ville. - **Code court** : "TA69", "TA75", "CAA69", "CE", "CE-CAA". ⚠️ Les codes courts peuvent rater les arrêts anciens (id CETATEXT* historiques) pour lesquels le mapping interne échoue. Si tu sais le nom long, préfère-le. Note : "Lyon" seul est ambigu (TA Lyon ou CAA Lyon) — préférer le nom complet pour éviter la collision. Returns: Décision avec métadonnées (id, juridiction, numero, date, titre), ou `{"error": "introuvable"}` si aucun résultat dans JADE. Exemples : get_admin_decision("2200433", juridiction="Tribunal Administratif de Lyon") → DTA_2200433_20230214 (TA Lyon, 14 fév 2023, RSA dérogatoire) get_admin_decision("473286") # CE n'a pas de doublon, juridiction inutile → DCE_473286_20231123 (CE, non-admission du…
| Name | Type | Req | Description |
|---|---|---|---|
| juridiction | string | — | — |
| numero | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_cc_decision ~193
Récupère une décision du Conseil constitutionnel par son numéro. Format attendu : "AA-NNN NATURE" ou juste "AA-NNN" (ex : "79-105 DC", "2020-800 DC", "2023-1048 QPC"). Recherche full-text sur le numéro + filtre juridiction="Conseil constitutionnel" dans judiciaire.db. Args: numero: numéro de décision CC (ex : "79-105 DC") nature: filtre optionnel (QPC, DC, L, etc.) — cf search_cc Returns: `{id, titre, date, juridiction, nature, ecli, text}`, ou dict d'erreur structuré `{error, error_category: "not_found"}` si introuvable.
| Name | Type | Req | Description |
|---|---|---|---|
| nature | string | — | — |
| numero | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_ce_decision ~163
Récupère une décision du Conseil d'État par son numéro de pourvoi. Essaie d'abord le bulk JADE DILA (lookup SQL exact), puis si introuvable tente ArianeWeb Sinequa — les deux bases ont des couvertures complémentaires. Pour retrouver une décision via identifiant DCE_*, utiliser `get_decision_text` à la place. Args: numero: numéro de pourvoi (ex : "497566", "358109") Returns: Décision avec métadonnées, ou dict d'erreur structuré `{error, error_category: "not_found"}` si introuvable dans les deux bases.
| Name | Type | Req | Description |
|---|---|---|---|
| numero | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_decision_cedh ~114
Extraction du texte intégral d'une décision de la Cour européenne des droits de l'homme sur la base de son identifiant système (itemid HUDOC). Args: decision_id: itemid HUDOC (ex : "001-249914") Returns: Décision avec `full_text`, ou dict d'erreur structuré `{error, error_category: "not_found"}` si l'itemid est inconnu.
| Name | Type | Req | Description |
|---|---|---|---|
| decision_id | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_decision_cjue ~150
Extraction du texte intégral d'une décision de la Cour de justice de l'Union européenne sur la base de son identifiant normalisé (CELEX). Seuls les identifiants CELEX sont acceptés — un ECLI seul ne suffit pas : retrouver d'abord le CELEX correspondant via `search_cjue`. Args: decision_id: identifiant CELEX (ex : "62024CJ0072") Returns: Décision avec `full_text`, ou dict d'erreur structuré `{error, error_category: "not_found"}` si le CELEX est inconnu.
| Name | Type | Req | Description |
|---|---|---|---|
| decision_id | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_decision_judiciaire ~237
Extraction du texte intégral d'une décision judiciaire via l'API restreinte PISTE (authentification OAuth2 requise). À substituer systématiquement par `get_decision_judiciaire_libre` lorsque la décision figure dans les archives ouvertes de la DILA. Outil formellement inopérant pour les décisions relevant de l'ordre administratif (formats `DCE_*`, `DTA_*`, `DCAA_*`, `/Ariane_Web/...`). Authentification (les identifiants PISTE ne transitent JAMAIS par la conversation) : `session_token` obtenu sur justicelibre.org/tutoriel-piste.html, ou variables d'environnement PISTE_CLIENT_ID / PISTE_CLIENT_SECRET côté serveur (auto-hébergement). Args: decision_id: identifiant Judilibre de la décision session_token: jeton justicelibre temporaire (recommandé)
| Name | Type | Req | Description |
|---|---|---|---|
| decision_id | string | yes | — |
| session_token | string | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_decision_judiciaire_libre ~186
Extraction du texte intégral d'une décision judiciaire depuis l'index indépendant (sans authentification). Accepte exclusivement les identifiants judiciaires libres (formats `JURITEXT*`, `CONSTEXT*`, `JURI*`), tels que retournés par `search_judiciaire_libre` (exemples : `"JURITEXT000042579700"`, `"CONSTEXT000049574021"`). Outil formellement inopérant pour les décisions relevant de l'ordre administratif (formats `DCE_*`, `DTA_*`, `DCAA_*`, `/Ariane_Web/...`). Args: decision_id: identifiant JURITEXT/JURI/CONSTEXT de la décision
| Name | Type | Req | Description |
|---|---|---|---|
| decision_id | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_decision_text ~392
Extraction du texte intégral d'une décision relevant de l'ordre administratif (Conseil d'État, TA, CAA). Identifiants acceptés : - `DCE_XXX_YYYYMMDD` (CE), `DTA_XXX_YYYYMMDD` (TA), `DCAA_XXX_YYYYMMDD` (CAA) — extraction depuis le bulk JADE local. - `CETATEXT…` (id Légifrance/CETA renvoyé par `search_admin`) — lookup direct dans le bulk JADE local, texte intégral inclus. - `/Ariane_Web/AW_DCE/|XXXXXX` (ou abrégé `|XXXXXX`) — récupération EN DIRECT du texte intégral via le plugin Sinequa du Conseil d'État. Fonctionne pour toute décision ArianeWeb, y compris hors bulk JADE. INCOMPATIBILITÉS MAJEURES : - Identifiants JURITEXT — rediriger vers `get_decision_judiciaire_libre` ou `get_decision_judiciaire`. - Identifiants CELEX `6XXXXCJXXXX` — rediriger vers `get_decision_cjue`. - Identifiants HUDOC `001-XXXXXX` — rediriger vers `get_decision_cedh`. Args: decision_id: identifiant de la décision (avec ou sans suffixe .xml) Returns: Dict comportant les métadonnées complètes et `full_text` (texte intégral). Si la décision est introuvable, dict d'erreur structuré `{error, error_category: "not_found", retryable}` avec les tools alternatifs à essayer.
| Name | Type | Req | Description |
|---|---|---|---|
| decision_id | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_law_article ~399
Renvoie le texte d'un article de loi à une date donnée (ou version actuelle si `date` vide). Particularité justicelibre : quand une décision de 1992 cite l'article 1128 du Code civil, l'article a été totalement réécrit en 2016. Avec ce tool on récupère le texte **tel qu'il existait en 1992** (l'ancienne version napoléonienne), pas le texte actuel. Codes/textes supportés (26) : 22 codes consolidés — CC, CP, CPC, CPP, CT, CSP, CJA, CGCT, CRPA, CPI, CASF, CMF, C.com, C.cons, C.éduc, CU, C.env, CR, CGI, CESEDA, CSS, CCH — + 4 textes non codifiés : CONST (Constitution), LIL, LO58, L2005-102. Args: code: code court (ex : "CC" pour Code civil, "CT" pour Code du travail) num: numéro de l'article (ex : "1128", "L1152-1", "132-1") date: date ISO YYYY-MM-DD (optionnel — si absent, version en vigueur). Utiliser la date de la décision citante pour obtenir la version contemporaine de la citation. Returns: dict avec `legiarti`, `num`, `code`, `texte`, `etat` (VIGUEUR/MODIFIE/ABROGE), `date_debut`, `date_fin`, `nota`. Plus un champ `note` si la version retournée n'est pas celle demandée.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | — |
| date | string | — | — |
| num | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
get_law_versions ~180
Renvoie toutes les versions historiques d'un article de loi, du plus ancien au plus récent. Utile pour construire une "timeline" de l'article et comprendre son évolution (ex : un article modifié en 1964, 1994, 2016 aura 3-4 lignes avec `date_debut`, `date_fin`, `etat`, `texte` distincts). Args: code: code court (voir get_law_article pour la liste des 26 codes/textes) num: numéro de l'article Returns: dict avec `code`, `code_long`, `num`, `count`, `versions` (liste ordonnée par `date_debut` ascendante).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | — |
| num | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
list_juridictions ~94
Référentiel exhaustif des codes juridictionnels. Restitue les 51 instances couvertes (Conseil d'État, 9 CAA, 40 TA, incluant les juridictions d'outre-mer) accompagnées de leur nomenclature canonique. Consulter impérativement cette liste pour déterminer le code exact à fournir à l'outil `search_admin`.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
resolve_law_number ~293
Résout un numéro de loi/ordonnance/décret vers son identifiant LEGITEXT ou JORFTEXT Légifrance. Utile pour les textes non codifiés (lois, ordonnances, décrets) qui ne sont pas dans la whitelist des 26 codes courts (CC, CP, LIL, LO58, etc.). Une fois le LEGITEXT/JORFTEXT résolu, on peut l'utiliser avec `get_law_article(code=<LEGITEXT>, num=<N>)` pour récupérer un article spécifique. Exemples : - `resolve_law_number("68-1250")` → loi prescription quadriennale des créances publiques (JORFTEXT000000878035) - `resolve_law_number("79-587")` → loi motivation des actes admin - `resolve_law_number("2000-321")` → loi droits citoyens face à l'admin Args: numero: format "YY-NNNN" ou "YYYY-NNNN" (ex: "68-1250", "2000-321") Returns: `{numero, legitext, titre_section, date_debut, articles_count, source_url}` ou `{error}` si introuvable.
| Name | Type | Req | Description |
|---|---|---|---|
| numero | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_admin ~447
Recherche pondérée par pertinence BM25 sur la jurisprudence administrative complète (Conseil d'État + 9 CAA + 40 TA). Source : bulk JADE DILA (~550 k décisions full text). Contrairement aux outils `search_admin_recent*` qui trient par date, celui-ci classe par pertinence sémantique des mots-clés. Indispensable pour trouver LES bonnes décisions sur un sujet sans dépendre de l'ancienneté. ⚠️ **Si tu cherches par numéro de requête (7 chiffres ex: 2200433)**, utilise plutôt `get_admin_decision(numero, juridiction=...)` qui fait un lookup SQL exact. La recherche FTS5 d'un numéro court ne le trouve que dans les décisions qui le **citent** dans leur texte (ex: décision de cassation), pas la décision identifiée par ce numéro. Args: query: mots-clés (opérateurs FTS5 : AND/OR/NOT, "phrase exacte", mot*) juridiction: filtre par fragment de nom de juridiction. Ex : "Lyon" → toutes les décisions Lyon (TA + CAA), "Tribunal Administratif de Lyon" → uniquement TA Lyon. Combiné en FTS5 AND avec la query principale. sort: "relevance" (défaut, BM25) ou "date_desc" / "date_asc" date_min: limite inférieure ISO YYYY-MM-DD (optionnel) date_max: limite supérieure ISO YYYY-MM-DD (optionnel) limit: nombre de résultats (défaut 20, max 50) offset: pagination Returns: {"total", "returned", "decisions": [...]} avec extracts BM25.
| Name | Type | Req | Description |
|---|---|---|---|
| date_max | string | — | — |
| date_min | string | — | — |
| juridiction | string | — | — |
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
| sort | string | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_admin_recent ~328
Décisions admin **récentes** triées chronologiquement (API live). Priorité au récent : tri par date de lecture décroissante, pas par pertinence. Utile pour "actualité d'une juridiction" mais PAS pour trouver la jurisprudence pertinente sur un sujet — pour cela, utiliser `search_admin` (bulk JADE avec BM25 ranking). Périmètre : CE + 9 CAA + 40 TA (incluant l'outre-mer), depuis ~2022. Les identifiants générés (formats `DCE_*`, `DTA_*`, `DCAA_*`) sont nativement compatibles avec l'outil `get_decision_text`. Args: query: mots-clés de recherche juridiction: code de la juridiction. Exemples : - "CE" — Conseil d'État - "CE-CAA" — Conseil d'État + cours administratives d'appel - "TA69" — Tribunal administratif de Lyon - "TA75" — Tribunal administratif de Paris - "CAA69" — Cour administrative d'appel de Lyon Les codes "TA" ou "CAA" isolés retournent un résultat vide — un code spécifique est requis. Consulter `list_juridictions` pour la nomenclature complète. limit: nombre maximum de résultats (défaut 20)
| Name | Type | Req | Description |
|---|---|---|---|
| juridiction | string | — | — |
| limit | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_admin_recent_all_caa ~124
Requête simultanée de l'ensemble des 9 Cours Administratives d'Appel. Fusion et tri chronologique des résultats par date de lecture. Args: query: mots-clés de recherche limit_per_court: résultats par cour (défaut 5, soit jusqu'à 45 résultats au total) total_limit: plafond global après fusion (0 = aucun plafond).
| Name | Type | Req | Description |
|---|---|---|---|
| limit_per_court | integer | — | — |
| query | string | yes | — |
| total_limit | integer | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_admin_recent_all_ta ~243
Requête simultanée de l'ensemble des 40 Tribunaux Administratifs. Fusionne et trie chronologiquement (date de lecture décroissante) les résultats issus du territoire national. Pertinent pour cartographier rapidement les éventuelles divergences d'appréciation territoriale sur une même question de droit. Args: query: mots-clés de recherche limit_per_court: nombre de résultats par tribunal (défaut 5, soit jusqu'à 200 résultats totaux avant application de `total_limit`) total_limit: plafond global après fusion (défaut 60 ; 0 = aucun plafond). Si positif, tronque la liste fusionnée aux N entrées les plus récentes. Returns: Dict comportant `per_court_totals` (nombre de hits par TA), `decisions` (liste fusionnée triée chronologiquement) et les éventuelles `errors`.
| Name | Type | Req | Description |
|---|---|---|---|
| limit_per_court | integer | — | — |
| query | string | yes | — |
| total_limit | integer | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_all ~418
Recherche fédérée pondérée par pertinence sur toutes les sources. Tool ONE-STOP quand on ne sait pas où chercher : interroge en parallèle les sources locales (DILA judic, JADE admin, LEGI, CEDH, CJUE) et retourne une liste fusionnée triée par score BM25 avec un bonus d'autorité (CE/Cass/CEDH > CAA > TA/CA). Args: query: mots-clés (ou phrase). Si `expand_synonyms=True` (défaut), les termes du thésaurus juridique FR sont automatiquement étendus à leurs équivalents (ex: "harcèlement" → aussi "intimidation", "vexation morale", etc.) sources: liste optionnelle parmi ["dila", "jade", "legi", "cedh", "cjue"]. None = toutes. sort: "relevance" (défaut) ou "date_desc" date_min, date_max: ISO YYYY-MM-DD limit: nombre de résultats fusionnés (défaut 30, max 100 ; chaque source locale plafonne à 50 résultats par appel) expand_synonyms: active le thésaurus (défaut True) Returns: dict {"query_expanded", "per_source_counts", "results": [...]}. `per_source_counts` ne compte que les sources ayant répondu ; si une source est en panne, elle est détaillée dans `source_errors` et un `warning` signale des résultats potentiellement incomplets. `truncated: true` + `note` signalent que la fusion dépasse `limit`.
| Name | Type | Req | Description |
|---|---|---|---|
| date_max | string | — | — |
| date_min | string | — | — |
| expand_synonyms | boolean | — | — |
| limit | integer | — | — |
| query | string | yes | — |
| sort | string | — | — |
| sources | — | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_annuaire ~487
Recherche dans l'annuaire agrégé des adresses électroniques publiques des juridictions et administrations françaises. Agrège 3 sources hébergées sur justicelibre.org (~75 000 adresses fonctionnelles publiques, sous Licence Ouverte 2.0) : - dump quotidien DILA (services locaux : juridictions, mairies, sous-préf, etc.) - API `api-lannuaire.service-public.fr` (administrations centrales) - annuaire CADA (PRADA - personnes responsables L. 330-1 CRPA) - PDFs gouvernementaux scrapés (adresses inédites : bureaux internes, cabinets, écoles, DASEN, etc. absents des annuaires officiels) Recherche : substring case-insensitive sur mail, organisme et service. Cette version alpha ne fait pas de BM25 : classement par pertinence simple (match mail > organisme > service). Args: query: mots-clés (ex : "mairie strasbourg", "dsden nord", "dacs-c3", "greffe caa douai", "prada culture") category: filtre catégorie (ex : "mairie", "bav", "ecole", "cour_appel", "dacs", "prada", "administration_centrale") source: filtre origine ("dila", "api", "prada", "pdf", "manuel") limit: nombre maximum de résultats (défaut 20, max 200) Returns: dict avec `total` (matches totaux), `returned`, `results` (liste de dicts {mail, organisme, service, categorie, source, tel, site, adresse, date_source, url_page}). Les entrées issues de PDF scrapés (`source: "pdf"`) portent en plus la traçabilité complète : `role`, `source_url` (document officiel d'origine), `source_label`, `source_page` (page du PDF), `preuve_url` (copie archivée sur justicelibre.org/preuves/ — à citer si l'original a disparu).
| Name | Type | Req | Description |
|---|---|---|---|
| category | — | — | — |
| limit | integer | — | — |
| query | string | yes | — |
| source | — | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_cc ~396
Recherche dédiée au **Conseil constitutionnel** (7 112 décisions). Quatrième pouvoir juridictionnel français aux côtés de la Cour de cassation, du Conseil d'État et de la Cour de justice de la République. Contrôle la constitutionnalité des lois (contrôle *a priori* via DC, *a posteriori* via QPC) et les élections nationales. Args: query: mots-clés (opérateurs FTS5) nature: filtre optionnel par type de décision : - "QPC" : Question Prioritaire de Constitutionnalité (contrôle a posteriori, saisine par justiciable via CE/Cass) - "DC" : Décision sur conformité de loi ordinaire ou organique (contrôle a priori avant promulgation) - "L" : Lois diverses, délégalisation - "AN" : Élections législatives, inéligibilités - "SEN" : Élections sénatoriales - "PDR" : Élection présidentielle - "ORGA": Organisation (règlement intérieur, composition) - "REF" : Référendum - "ELEC": Autres élections - "I" : Incompétence (si vide, toutes natures confondues) date_min, date_max: ISO YYYY-MM-DD limit: max 50 (défaut 20) offset: pagination Returns: `{"total", "returned", "nature_filter", "decisions": [...]}`
| Name | Type | Req | Description |
|---|---|---|---|
| date_max | string | — | — |
| date_min | string | — | — |
| limit | integer | — | — |
| nature | string | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_cedh ~179
Recherche textuelle dans la jurisprudence de la Cour européenne des droits de l'homme. Exploitation de l'index localisé regroupant les ~76 000 documents HUDOC francophones (arrêts, décisions, rapports de Chambre, Grande Chambre, Comité). Libre d'accès. Args: query: mots-clés (ex : "article 8 vie familiale", "garde à vue") limit: nombre maximum de résultats (défaut 20, max 50) offset: décalage pour paginer (défaut 0). Si la réponse contient `truncated: true`, réitérer avec `next_offset` pour la suite.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_cjue ~188
Recherche textuelle dans la jurisprudence de la Cour de justice de l'Union européenne. Exploitation de l'index localisé des décisions de la CJUE, du Tribunal de l'UE, des ordonnances et des conclusions des avocats généraux (données EUR-Lex). Libre d'accès. Args: query: mots-clés (ex : "libre circulation capitaux", "CJUE C-72/24") limit: nombre maximum de résultats (défaut 20, max 50) offset: décalage pour paginer (défaut 0). Si la réponse contient `truncated: true`, réitérer avec `next_offset` pour la suite.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_cnil ~79
Recherche dans les délibérations de la CNIL. Source : bulk CNIL (109 Mo, ~8 000 délibérations). Utile pour le droit des données personnelles, RGPD, traitements algorithmiques.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_conseil_etat ~415
Recherche sémantique ciblée sur la jurisprudence du Conseil d'État (base ArianeWeb, ~270 000 décisions). Moteur exclusif disposant d'un véritable algorithme de pertinence (Sinequa) avec extraction de contexte. À privilégier systématiquement pour le droit public. EXTRACTION DU TEXTE : les ids retournés (`/Ariane_Web/AW_DCE/|XXXXXX`) sont DÉSORMAIS exploitables directement par `get_decision_text(id)` (récupération live via le plugin Sinequa). ⚠️ COUVERTURE : cet index ArianeWeb (Sinequa) couvre MAL les arrêts anciens/fondateurs (avant ~1990). Si une recherche ici renvoie 0, NE PAS conclure que l'arrêt est absent de JusticeLibre : le bulk JADE (`search_admin`) couvre le CE depuis 1873 (Trompier-Gravier 1944, PGD, etc. inclus). Et si tu connais déjà l'id Légifrance `CETATEXT…` d'un arrêt, `get_decision_text("CETATEXT…")` le sort directement du bulk. Consigne de recherche : limiter les requêtes à 2-5 mots-clés distinctifs ; les requêtes en phrase complète retournent généralement zéro résultat. Args: query: mots-clés de recherche (ex : "référé liberté", "QPC 145") limit: nombre maximum de résultats (défaut 20) offset: décalage pour paginer (défaut 0). Réitérer avec offset=20, offset=40, etc. pour obtenir les pages suivantes.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_decisions_citing ~441
Cherche les décisions qui citent EXPLICITEMENT un article de loi donné. Exploite l'index FTS5 sur les sources jurisprudence disponibles pour matcher les formulations courantes de citation (`"article 1382 du code civil"`, `"art. L. 1152-1 du Code du travail"`, etc.). Cross-référencement inverse : partant d'un article, on trouve la jurisprudence pertinente. **LIMITATION CONNUE** : ce tool trouve UNIQUEMENT les citations explicites du numéro d'article. Il ne capte PAS : - les références indirectes ("conformément aux dispositions du Code civil relatives à la responsabilité délictuelle…") - les renvois à une section entière sans numéro précis - les citations du code par abréviation seule sans article ("en vertu du CT") Pour une recherche conceptuelle plus large, préférer `search_all` avec l'expansion thésaurus (ex: "harcèlement" → inclut "intimidation" etc.). Args: code: code court de l'article (ex : "CT", "CC") num: numéro de l'article (ex : "L1152-1", "1240") sources: liste optionnelle de sources à interroger parmi ["dila", "jade", "cedh", "cjue"]. Par défaut : toutes. limit: nombre de décisions par source (défaut 20, max 50) Returns: dict `{"code", "num", "total", "per_source": {source: count}, "decisions": [{source, id, juridiction, date, title, extract}]}`. Si une source est en panne, elle est absente de `per_source` et détaillée dans `source_errors` (résultats alors incomplets).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | — |
| limit | integer | — | — |
| num | string | yes | — |
| sources | — | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_jorf ~188
Recherche dans le Journal officiel (JORF post-1990). Source : bulk JORF DILA (1,1 Go). Contient les textes publiés au JO non codifiés : lois, décrets, arrêtés, circulaires, ordonnances. Args: query: mots-clés FTS5 nature: filtre optionnel ("LOI", "DECRET", "ARRETE", "CIRCULAIRE"...) date_min/date_max: fourchette de publication (ISO) limit: max 50 Returns: {"total", "returned", "textes": [...]}
| Name | Type | Req | Description |
|---|---|---|---|
| date_max | string | — | — |
| date_min | string | — | — |
| limit | integer | — | — |
| nature | string | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_judiciaire ~331
Recherche dans la jurisprudence judiciaire via l'API officielle PISTE (authentification OAuth2 requise). Périmètre : Cour de cassation, cours d'appel, tribunaux judiciaires, tribunaux de commerce. À n'utiliser qu'en dernier recours ou pour des décisions récentes absentes de la base libre DILA, compte tenu de l'entrave technique imposée par la Cour de cassation. Authentification (les identifiants PISTE ne transitent JAMAIS par la conversation) : 1. `session_token` : jeton temporaire obtenu sur justicelibre.org/tutoriel-piste.html (procédé recommandé). 2. Auto-hébergement : variables d'environnement PISTE_CLIENT_ID et PISTE_CLIENT_SECRET définies côté serveur. Args: query: mots-clés de recherche session_token: jeton justicelibre temporaire (obtenu via le formulaire du site) juridiction: filtre optionnel — "cc" (Cour de cassation), "ca" (cours d'appel), "tj" (tribunaux judiciaires), "tcom" (tribunaux de commerce). Vide = toutes juridictions. limit: nombre maximum de résultats (défaut 20, maximum 50)
| Name | Type | Req | Description |
|---|---|---|---|
| juridiction | string | — | — |
| limit | integer | — | — |
| query | string | yes | — |
| session_token | string | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_judiciaire_libre ~638
Recherche plein texte dans la jurisprudence judiciaire, exécutée localement et affranchie de toute obligation d'authentification gouvernementale. Exploite l'index FTS5 des archives publiques DILA (~1,17 M décisions : Cour de cassation, 36 cours d'appel, Conseil constitutionnel). Scoring BM25 disponible mais tri appliqué par ordre chronologique décroissant. **Couverture connue** : la base contient un sous-ensemble des arrêts publiés par les CA en open data DILA (~73 000 arrêts CA, principalement depuis 2007). Tous les arrêts ne sont PAS dans la base ; un faux négatif n'implique donc pas que l'arrêt n'existe pas. En cas de bredouille, suggérer à l'utilisateur de chercher sur Légifrance ou via PISTE (`search_judiciaire`). **Recherche par numéro de RG** : pour les arrêts CA, utiliser le param `numero_rg` (lookup direct, normalise les variantes 21/05835, 21-05835, 2105835). Pour les pourvois Cass, utiliser `query` avec le numéro (ex: query="21-12.345"). ⚠️ Les résultats ne contiennent qu'un SNIPPET tronqué (`snippet`), pas le texte intégral. Pour lire une décision en entier, appeler `get_decision_judiciaire_libre(id)` avec l'id retourné (format `JURITEXT*` Cass / cours d'appel, `CONSTEXT*` Conseil constitutionnel). Ne pas se fier au snippet seul pour conclure sur le contenu. Args: query: mots-clés (ex : "licenciement abusif"). FTS5 supporte `"phrase exacte"`, `mot1 AND mot2`, `mot*` (préfixe). Optionnel si `numero_rg` est fourni. juridiction: filtre optionnel : "cassation" / "appel" / "constit". numero_rg: numéro RG d'un arrêt CA (ex: "21/05835"). Lookup direct qui matche toutes les variantes typographiques. date_min: date min ISO (YYYY-MM-DD), optionnel date_max: date max ISO (YYYY-MM-DD), optionnel limit: nombre maximum de résultats (défaut 20, max 50) offset: décalage pour paginer (défaut…
| Name | Type | Req | Description |
|---|---|---|---|
| date_max | string | — | — |
| date_min | string | — | — |
| juridiction | string | — | — |
| limit | integer | — | — |
| numero_rg | string | — | — |
| offset | integer | — | — |
| query | string | — | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_kali ~134
Recherche dans les conventions collectives et accords de branche (KALI). Source : bulk KALI DILA (745 Mo). Couvre les conventions collectives nationales, accords de branche, avenants, identifiés par leur IDCC. Args: query: mots-clés idcc: filtre optionnel par IDCC (4 chiffres, ex "1486" pour bureaux d'études techniques) limit: max 50
| Name | Type | Req | Description |
|---|---|---|---|
| idcc | string | — | — |
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.
search_legi ~174
Recherche pondérée dans les codes et lois consolidés français. Source : bulk LEGI DILA (3,6 Go avec versions historiques). Trouve les articles dont le texte ou le titre contient les mots-clés. Args: query: mots-clés FTS5 code: filtre optionnel sur un code spécifique (CC, CT, CSP...) date_min/date_max: filtre par date_debut de version (ISO) limit: max 50 offset: pagination Returns: {"total", "returned", "articles": [...]}
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | — | — |
| date_max | string | — | — |
| date_min | string | — | — |
| limit | integer | — | — |
| offset | integer | — | — |
| query | string | yes | — |
Structured output declared, but exposes no named fields.
No examples provided.