Construire un plugin Claude qui utilise openlegi

Ce guide explique comment packager les outils MCP openlegi dans un plugin Claude réutilisable. Un plugin permet de distribuer à plusieurs utilisateurs (équipe, cabinet, direction juridique) un ensemble cohérent de skills, d'agents planifiés et de connecteurs MCP, configurés une seule fois et personnalisés via un profil de pratique.

Pourquoi un plugin plutôt qu'un simple .mcp.json

Un fichier .mcp.json configure un serveur MCP pour une seule instance Claude. Un plugin Claude apporte trois éléments supplémentaires : un profil de pratique (CLAUDE.md) que tous les skills lisent en amont, des skills explicitement déclenchables via des slash commands (/<plugin>:<skill>), et des agents planifiés qui s'exécutent en arrière-plan selon une cadence cron. (Anthropic, Customize Claude Code with plugins)

Le format de référence est celui utilisé par Anthropic pour le repo claude-for-legal, publié sous licence Apache 2.0. (Anthropic, claude-for-legal) Aucune compilation n'est requise : tout est en markdown et JSON.

À noter. Les plugins fonctionnent sur Claude Cowork, Claude Code et Claude Desktop. Pour Claude Web (claude.ai) seuls les connecteurs MCP individuels sont disponibles, sans la couche plugin.

Prérequis

Élément Comment l'obtenir
Compte openlegi avec token actif auth.openlegi.fr
Claude Code ou Claude Cowork installé claude.com/download
Git (pour publication éventuelle) Selon votre OS

Vérifiez la disponibilité du service openlegi avant de commencer :

curl https://mcp.openlegi.fr/health

La réponse doit indiquer {"status": "ok", ...}. (openlegi, Health Check)

Architecture d'un plugin

Un plugin Claude est un répertoire avec une structure normalisée :

mon-plugin-openlegi/
  .claude-plugin/
    plugin.json           # manifeste du plugin
  CLAUDE.md               # profil de pratique (template)
  README.md
  skills/                 # skills déclenchables
    veille-jorf/
      SKILL.md
    recherche-code/
      SKILL.md
  agents/                 # agents planifiés (optionnel)
    digest-hebdo.md
  hooks/                  # hooks pre/post tool (optionnel)
  .mcp.json               # déclaration des connecteurs MCP

Chaque fichier SKILL.md est un skill autonome. Chaque agent est un fichier markdown avec une frontmatter de planification.

Étape 1 : le manifeste plugin.json

Créez .claude-plugin/plugin.json :

{
  "name": "veille-juridique-fr",
  "version": "0.1.0",
  "description": "Veille et recherche en droit français via openlegi",
  "author": {
    "name": "Cabinet Exemple",
    "url": "https://exemple.fr"
  },
  "license": "MIT",
  "keywords": ["droit-francais", "veille", "openlegi", "legifrance"]
}

Le champ name est utilisé comme préfixe pour toutes les slash commands. Un skill nommé veille-jorf deviendra /veille-juridique-fr:veille-jorf.

Étape 2 : la configuration MCP

Créez .mcp.json à la racine du plugin pour déclarer la dépendance à openlegi :

{
  "mcpServers": {
    "openlegi-legifrance": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://mcp.openlegi.fr/legifrance/mcp?token=${OPENLEGI_TOKEN}"
      ]
    },
    "openlegi-rne": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://mcp.openlegi.fr/inpi/mcp?token=${OPENLEGI_TOKEN}"
      ]
    }
  }
}

Les variables d'environnement comme ${OPENLEGI_TOKEN} sont résolues au moment de l'installation. (openlegi, Configuration Claude Desktop)

Sécurité. Ne jamais coder le token en dur dans .mcp.json. Le plugin sera potentiellement partagé via Git ou un registry, et le token est personnel.

Étape 3 : le profil de pratique CLAUDE.md

Le fichier CLAUDE.md à la racine est un template. Il sera lu automatiquement par tous les skills du plugin avant chaque exécution. Voici un exemple minimal :

# Profil de pratique — Veille juridique FR

## Domaines de pratique
À compléter via /veille-juridique-fr:cold-start-interview

## Codes prioritaires
- Code du travail
- Code de commerce
- Code civil

## Juridictions suivies
- Cour de cassation (chambre sociale)
- Conseil d'État

## Style de restitution
- Note de synthèse en 5 points maximum
- Citation systématique de l'article source avec lien Légifrance
- Aucune paraphrase d'un texte légal sans contrôle préalable

## Garde-fous
- Toujours afficher le lien `article_lc` Légifrance pour vérification
- Signaler toute troncature (`...`) sans la corriger
- Refuser de donner un avis juridique : restitution factuelle uniquement

Le profil est rempli soit manuellement, soit via une cold-start interview (voir étape 5). Il survit aux mises à jour du plugin. (Anthropic, claude-for-legal)

Étape 4 : créer un skill

Un skill est un fichier SKILL.md placé dans skills/<nom-du-skill>/. La structure est imposée par Anthropic.

Exemple complet : skills/veille-jorf/SKILL.md

---
name: veille-jorf
description: Surveille les publications récentes au Journal Officiel selon les filtres définis dans le profil de pratique. Utiliser quand l'utilisateur demande une veille JORF, une revue des derniers décrets, ou un suivi des publications récentes du gouvernement français.
argument-hint: "[nombre_jours]"
---

# Veille JORF

Récupère les publications récentes du Journal Officiel français via openlegi
et produit une note de synthèse selon le style maison défini dans CLAUDE.md.

## Procédure

1. Lire le profil de pratique dans `~/.claude/plugins/config/veille-juridique-fr/CLAUDE.md`
   pour identifier les ministères et types de textes prioritaires.

2. Appeler l'outil openlegi `recherche_journal_officiel` :
   - text_types : selon le profil (par défaut DECRET et ARRETE)
   - ministeres : selon le profil
   - date_publication : [today - nombre_jours, today]
   - sort : PUBLI_DATE_DESC
   - max_results : 20

3. Pour chaque résultat, extraire :
   - Titre
   - Date de signature
   - Ministère émetteur
   - Lien Légifrance (champ `article_lc` des métadonnées)

4. Produire une note structurée :
   - Titre : "Veille JORF — [date début] au [date fin]"
   - 1 ligne par texte avec lien cliquable
   - Aucune paraphrase du contenu : titre officiel uniquement

## Garde-fous

- Si un texte semble particulièrement pertinent, proposer à l'utilisateur
  d'appeler `rechercher_dans_texte_legal` pour récupérer le texte intégral,
  mais ne jamais reproduire le texte sans le lien de vérification.
- Si openlegi retourne une erreur de quota, suggérer de configurer
  des clés API PISTE personnelles via le dashboard openlegi.

Points clés du format SKILL.md :

La frontmatter YAML contient name, description et argument-hint. Le champ description est le signal de déclenchement automatique du skill : Claude le lit pour décider si le skill s'applique au message en cours. Anthropic recommande de garder ce champ sous 1024 caractères. (Anthropic, claude-for-legal)

Le corps du skill est une procédure en langage naturel. Pas de DSL, pas de pseudo-code obligatoire. Claude exécute les étapes en appelant les outils MCP déclarés dans .mcp.json.

Étape 5 : le cold-start interview

C'est la convention Anthropic pour personnaliser le plugin lors du premier usage. Créez skills/cold-start-interview/SKILL.md :

---
name: cold-start-interview
description: Initialise le profil de pratique du plugin veille-juridique-fr. À exécuter une fois après l'installation. Pose des questions sur les domaines, juridictions et style attendu, puis écrit le profil dans CLAUDE.md.
---

# Cold-start interview — Veille juridique FR

## Objectif

Remplir le fichier `~/.claude/plugins/config/veille-juridique-fr/CLAUDE.md`
avec les paramètres spécifiques à l'utilisateur ou au cabinet.

## Procédure

1. Présenter brièvement le plugin et expliquer que l'interview dure 5 à 10 minutes.

2. Poser les questions suivantes, une par une :

   a) Quels sont les 3 à 5 domaines de droit que vous suivez en priorité ?
   b) Quels codes juridiques consultez-vous le plus souvent ?
   c) Quelles juridictions surveillez-vous (Cour de cassation, Conseil d'État, etc.) ?
   d) Quels ministères publient les textes qui vous concernent ?
   e) Quel format de restitution préférez-vous (note courte, tableau, bullet points) ?
   f) Avez-vous des garde-fous spécifiques (privilege, anonymisation, etc.) ?

3. Demander à l'utilisateur de fournir 2 à 3 exemples de notes de veille
   passées (URL ou copier-coller) pour calibrer le style.

4. Écrire le fichier CLAUDE.md selon les réponses.

5. Tester immédiatement avec `/veille-juridique-fr:veille-jorf 7` pour valider.

Cette convention permet à un utilisateur non technique de configurer le plugin sans toucher au fichier CLAUDE.md directement.

Étape 6 : ajouter un agent planifié

Les agents planifiés s'exécutent en arrière-plan selon une cadence cron. Créez agents/digest-hebdo.md :

---
name: digest-hebdo
schedule: "0 8 * * 1"
description: Digest hebdomadaire de veille juridique, envoyé chaque lundi à 8h.
---

# Digest hebdomadaire

Chaque lundi matin, produire une note couvrant :

1. Les publications JORF de la semaine écoulée (appeler veille-jorf 7).
2. Les nouvelles décisions de la Cour de cassation dans les domaines suivis
   (appeler rechercher_jurisprudence_judiciaire avec juridiction_judiciaire=["Cour de cassation"],
   date_decision sur les 7 derniers jours, panorama=true).
3. Les éventuelles décisions du Conseil d'État en lien avec les domaines suivis.

Sortie attendue :
- Un fichier markdown nommé `digest-AAAA-MM-DD.md`
- Posté dans le canal Slack #veille-juridique si le connecteur Slack est configuré
- Sinon stocké dans `~/Documents/veille-juridique/`

La frontmatter schedule utilise une syntaxe cron standard. (Anthropic, claude-for-legal)

Pour un déploiement headless (sans interface), cet agent peut être converti en Managed Agent via l'API Claude. Cela suppose la création d'un cookbook séparé dans managed-agent-cookbooks/digest-hebdo/. La documentation Anthropic décrit cette opération via le script deploy-managed-agent.sh. (Anthropic, claude-for-legal)

Étape 7 : tester le plugin localement

Depuis Claude Code, ajoutez le marketplace local et installez le plugin :

# Pointer Claude Code vers le répertoire local du plugin
/plugin marketplace add /chemin/absolu/vers/mon-plugin-openlegi

# Installer
/plugin install veille-juridique-fr@local

# Redémarrer Claude Code, puis lancer la cold-start interview
/veille-juridique-fr:cold-start-interview

Sur Claude Cowork, l'installation se fait via l'onglet Customize > Browse plugins > Upload custom plugin file en uploadant le répertoire zippé.

Étape 8 : structurer les garde-fous spécifiques au droit français

openlegi documente plusieurs risques structurels lors de l'usage de Légifrance via un LLM, dont la troncature des textes longs, les références internes orphelines et les numéros d'articles réaffectés après renumérotation législative. (openlegi, Limitations connues)

Pour les couvrir au niveau plugin, ajoutez un hook pre-tool dans hooks/openlegi-guardrails.md :

---
name: openlegi-guardrails
type: pre-tool
applies-to: ["rechercher_code", "rechercher_dans_texte_legal"]
---

# Garde-fous openlegi

Avant tout appel à openlegi sur un code ou texte légal :

1. Si la requête concerne un article potentiellement renuméroté
   (Code civil avant 2016, Code du travail avant 2008, Code de commerce),
   demander à l'utilisateur de confirmer la version recherchée.

2. Après l'appel, si la réponse contient `...` ou se termine par des points
   de suspension, signaler explicitement la troncature dans la restitution.

3. Toujours afficher le lien `article_lc` retourné dans les métadonnées,
   sans exception.

4. Ne jamais paraphraser le texte d'un article. Reproduire le texte exact
   retourné par l'outil. Toute reformulation est interdite.

Ces garde-fous reprennent textuellement les recommandations openlegi sur la prévention des hallucinations en droit français. (openlegi, Limitations connues)

Étape 9 : documenter le plugin

Le README.md à la racine du plugin doit minimalement contenir :

  • Liste des skills exposés avec leur commande
  • Liste des connecteurs MCP requis
  • Exemples d'usage
  • Mention du token openlegi nécessaire

Anthropic recommande également de garder la description de chaque skill sous 1024 caractères, car c'est le signal de déclenchement automatique. (Anthropic, claude-for-legal)

Étape 10 : publier le plugin

Trois options de distribution.

Privé (cabinet ou direction juridique) : héberger le repo sur un GitHub privé, ajouter le marketplace via /plugin marketplace add https://github.com/cabinet/mon-plugin-openlegi.

Public via le Legal Builder Hub : Anthropic propose un système de découverte et d'installation de skills communautaires avec contrôles de sécurité. (Anthropic, claude-for-legal) Le passage par ce hub implique de soumettre le plugin à un QA framework qui scanne le contenu, vérifie les licences et journalise les installations.

Public en dehors du hub : publication sur GitHub sous licence libre. C'est l'approche utilisée pour anthropics/claude-for-legal lui-même, sous Apache 2.0. (Anthropic, claude-for-legal)

Exemple complet : repo de référence

Un squelette minimal de plugin openlegi est disponible sous la forme suivante :

veille-juridique-fr/
  .claude-plugin/
    plugin.json
  skills/
    cold-start-interview/SKILL.md
    veille-jorf/SKILL.md
    recherche-code/SKILL.md
    recherche-jurisprudence/SKILL.md
  agents/
    digest-hebdo.md
  hooks/
    openlegi-guardrails.md
  .mcp.json
  CLAUDE.md
  README.md
  LICENSE

Pour un exemple grandeur réelle de plugins exploitant des connecteurs MCP juridiques, consulter le repo anthropics/claude-for-legal qui contient 12 plugins de référence sous licence Apache 2.0 (5,2k étoiles, 726 forks au 16 mai 2026). (Anthropic, claude-for-legal)

Limites et points de vigilance

Les hooks pre-tool et la cadence des agents planifiés sont des fonctionnalités actives sur Claude Code et Cowork. Leur disponibilité sur d'autres clients MCP (Mistral Le Chat, Microsoft Copilot Studio) peut être partielle ou inexistante. (openlegi, Liste des services compatibles)

La délégation à des sous-agents (callable_agents) est en Research Preview au moment de la publication de ce guide et supporte un seul niveau de délégation. (Anthropic, claude-for-legal)

Tout output produit par un plugin construit sur openlegi reste un brouillon à valider. La règle openlegi est absolue : pour tout usage professionnel, vérifier le texte sur Légifrance via le lien article_lc fourni dans les métadonnées. (openlegi, Limitations connues)

Aller plus loin

Sujet Ressource
Outils openlegi exhaustifs openlegi, Liste des outils
Référence Claude plugins anthropics/claude-for-legal
API Claude Managed Agents docs.claude.com/managed-agents
Spécification MCP modelcontextprotocol.io
Clés API PISTE personnelles openlegi, Clés API personnelles

Derniere mise a jour : 16 mai 2026