🔗 Serveur MCP Legifrance

Accédez aux données juridiques françaises via le protocole MCP (Model Context Protocol)

4 outils Compatible Claude Desktop, Cursor, ChatGPT, ... API REST & MCP

🚀 Démarrage rapide

1 Claude Desktop

Connexion directe depuis Claude Desktop/Web

// claude_desktop_config.json
{
  "mcpServers": {
    "MCP Legifrance": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://lawtomatic.fr/mcp/token/",
        "--header",
        "Authorization: Bearer YOUR_TOKEN_HERE"
      ]
    }
  }
}

2 Développement

Intégration programmatique en Python

# Installation
pip install requests
# Utilisation
import requests
url = "https://lawtomatic.fr/mcp/token/"
payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
}
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json, text/event-stream",
    "Authorization": "Bearer YOUR_TOKEN_HERE"
}
response = requests.post(url, json=payload, headers=headers)

⚒️ Outils disponibles

📰

jorf_search

Journal Officiel

Recherche dans le Journal Officiel français (décrets, arrêtés, nominations, etc.)

search: Mots-clés à rechercher
max_results: Nombre de résultats (défaut: 5)
ministeres: Filtrer par ministères
text_types: Types de textes (LOI, DECRET, etc.)
📚

rechercher_code

Codes juridiques

Recherche dans les codes juridiques français (Code civil, Code pénal, etc.)

search: Termes de recherche
code_name: Nom du code juridique
max_results: Nombre de résultats (défaut: 10)
⚖️

rechercher_jurisprudence_judiciaire

Jurisprudence

Recherche dans la jurisprudence judiciaire (Cour de cassation, cours d'appel)

search: Termes ou numéros d'affaires
sort: Tri (PERTINENCE, DATE_DESC)
juridiction_judiciaire: Type de juridiction
max_results: Nombre de résultats (défaut: 10)
📜

rechercher_dans_texte_legal

Textes légaux (LODA)

Recherche dans les textes légaux historiques (lois, ordonnances, décrets, arrêtés)

search: Mots-clés de recherche
text_id: Numéro du texte (optionnel)
page_size: Nombre de résultats (défaut: 10)

💡 Modes d'utilisation

🤖

LLM Compatible MCP

Claude Desktop, ChatGPT avec plugins MCP, ou autres LLM compatibles se connectent directement aux outils.

Avantages:
  • Interaction naturelle
  • Pas de code requis
  • Réponses formatées
🔧

Intégration Programmatique

Utilisez les outils dans vos applications Python via HTTP JSON-RPC ou le SDK MCP.

Avantages:
  • Contrôle total
  • Intégration custom
  • Traitement des données
🌐

API REST Classique

Accès via endpoints REST traditionnels pour une intégration dans tout type d'application.

Avantages:
  • Standard web
  • Multi-langage
  • Cache HTTP

📝 Exemples de code

🔍 Découverte des outils

Lister tous les outils MCP disponibles

# Python - Découverte des outils
import requests

url = "https://lawtomatic.fr/mcp/token/"
payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
}
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json, text/event-stream",
    "Authorization": "Bearer YOUR_TOKEN_HERE"
}

response = requests.post(url, json=payload, headers=headers)
tools = response.json()["result"]["tools"]

for tool in tools:
    print(f"🔧 {tool['name']}: {tool['description']}")

Appel d'outil

Rechercher dans le Journal Officiel

# Python - Recherche JORF
payload = {
    "jsonrpc": "2.0", 
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "recherche_journal_officiel",
        "arguments": {
            "search": "déchet industriel recyclage",
            "sort" : "PUBLI_DATE_ASC",
            "max_results": 3,
        }
    }
}

response = requests.post(url, json=payload, headers=headers)
result = response.json()["result"]["content"][0]["text"]
print(result)

🏗️ Architecture

🤖

LLM / Client

Claude Desktop, applications Python, etc.

↔️
🔗

Serveur MCP Django

Protocole MCP + JSON-RPC

↔️
🏛️

API Legifrance

Données juridiques officielles

🔒 Sécurité

  • • Authentification OAuth2 (optionnelle)
  • • Rate limiting par utilisateur
  • • Endpoints anonymes et authentifiés
  • • Logs détaillés des accès

⚡ Performance

  • • Cache Redis pour les résultats
  • • Formatage optimisé pour LLM
  • • Transport HTTP streamable
  • • Pagination intelligente