Search French and European case law and French legal texts (codes, statutes, treaties).
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
librejustice.fr: a free search engine for French and European law, plus current public notices. It links case law from France's administrative and judicial courts to consolidated legal texts and makes them searchable in plain language on the web and through MCP.
Free and open source. ~3.7 million decisions and ~3.6 million legal articles in one database, linked article by article, resynchronised daily. That is the whole point: texts and case law live together, so there is no second server to plug in for the codes and no third one for the citation graph.
Corpus refreshed daily from open sources (Judilibre, DILA/Légifrance, EUR-Lex...).
Public databases are silos, each with a search engine bounded by its own fonds (Judilibre covers the judicial courts only; the administrative open data searches CE/CAA/TA by keyword, court and date; Légifrance holds the texts). LibreJustice consolidates them and adds the missing layer:
The public MCP server is https://librejustice.fr/mcp (OAuth 2.1 with dynamic client registration: no API key to configure). Five tools: search_decisions, get_decision, search_legal_texts, get_legal_text, list_my_activity.
With Claude Code, the plugin installs the connector and the usage skills:
The skills alone (without the MCP connector) install into any compatible agent through skills:
On claude.ai, LibreJustice is listed in the connector directory. One click, then the OAuth authorisation. With ChatGPT, Le Chat or Perplexity, add a custom connector pointing at https://librejustice.fr/mcp.
The same corpus in REST, described by openapi.json (OpenAPI 3.1). The key is free: create an account, then a key from your profile. Guide at librejustice.fr/api-guide.
Five routes: /api/search, /api/search-textes, /api/decision/{id}, /api/texte/{code}/{article} and the same with a trailing /{date} for the version in force that day.
A single-server node, Postgres + ParadeDB + VectorChord (hybrid BM25 + vector search), API and front end in Rust.
A pure Rust Cargo workspace, split in two roots:
packages/ libraries:
lj-core pure core: parsing, normalisation, extraction, summary, legal refs.lj-extract field and citation extraction from decisions.lj-sources source I/O (Judilibre JSON, opendata ZIP/XML).lj-store Postgres access (tokio-postgres + deadpool) and migrations.lj-llm embedding backends, cache, quantisation, Mistral client (chat/OCR).lj-dtos api to web contracts (serde).lj-telemetry tracing and OTLP export.lj-api API layer (Axum + MCP rmcp + OAuth).lj-web Leptos front end (SSR + WASM hydration), Tailwind.apps/ shippable binaries:
lj-server single deployment: API + MCP/OAuth + SSR.lj-ingest ingest CLI and cron runner.The Rust toolchain is pinned by rust-toolchain.toml. Tasks run through mise:
For a local database: mise run dbs. The task prepares the Postgres state under LIBREJUSTICE_STATE_DIR, owning the data directory and copying the configuration mounted by the container, before starting it.
Single server through podman compose (infra/docker-compose.yml): Postgres (ParadeDB + VectorChord), the merged lj-server binary, a caddy front end and the ingest cron. Fill in .env (see .env.example), then:
lj-server serves the API, MCP/OAuth, SSR and the assets. It listens in clear; caddy holds :443 and terminates TLS, so the socket stays bound when the application container is recreated.
The shipped Postgres configuration (infra/pg-conf/) carries what the application requires (extensions, ParadeDB settings, compression) sized for a development machine. A production instance raises shared_buffers and effective_cache_size to match its hardware.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/librejustice)<a href="https://allmcps.com/mcp/librejustice"><img src="https://allmcps.com/api/badge/librejustice?style=directory" alt="LibreJustice on AllMCPs" /></a>