LibreJustice
About
Free remote MCP server over French and European case law and legislation: ~3.7M decisions from both French court orders plus the ECHR and the CJEU, and legal texts as they read on any past date.
Details
- Transport
- SSE
Explore
Setup
Install LibreJustice in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/librejustice/librejustice
Follow the installation instructions in the repository README, then restart your MCP client.
search_decisions
Search decisions by meaning and keywords combined. Returns a shortlist: `title`, `url`, an overview (`aiSummary`: AI-written summary of what the decision is about, a machine paraphrase never quotable as the court's words; or `snippet`: the verbatim passage where your keywords matched) and metadata; get_decision reads the full text. Put constraints in the structured filters (jurisdiction, dates, articles, codes), keep the query for the legal issue. Values within one filter are OR'd; different …
get_decision
Fetch the full text and metadata of a decision by its `url`. The text carries inline markdown links to cited articles (/texte/, open with get_legal_text) and cited decisions (/decision/, open with get_decision); a citation spanning several articles (« articles 3 à 6 », « et suivants ») links its first article and appends the others as labelled links right after the span. `appellateFate` states in one line what became of THIS decision on review (INFIRMATION = reversed, it no longer stands; CON…
list_my_activity
List the authenticated user's own activity, most recent first. `kind` selects which tab: 'searches' (past queries with their structured `filters` and `source`), 'bookmarks' or 'readingHistory' (decisions, each with `title`, a `summary` and the `url` to chain into get_decision), or 'all' to get the three at once. Only the requested tab(s) are populated. In readingHistory, `lastSource` == 'web' means the user opened the decision manually at least once (a genuine read); 'mcp' means it was only e…
get_legal_text
Fetch a statutory article as it read on a given date, by its `url` (any /texte/ link). Returns the version in force at `date` (omit for today): full text, status, validity dates, and the timeline of all versions — say which version you quote. The text carries inline markdown links to cross-referenced articles (/texte/, open with get_legal_text; when served at a date, the links point to the same date). `commentaires` carries institutional commentary anchored on the article (analyses inline, li…
search_legal_texts
Find statutory articles from their subject or wording when the article number is unknown; returns a ranked shortlist with highlighted snippets and the exact `total`. Query in French, descriptive terms (« délai de recours contentieux refus implicite »); put the code in the `code` filter (slug or exact name), keep the query for the subject. The response carries a `facets` block (`code`, `jurisdiction`): per filter name, a map of filter value to article count — reuse those keys verbatim to refin…
Utiliser LibreJustice depuis un assistant IA
Le serveur MCP public esthttps://librejustice.fr/mcp(OAuth 2.1 avec enregistrement dynamique de client : aucune clé à configurer). Cinq outils :search_decisions,get_decision,search_legal_texts,get_legal_text,list_my_activity.
Avec Claude Code, le plugin installe le connecteur et les skills d'usage :
/plugin marketplace add librejustice/librejustice /plugin install librejustice@librejustice
Les skills seuls (sans le connecteur MCP) s'installent dans n'importe quel agent compatible via](https://librejustice.fr)skills:
npx skills add librejustice/librejustice
Sur claude.ai, LibreJustice est listé dans le répertoire des connecteurs :claude.ai/directory/connectors/librejustice. Un clic, puis l'autorisation OAuth. Avec ChatGPT, Le Chat ou Perplexity : ajouter un connecteur custom pointant surhttps://librejustice.fr/mcp.
Nœud mono-serveurPostgres + ParadeDB + VectorChord(recherche hybride BM25 + vecteurs), API et front en Rust.
Workspace Cargopur Rust, scindé en deux racines :
- packages/— bibliothèques :
- lj-core— cœur pur : parsing / normalisation / extraction, résumé, refs légales.
- lj-extract— extraction des champs et citations des décisions.
- lj-sources— I/O sources (Judilibre JSON, ZIP/XML opendata).
- lj-store— accès Postgres (tokio-postgres + deadpool) + migrations.
- lj-llm— backends embedding + cache + quantisation + client Mistral (chat/OCR).
- lj-dtos— contrats API ↔ web (serde).
- lj-telemetry— tracing + export OTLP.
- lj-api— couche API (Axum + MCP rmcp + OAuth).
- lj-web— front Leptos (SSR + hydratation WASM), Tailwind.
- lj-server— déploiement unique : API + MCP/OAuth + SSR.
- lj-ingest— CLI d'ingestion + runner cron.
La toolchain Rust est épinglée parrust-toolchain.toml. On utilisemisepour les tâches :
mise run test # rustfmt --check + clippy -D warnings + cargo test --workspace mise run dev # lj-server fusionné (cargo leptos watch, :3000)
Pour une base locale :mise run dbs. La tâche prépare l'état de Postgres sousLIBREJUSTICE_STATE_DIR— propriétaire du répertoire de données, et copie de la configuration montée par le conteneur — avant de le démarrer.
Mono-serveur viapodman compose(infra/docker-compose.yml) : Postgres (ParadeDB + VectorChord), le binaire fusionnélj-server, un frontcaddyet le cron d'ingestion. Renseigner.env(voir.env.example), puis :
mise run ensure-pg # état + conf Postgres podman compose -f infra/docker-compose.yml --profile prod up -d --build podman compose -f infra/docker-compose.yml exec -T cron lj-ingest migrate # migrations
lj-serversert l'API, le MCP/OAuth, le SSR et les assets. Il écoute en clair ; c'estcaddyqui tient:443et termine le TLS, de sorte que la socket reste liée quand le conteneur applicatif est recréé.
La configuration Postgres livrée (infra/pg-conf/) porte ce que l'application exige — extensions, réglages ParadeDB, compression — avec un dimensionnement de machine de développement. Une instance de production relèveshared_bufferseteffective_cache_sizeselon son matériel.
The 1Password MCP server creates a bridge that allows MCP clients such as Codex and Kiro to manage your 1Password Environments with secure authorization prompts.
This is the 1st, easiest, and cheapest PPT, slides, presentation AI generation MCP Server in the world.
Persistent memory for any AI assistant. Zero token cost until recall. Stores memories in local SQLite, ranks by 6-factor scoring, returns results 79% smaller than JSON. Works with Claude, ChatGPT, Grok, Cursor, Windsurf, and any MCP client.
A MCP server that enables AI assistants to interact with Anki, the spaced repetition flashcard application.
Enables LLM clients to interact with macOS applications through AppleScript. Built using the @beyondbetter/bb-mcp-server library, this server provides safe, controlled execution of predefined scripts with optional support for arbitrary script execution.
An MCP server for WordPress plugin audits
Turn your AI assistant into a digital marketing hub that creates, organizes, and analyzes links and QR Codes on demand.
Connect AI clients to Cal.com scheduling through the Model Context Protocol using the hosted server at mcp.cal.com or a local instance.
Sync Calendars, Scheduling Links, AI Executive Scheduling Assistant, Unified Calendar
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



