French legislation via MCP — full-text search across statutes and provisions
The Légifrance alternative for the AI age.
Query 3,958 French statutes -- from le RGPD (loi Informatique et Libertés), le Code pénal, and le Code civil to le Code du travail, le Code de commerce, and more -- directly from Claude, Cursor, or any MCP-compatible client.
If you're building legal tech, compliance tools, or doing French legal research, this is your verified reference database.
Built by Ansvar Systems -- Stockholm, Sweden
French legal research is scattered across Légifrance, the Journal Officiel, legistix, and EUR-Lex. Whether you're:
...you shouldn't need dozens of browser tabs and manual cross-referencing between codes. Ask Claude. Get the exact provision. With context.
This MCP server makes French law searchable, cross-referenceable, and AI-readable.
Connect directly to the hosted version -- zero dependencies, nothing to install.
Endpoint: https://french-law-mcp.vercel.app/mcp
| Client | How to Connect |
|---|---|
| Claude.ai | Settings > Connectors > Add Integration > paste URL |
| Claude Code | claude mcp add french-law --transport http https://french-law-mcp.vercel.app/mcp |
| Claude Desktop | Add to config (see below) |
| GitHub Copilot | Add to VS Code settings (see below) |
Claude Desktop -- add to claude_desktop_config.json:
{
"mcpServers": {
"french-law": {
"type": "url",
"url": "https://french-law-mcp.vercel.app/mcp"
}
}
}GitHub Copilot -- add to VS Code settings.json:
{
"github.copilot.chat.mcp.servers": {
"french-law": {
"type": "http",
"url": "https://french-law-mcp.vercel.app/mcp"
}
}
}npx @ansvar/french-law-mcpClaude Desktop -- add to claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"french-law": {
"command": "npx",
"args": ["-y", "@ansvar/french-law-mcp"]
}
}
}Cursor / VS Code:
{
"mcp.servers": {
"french-law": {
"command": "npx",
"args": ["-y", "@ansvar/french-law-mcp"]
}
}
}Once connected, just ask naturally:
| Category | Count | Details |
|---|---|---|
| Statutes | 3,958 statutes | Comprehensive French legislation from Légifrance |
| Provisions | 193,793 articles | Full-text searchable with FTS5 |
| Case Law | 7,112 decisions | Premium tier -- judicial decisions |
| Preparatory Works | 3,411 documents | Premium tier -- projets de loi, rapports |
| Agency Guidance | 0 (free tier) | Reserved for future ingestion |
| Database Size | ~335 MB | Optimized SQLite, portable |
| Daily Updates | Automated | Freshness checks against Légifrance |
Verified data only -- every citation is validated against official sources (Légifrance, legifrance.gouv.fr). Zero LLM-generated content.
Verbatim Source Text (No LLM Processing):
Smart Context Management:
Technical Architecture:
Légifrance API --> Parse --> SQLite --> FTS5 snippet() --> MCP response
^ ^
Provision parser Verbatim database query| Traditional Approach | This MCP Server |
|---|---|
| Search Légifrance by code name | Search by plain French: "protection données personnelles" |
| Navigate multi-book codes manually | Get the exact article with context |
| Manual cross-referencing between codes | build_legal_stance aggregates across sources |
| "Est-ce que cet article est en vigueur ?" -> check manually | check_currency tool -> answer in seconds |
| Find EU basis -> dig through EUR-Lex | get_eu_basis -> linked EU directives instantly |
| Check Légifrance, Journal Officiel, EUR-Lex separately | Daily automated freshness checks |
| No API, no integration | MCP protocol -> AI-native |
Traditional: Search Légifrance -> Navigate the code -> Ctrl+F -> Cross-reference with RGPD -> Check EUR-Lex for directive -> Repeat
This MCP: "Quels textes européens ont conduit à l'article L. 34-5 du Code des postes ?" -> Done.
| Tool | Description |
|---|---|
search_legislation | FTS5 full-text search across 193,793 provisions with BM25 ranking |
get_provision | Retrieve specific provision by code + article number |
validate_citation | Validate citation against database (zero-hallucination check) |
build_legal_stance | Aggregate citations from statutes, case law, preparatory works |
format_citation | Format citations per French conventions (full/short/pinpoint) |
check_currency | Check if statute is in force, amended, or repealed |
list_sources | List all available statutes with metadata and data provenance |
about | Server info, capabilities, dataset statistics, and coverage summary |
| Tool | Description |
|---|---|
get_eu_basis | Get EU directives/regulations underlying a French statute |
get_french_implementations | Find French laws implementing a specific EU act |
search_eu_implementations | Search EU documents with French implementation counts |
get_provision_eu_basis | Get EU law references for a specific provision |
validate_eu_compliance | Check implementation status against EU directives |
France is a founding EU member state and plays a central role in EU law-making. French law has extensive EU cross-references across all major regulatory domains.
| Metric | Value |
|---|---|
| EU Integration | Founding EU member (1957) |
| GDPR Implementation | Loi Informatique et Libertés (modified 2018, CNIL oversight) |
| NIS2 Transposition | Loi de programmation militaire + ANSSI framework |
| AI Act | Direct application (no transposition needed for regulation) |
| EUR-Lex Integration | Automated metadata fetching |
See EU_INTEGRATION_GUIDE.md for detailed documentation and EU_USAGE_EXAMPLES.md for practical examples.
All content is sourced from authoritative French legal databases:
| Field | Value |
|---|---|
| Authority | Direction de l'information légale et administrative (DILA) |
| Retrieval method | Légifrance API (legifrance.gouv.fr) |
| Languages | French (official language of law) |
| License | Légifrance open data (Licence Ouverte / Open Licence) |
| Coverage | 3,958 consolidated statutes and codes |
| Last ingested | 2026-02-25 |
A daily GitHub Actions workflow monitors all data sources:
| Source | Check | Method |
|---|---|---|
| Statute amendments | Légifrance API date comparison | All 3,958 statutes checked |
| New statutes | Journal Officiel publications (90-day window) | Diffed against database |
| Preparatory works | Légifrance proposition API (30-day window) | New texts detected |
| EU reference staleness | Git commit timestamps | Flagged if >90 days old |
This project uses multiple layers of automated security scanning:
| Scanner | What It Does | Schedule |
|---|---|---|
| CodeQL | Static analysis for security vulnerabilities | Weekly + PRs |
| Semgrep | SAST scanning (OWASP top 10, secrets, TypeScript) | Every push |
| Gitleaks | Secret detection across git history | Every push |
| Trivy | CVE scanning on filesystem and npm dependencies | Daily |
| Docker Security | Container image scanning + SBOM generation | Daily |
| Socket.dev | Supply chain attack detection | PRs |
| OSSF Scorecard | OpenSSF best practices scoring | Weekly |
| Dependabot | Automated dependency updates | Weekly |
See SECURITY.md for the full policy and vulnerability reporting.
THIS TOOL IS NOT LEGAL ADVICE
Statute text is sourced from official Légifrance publications. However:
- This is a research tool, not a substitute for professional legal counsel
- Court case coverage is limited (premium tier) -- do not rely solely on this for case law research
- Verify critical citations against primary sources for court filings
- EU cross-references are extracted from French statute text, not EUR-Lex full text
- Regulatory guidance (CNIL, ANSSI decisions) is not included in the free tier
Before using professionally, read: DISCLAIMER.md | PRIVACY.md
Queries go through the Claude API. For privileged or confidential matters, use on-premise deployment. For guidance on professional obligations, consult the Conseil National des Barreaux (CNB). See PRIVACY.md for compliance guidance.
git clone https://github.com/Ansvar-Systems/France-law-mcp
cd France-law-mcp
npm install
npm run build
npm testnpm run dev # Start MCP server
npx @anthropic/mcp-inspector node dist/index.js # Test with MCP Inspectornpm run ingest # Ingest statutes from Légifrance
npm run ingest:legi # Ingest via Légifrance API
npm run build:db # Rebuild SQLite database
npm run drift:detect # Run drift detection against anchors
npm run check-updates # Check for amendments and new statutes
npm run census # Generate coverage census reportThis server is part of Ansvar's Compliance Suite -- MCP servers that work together for end-to-end compliance coverage:
Query 49 EU regulations directly from Claude -- GDPR, AI Act, DORA, NIS2, MiFID II, eIDAS, and more. Full regulatory text with article-level search. npx @ansvar/eu-regulations-mcp
Query 3,958 French statutes directly from Claude -- Code civil, Code pénal, Code du travail, loi Informatique et Libertés, and more. Full provision text with EU cross-references. npx @ansvar/french-law-mcp
Query 12,181 Spanish statutes -- BOE legislation, LOPDGDD, Código Penal, and more. npx @ansvar/spanish-law-mcp
Query 261 security frameworks -- ISO 27001, NIST CSF, SOC 2, CIS Controls, SCF, and more. npx @ansvar/security-controls-mcp
Offline-capable sanctions screening -- OFAC, EU, UN sanctions lists. pip install ansvar-sanctions-mcp
Contributions welcome! See CONTRIBUTING.md for guidelines.
Priority areas:
If you use this MCP server in academic research:
@software{french_law_mcp_2026,
author = {Ansvar Systems AB},
title = {French Law MCP Server: Production-Grade Legal Research Tool},
year = {2026},
url = {https://github.com/Ansvar-Systems/France-law-mcp},
note = {3,958 French statutes and codes with 193,793 provisions and EU law cross-references}
}Apache License 2.0. See LICENSE for details.
We build AI-accelerated compliance and legal research tools for the European market. This MCP server started as our internal reference tool for French law -- turns out everyone building for the French and EU markets has the same research frustrations.
So we're open-sourcing it. Navigating 3,958 statutes and codes shouldn't require a law degree.
ansvar.eu -- Stockholm, Sweden