Serveur MCP (claude.ai / Claude Desktop / Code / Cursor) - Documentation Entity Enricher

Serveur MCP (Claude Desktop / Code / Cursor)

Entity Enricher embarque un serveur Model Context Protocol intégré à l'adresse /api/mcp — listez vos schémas, enrichissez une entité, inspectez le résultat et résolvez un avertissement de classification, le tout depuis une seule conversation Claude. Aucun éditeur de workflow requis.

Pourquoi MCP, alors qu'il y a déjà n8n + Make ?

Forme différente, cas d'usage différent. Les connecteurs n8n et Make encapsulent l'API pour l'automatisation de workflows : déclencheurs, exécutions planifiées, pipelines multi-étapes, état persistant. MCP l'encapsule pour le chat interactif : questions ponctuelles, enrichissements exploratoires, clarifications de suivi. Les workflows suivent une logique de traitement par lot, les chats une logique conversationnelle — la surface diffère, tout comme l'expérience utilisateur.

La fonctionnalité phare que seul MCP débloque : la reprise interactive de classification. Lorsque le classificateur de pré-vérification rejette votre entité (par ex. vous avez demandé d'enrichir « Titan » avec un schéma Planète, mais Titan est une lune), n8n/Make doivent annuler automatiquement car ils ne sont pas interactifs. MCP fait remonter l'avertissement à Claude, Claude vous demande confirmation, et si vous répondez « oui », l'outil se relance sans le classificateur. Pas d'échec en cours de pipeline, pas de reprise depuis zéro.

Démarrage rapide

Option 1 — OAuth (recommandé)

Pour claude.ai, Claude Code, Cursor et tout client MCP prenant en charge le flux OAuth standard. Aucune clé API à créer ou à coller — le client découvre automatiquement le serveur d'autorisation.

  1. Ajoutez Entity Enricher comme connecteur (dans claude.ai : Paramètres → Connecteurs → Ajouter un connecteur personnalisé, ou choisissez-le dans le répertoire) avec l'URL https://entityenricher.ai/api/mcp/.
  2. Votre navigateur ouvre l'écran de consentement Entity Enricher — connectez-vous si nécessaire et cliquez sur Autoriser. La connexion agit en votre nom avec votre propre rôle.
  3. Gérez ou révoquez la connexion à tout moment sous Clés API → Applications connectées — la révocation coupe l'accès immédiatement.

Option 2 — clé API (configuration JSON statique)

Pour les clients configurés via un fichier JSON plutôt que par une connexion interactive (Claude Desktop, Continue, Zed).

  1. 1. Créez une clé API
    Dans l'interface web d'Entity Enricher : Paramètres → Clés API → Nouvelle clé d'accès d'organisation. Choisissez un rôle (opérateur pour un accès principalement en lecture, éditeur pour créer/modifier des schémas, propriétaire pour un contrôle total). Copiez la valeur ent_… — elle n'est affichée qu'une seule fois.
  2. 2. Enregistrez-le dans votre client MCP

    Pour Claude Desktop, modifiez ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows) :

    {
      "mcpServers": {
        "entityenricher": {
          "url": "https://entityenricher.ai/api/mcp/",
          "headers": { "X-API-Key": "ent_your_key_here" }
        }
      }
    }

    Redémarrez Claude Desktop. Le même extrait fonctionne avec Claude Code, Cursor, Continue et Zed — tout client compatible MCP.

Essayez

Dans une nouvelle conversation : "Listez mes schémas Entity Enricher, puis enrichissez Sanofi avec le schéma d'entreprise pharmaceutique en utilisant Claude Sonnet." Claude découvre automatiquement les outils, choisit le bon, vous demande de confirmer le choix du modèle et du schéma, puis affiche le résultat en continu directement dans la conversation.

Outils

29 outils couvrent l'ensemble de la surface d'enrichissement et de création de schéma. Le comportement est identique à celui des points de terminaison REST qu'ils encapsulent (mêmes validation, facturation et limites de forfait) — lorsque l'interface web reçoit un correctif, MCP en bénéficie aussi. Les tâches de longue durée (enrichissement par lot, génération d'échantillons, exécutions de benchmark) sont asynchrones : l'outil de démarrage renvoie un job_id, Claude interroge get_job_status et récupère les sorties persistées depuis vos enregistrements une fois la tâche terminée.

CatégorieOutilDescription
Découvertelist_modelsLister les modèles LLM disponibles + les profile_limits de votre forfait afin que Claude se limite de lui-même avant de rencontrer une erreur HTTP 402.
Schémaslist_schemasListe les schémas JSON enregistrés de votre organisation, les épinglés en premier.
Schémasget_schemaRécupérez le contenu complet d'un schéma par UUID.
Schémasgenerate_sampleGénérez une entité d'échantillon réaliste à partir d'une description de type d'entité — la première étape naturelle avant la génération de schéma. Avec des pièces jointes, un planificateur interactif peut se mettre en pause avec des questions de clarification.
Schémascreate_schema_from_sampleGénérez un schéma JSON à partir d'un dictionnaire d'entité d'échantillon via LLM, éventuellement ancré dans des documents sources téléversés (attachment_ids). Le résultat est enregistré automatiquement.
Schémasedit_schemaModification en langage naturel d'un schéma existant. Renvoie le nouveau contenu + 5 suggestions de suivi.
Schémassave_schemaPersistez un schéma rédigé directement par Claude — sans appel LLM, sans coût, validé côté serveur.
Schémasupdate_schemaRenommez, remplacez le contenu, réétiquetez ou épinglez un schéma enregistré sans appel LLM.
Schémasdelete_schemaEffectuez une suppression logique d'un schéma enregistré par UUID.
Enrichissementenrich_entityEnrichissement multi-modèles avec fusion automatique optionnelle. Accepte une liste attachment_ids facultative. Les divergences de classification renvoient une réponse sans erreur afin que Claude puisse demander confirmation à l'utilisateur et réessayer.
Enrichissementstart_batch_enrichmentEnrichissez jusqu'à 100 entités de façon asynchrone — pipeline complet par entité avec fusion automatique. Renvoie un job_id ; les résultats arrivent dans vos enregistrements.
Enrichissementfetch_entitiesRécupérez un tableau JSON d'entités depuis une API REST externe côté serveur (authentification bearer / api_key / basic) — se combine avec l'enrichissement par lot.
Enrichissementretry_expertisesRéexécutez uniquement les domaines d'expertise en échec d'un enregistrement, en réintégrant les valeurs récupérées — sans nouveau paiement pour ce qui a déjà réussi.
Enrichissementmerge_recordsFusionnez 2 enregistrements ou plus en un seul résultat fusionné — basé sur des règles ou avec un modèle d'arbitrage LLM.
Tâchesget_job_statusInterrogez n'importe quelle tâche asynchrone (traitement par lot, génération d'échantillons, exécution de benchmark) : compteurs de progression, résumés terminaux et questions de clarification en attente.
Tâchescancel_jobAnnulez une tâche en attente, en cours ou en pause.
Tâchesanswer_job_questionRépondez aux questions de clarification d'une tâche en pause et reprenez-la — la moitié interactive de generate_sample.
Benchmarkslist_benchmark_scenariosListez vos scénarios de benchmark enregistrés (tests d'enrichissement réutilisables).
Benchmarksget_benchmark_scenarioUn scénario avec ses résultats notés par modèle (qualité / coût / vitesse).
Benchmarkscreate_benchmark_scenarioCréez un scénario : schéma + entité fixe + stratégie + juge de notation. Rôle propriétaire + un forfait avec benchmarks requis.
Benchmarksupdate_benchmark_scenarioMettez à jour la définition de test ou la configuration de notation d'un scénario ; les résultats existants sont marqués comme obsolètes.
Benchmarksset_benchmark_referenceEnregistrez la sortie de référence gold et marquez-la comme vérifiée — requis avant une exécution.
Benchmarksdelete_benchmark_scenarioSupprimez un scénario et ses résultats.
Benchmarksrun_benchmarkExécutez un scénario sur une liste de modèles explicite, sur tous les modèles actifs de fournisseurs sélectionnés ou sur tous les modèles actifs — chaque résultat est noté automatiquement par rapport à la référence.
Enregistrementslist_recordsParcourez les enregistrements passés avec des filtres par type, succès, modèle, tâche, et une recherche en texte libre.
Enregistrementsget_recordSortie structurée complète + erreurs de validation pour un enregistrement.
Enregistrementsget_statsStatistiques agrégées de l'organisation : totaux, taux de réussite, tokens, coût.
Pièces jointesupload_attachmentTéléverser un fichier base64 (filename, content_base64, media_type?) et renvoyer son ID de pièce jointe pour utilisation dans enrich_entity.
Pièces jointesdelete_attachmentSupprimez une pièce jointe par son ID — une étape de nettoyage post-enrichissement bien pratique.

Ressources

Les ressources permettent à Claude de parcourir des données sans consommer d'appel d'outil — le client LLM les traite comme des fichiers. Les deux types de ressources s'affichent en Markdown pour un rendu en ligne économique.

Modèle d'URIDescription
enricher://schemas/{schema_id}Un schéma enregistré rendu en Markdown — en-tête de métadonnées + le GeneratedJsonSchema sous forme de bloc JSON délimité.
enricher://records/{record_id}Un enregistrement d'enrichissement passé rendu en Markdown — métadonnées + sortie structurée + erreurs de validation.

La fonctionnalité phare : la reprise interactive de classification

Lorsque vous demandez à enrich_entity d'utiliser un modèle de classification et que l'entité ne correspond pas au type du schéma, l'outil renvoie une réponse sans erreur avec des détails structurés. Claude la lit, vous présente le raisonnement et (après votre confirmation) réessaie avec force_after_classification_warning=true — ce qui désactive le classificateur lors de la nouvelle tentative.

{
  "success": false,
  "error_code": "classification_warning",
  "message": "Pre-flight classification rejected the entity. ...",
  "classification": {
    "status": "mismatch",
    "reasoning": "Titan is a moon of Saturn, not a planet.",
    "confidence": 0.97
  },
  "job_id": "..."
}

n8n et Make annulent automatiquement dans cet état car ils ne peuvent pas interroger l'utilisateur en cours de pipeline. MCP le peut, et cette seule différence justifie l'existence du connecteur.

La même interactivité alimente un second flux : lorsque generate_sample s'exécute avec des documents sources, son planificateur peut se mettre en pause avec des questions de clarification structurelles. Claude vous les relaie et reprend la tâche avec answer_job_question — cycle après cycle, jusqu'à ce que l'échantillon soit généré.

Codes d'erreur

Les erreurs d'outil sont projetées dans des dictionnaires structurés avec un champ error_code afin que Claude puisse faire une correspondance de motifs au lieu d'analyser du texte libre. La couche HTTP s'y mappe proprement : 402 → erreur de quota ou de crédit, 422 → avertissement de classification, 504 → délai dépassé, 502 → défaillance du LLM en amont.

error_codeQuand
invalid_requestUUID mal formé, arguments mutuellement exclusifs (schema_id + target_schema) ou échec de la validation du corps de la requête.
prompt_limit_reachedQuota de prompts quotidien / hebdomadaire / mensuel épuisé (HTTP 402). Le corps de la réponse inclut period, limit, used, needed.
insufficient_creditsL'organisation a la facturation activée mais le solde de crédits est trop faible pour démarrer la tâche (HTTP 402). Le corps de la réponse inclut le solde et une URL d'achat.
model_limit_exceededPlus de modèles demandés que le forfait n'en autorise (HTTP 402). Renvoie la limite + le nombre demandé.
language_limit_exceededPlus de langues demandées que le forfait n'en autorise (HTTP 402).
concurrent_job_limit_reachedTrop de tâches d'enrichissement actives pour cette organisation. Patientez ou passez à un forfait supérieur.
classification_warning⚡ Non-erreur : le classificateur préliminaire a rejeté l'entité. La réponse contient le contexte de classification afin que Claude puisse demander confirmation à l'utilisateur et réessayer avec force_after_classification_warning=true.
benchmarks_not_in_planLes outils de benchmark nécessitent le rôle propriétaire et un forfait incluant les Model Benchmarks (HTTP 403).
enrichment_timeoutLa tâche a dépassé timeout_seconds. Essayez avec moins de modèles ou en divisant l'entité.
schema_generation_timeoutLa génération du schéma a dépassé timeout_seconds.
schema_generation_failedErreur LLM en amont lors de la génération du schéma (HTTP 502).
cancelledLa tâche a été annulée en cours d'exécution (HTTP 499).
not_foundLe schéma ou l'ID d'enregistrement n'existe pas dans votre organisation.
http_errorCas générique pour les erreurs HTTP sans corps de détail structuré.

Omissions délibérées

Voir aussi