Entity Enricher levert een ingebouwde Model Context Protocol-server op /api/mcp — toon je schema's, verrijk een entiteit, bekijk het resultaat en los een classificatiewaarschuwing op allemaal vanuit één Claude-chat. Geen workfloweditor nodig.
Andere vorm, andere use case. De n8n- en Make-connectors verpakken de API voor workflowautomatisering: triggers, geplande runs, meerstaps-pipelines, persistente status. MCP verpakt het voor interactieve chat: ad-hocvragen, verkennende enrichments, vervolgverduidelijkingen. Workflows hebben een batch-vorm, chats een gespreksvorm — het oppervlak verschilt en de UX dus ook.
De killerfeature die alleen MCP ontgrendelt: interactief hervatten van classificatie. Wanneer de pre-flight-classificatie je entiteit afwijst (je vroeg bijvoorbeeld om "Titan" te verrijken tegen een Planeet-schema, maar Titan is een maan), moeten n8n/Make automatisch annuleren omdat ze niet-interactief zijn. MCP toont de waarschuwing aan Claude, Claude vraagt je om te bevestigen, en bij "ja" draait de tool opnieuw zonder de classificatie. Geen mislukking midden in de pijplijn, geen opnieuw beginnen vanaf nul.
Voor claude.ai, Claude Code, Cursor en elke MCP-client die de standaard OAuth-flow ondersteunt. Geen API-sleutel om aan te maken of te plakken — de client ontdekt de autorisatieserver automatisch.
https://entityenricher.ai/api/mcp/.Voor clients die via een JSON-bestand worden geconfigureerd in plaats van een interactieve aanmelding (Claude Desktop, Continue, Zed).
ent_…-waarde — die wordt maar één keer getoond.Bewerk voor Claude Desktop het bestand ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) of %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"entityenricher": {
"url": "https://entityenricher.ai/api/mcp/",
"headers": { "X-API-Key": "ent_your_key_here" }
}
}
}Start Claude Desktop opnieuw op. Hetzelfde fragment werkt voor Claude Code, Cursor, Continue en Zed — elke MCP-compatibele client.
In een nieuwe chat: "Toon mijn Entity Enricher-schema's en verrijk Sanofi vervolgens tegen het schema voor farmaceutische bedrijven met Claude Sonnet." Claude ontdekt de tools automatisch, kiest de juiste, vraagt je om het model en de schemakeuze te bevestigen, en streamt het resultaat inline.
29 tools dekken het volledige oppervlak van verrijking en schema-authoring. Het gedrag is identiek aan de REST-endpoints die ze omhullen (dezelfde validatie, facturering, planlimieten) — wanneer de web-UI een fix krijgt, krijgt MCP die ook. Langlopend werk (batchverrijking, samplegeneratie, benchmarkruns) is asynchroon: de starttool geeft een job_id terug, Claude pollt get_job_status en haalt de opgeslagen outputs uit je records zodra de job is voltooid.
| Categorie | Tool | Beschrijving |
|---|---|---|
| Ontdekking | list_models | Toon beschikbare LLM-modellen + de profile_limits van je plan zodat Claude zichzelf afremt voordat een HTTP 402 wordt bereikt. |
| Schema's | list_schemas | Toon opgeslagen JSON-schema's in je organisatie, vastgezette eerst. |
| Schema's | get_schema | Haal de volledige inhoud van een schema op via UUID. |
| Schema's | generate_sample | Genereer een realistische sample-entiteit uit een beschrijving van een entiteittype — de natuurlijke eerste stap vóór schemageneratie. Met bijlagen kan een interactieve planner pauzeren met verduidelijkingsvragen. |
| Schema's | create_schema_from_sample | Genereer een JSON-schema uit een sample-entiteitdict via LLM, optioneel gebaseerd op geüploade brondocumenten (attachment_ids). Het resultaat wordt automatisch opgeslagen. |
| Schema's | edit_schema | Aanpassing van een bestaand schema in natuurlijke taal. Geeft nieuwe inhoud + 5 vervolgsuggesties terug. |
| Schema's | save_schema | Sla een schema op dat Claude direct heeft geschreven — geen LLM-aanroep, geen kosten, gevalideerd aan serverzijde. |
| Schema's | update_schema | Hernoem, vervang inhoud, wijzig tags of pin een opgeslagen schema zonder LLM-aanroep. |
| Schema's | delete_schema | Soft-delete een opgeslagen schema op UUID. |
| Verrijking | enrich_entity | Multi-modelverrijking met optionele auto-fusie. Accepteert een optionele lijst met attachment_ids. Bij classificatieconflicten wordt een respons zonder fout teruggegeven, zodat Claude de gebruiker kan vragen te bevestigen en het opnieuw te proberen. |
| Verrijking | start_batch_enrichment | Verrijk tot 100 entiteiten asynchroon — volledige pipeline per entiteit met automatische fusie. Geeft een job_id terug; resultaten belanden in je records. |
| Verrijking | fetch_entities | Haal een JSON-array van entiteiten op van een externe REST API aan serverzijde (bearer / api_key / basic auth) — combineert met batchverrijking. |
| Verrijking | retry_expertises | Voer alleen de mislukte expertisedomeinen van een record opnieuw uit en voeg herstelde waarden terug samen — geen dubbele betaling voor wat al is geslaagd. |
| Verrijking | merge_records | Voeg 2+ bestaande records samen tot één gefuseerd resultaat — op basis van regels of met een LLM-arbitragemodel. |
| Jobs | get_job_status | Poll elke asynchrone job (batch, samplegeneratie, benchmarkrun): voortgangstellers, eindsamenvattingen en openstaande verduidelijkingsvragen. |
| Jobs | cancel_job | Annuleer een job die in behandeling is, actief is of gepauzeerd is. |
| Jobs | answer_job_question | Beantwoord de verduidelijkingsvragen van een gepauzeerde job en hervat hem — de interactieve helft van generate_sample. |
| Benchmarks | list_benchmark_scenarios | Toon je opgeslagen benchmarkscenario's (herbruikbare verrijkingstests). |
| Benchmarks | get_benchmark_scenario | Eén scenario met de per model gescoorde resultaten (kwaliteit / kosten / snelheid). |
| Benchmarks | create_benchmark_scenario | Maak een scenario: schema + vaste entiteit + strategie + beoordelingsjudge. Owner-rol + een plan met benchmarks vereist. |
| Benchmarks | update_benchmark_scenario | Werk de testdefinitie of scoreconfiguratie van een scenario bij; bestaande resultaten worden als verouderd gemarkeerd. |
| Benchmarks | set_benchmark_reference | Sla de gouden referentie-output op en markeer hem als geverifieerd — vereist vóór een run. |
| Benchmarks | delete_benchmark_scenario | Verwijder een scenario en de bijbehorende resultaten. |
| Benchmarks | run_benchmark | Voer een scenario uit op een expliciete modellijst, elk actief model van geselecteerde providers, of alle actieve modellen — elk resultaat wordt automatisch gescoord tegen de referentie. |
| Records | list_records | Blader door eerdere records met filters op type, succes, model, taak en vrije-tekstzoekopdracht. |
| Records | get_record | Volledige gestructureerde output + validatiefouten voor één record. |
| Records | get_stats | Geaggregeerde organisatiestatistieken: totalen, slagingspercentage, tokens, kosten. |
| Bijlagen | upload_attachment | Upload een base64-bestand (filename, content_base64, media_type?) en ontvang de bijbehorende attachment-ID voor gebruik in enrich_entity. |
| Bijlagen | delete_attachment | Verwijder een bijlage op ID — een handige opschoonstap na de verrijking. |
Met resources kan Claude data doorbladeren zonder een tool-aanroep te verbruiken — de LLM-client behandelt ze als bestanden. Beide resourcetypen worden als Markdown weergegeven voor goedkope inline-weergave.
| URI-sjabloon | Beschrijving |
|---|---|
| enricher://schemas/{schema_id} | Een opgeslagen schema weergegeven als Markdown — metadata-header + de GeneratedJsonSchema als een afgebakend JSON-blok. |
| enricher://records/{record_id} | Een eerder verrijkingsrecord weergegeven als Markdown — metadata + gestructureerde output + validatiefouten. |
Wanneer je enrich_entity vraagt om een classificatiemodel te gebruiken en de entiteit niet overeenkomt met het schematype, retourneert de tool een niet-fout-respons met gestructureerde details. Claude leest het, toont je de redenering en probeert het (na jouw bevestiging) opnieuw met force_after_classification_warning=true — waardoor de classifier bij de nieuwe poging wordt overgeslagen.
{
"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 en Make annuleren automatisch bij deze status omdat ze de gebruiker niet halverwege de pipeline iets kunnen vragen. MCP kan dat wel, en dat ene verschil is waarom de connector bestaat.
Dezelfde interactiviteit drijft een tweede flow aan: wanneer generate_sample met brondocumenten draait, kan de planner pauzeren met structurele verduidelijkingsvragen. Claude geeft ze aan je door en hervat de job met answer_job_question — ronde na ronde, totdat de sample is gegenereerd.
Toolfouten worden geprojecteerd in gestructureerde dicts met een error_code-veld, zodat Claude patronen kan herkennen in plaats van vrije tekst te parsen. De HTTP-laag wordt netjes gemapt: 402 → quota- of creditfout, 422 → classificatiewaarschuwing, 504 → time-out, 502 → upstream LLM-fout.
| error_code | Wanneer |
|---|---|
| invalid_request | Ongeldige UUID, wederzijds uitsluitende argumenten (schema_id + target_schema), of validatie van de request-body mislukt. |
| prompt_limit_reached | Dagelijks / wekelijks / maandelijks prompt-quotum uitgeput (HTTP 402). De body bevat period, limit, used en needed. |
| insufficient_credits | Org heeft facturering ingeschakeld maar het creditsaldo is te laag om de taak te starten (HTTP 402). De body bevat het saldo en een aankoop-URL. |
| model_limit_exceeded | Meer modellen aangevraagd dan het plan toestaat (HTTP 402). Geeft limiet + aangevraagd terug. |
| language_limit_exceeded | Meer talen aangevraagd dan het plan toestaat (HTTP 402). |
| concurrent_job_limit_reached | Te veel actieve verrijkingstaken voor deze organisatie. Wacht of upgrade je abonnement. |
| classification_warning | ⚡ Geen fout: de pre-flight classifier heeft de entiteit afgewezen. Het antwoord bevat de classificatiecontext zodat Claude de gebruiker kan vragen om te bevestigen en opnieuw te proberen met force_after_classification_warning=true. |
| benchmarks_not_in_plan | Benchmarktools vereisen de owner-rol en een plan met Model Benchmarks (HTTP 403). |
| enrichment_timeout | Job overschreed timeout_seconds. Overweeg minder modellen of splits de entity. |
| schema_generation_timeout | Schemageneratie heeft timeout_seconds overschreden. |
| schema_generation_failed | Upstream-LLM-fout tijdens schema-generatie (HTTP 502). |
| cancelled | Job werd tijdens de run geannuleerd (HTTP 499). |
| not_found | Schema- of record-ID bestaat niet in je organisatie. |
| http_error | Verzamelpost voor HTTP-fouten zonder gestructureerde detailinhoud. |
get_stats dekt samenvattingen aan de chatkant; de volledige dashboards blijven in de app.