Servidor MCP (claude.ai / Claude Desktop / Code / Cursor) - Documentación de Entity Enricher

Servidor MCP (Claude Desktop / Code / Cursor)

Entity Enricher incluye un servidor Model Context Protocol integrado en /api/mcp: enumere sus esquemas, enriquezca una entidad, inspeccione el resultado y resuelva una advertencia de clasificación todo desde un único chat de Claude. No se requiere ningún editor de flujos de trabajo.

¿Por qué MCP, si ya existe n8n + Make?

Otra forma, otro caso de uso. Los conectores n8n y Make envuelven la API para la automatización de flujos de trabajo: disparadores, ejecuciones programadas, pipelines de varios pasos, estado persistente. MCP la envuelve para el chat interactivo: preguntas puntuales, enriquecimientos exploratorios, aclaraciones de seguimiento. Los flujos de trabajo tienen forma de batch, los chats tienen forma de conversación: la superficie difiere y la experiencia de usuario también.

La función estrella que solo MCP desbloquea: reanudación interactiva de la clasificación. Cuando el clasificador previo rechaza su entidad (p. ej., pidió enriquecer «Titán» contra un esquema de Planeta, pero Titán es una luna), n8n/Make tienen que cancelar automáticamente porque no son interactivos. MCP muestra la advertencia a Claude, Claude le pide confirmación y, al responder «sí», la herramienta se vuelve a ejecutar sin el clasificador. Sin fallos a mitad del pipeline, sin volver a ejecutar desde cero.

Inicio rápido

Opción 1 — OAuth (recomendado)

Para claude.ai, Claude Code, Cursor y cualquier cliente MCP compatible con el flujo OAuth estándar. Sin API key que crear ni pegar: el cliente descubre el servidor de autorización automáticamente.

  1. Añada Entity Enricher como conector (en claude.ai: Configuración → Conectores → Añadir conector personalizado, o selecciónelo del directorio) con la URL https://entityenricher.ai/api/mcp/.
  2. Su navegador abre la pantalla de consentimiento de Entity Enricher: inicie sesión si es necesario y haga clic en Autorizar. La conexión actúa en su nombre con su propio rol.
  3. Gestione o revoque la conexión en cualquier momento en API Keys → Aplicaciones conectadas: la revocación corta el acceso de inmediato.

Opción 2 — API key (configuración JSON estática)

Para clientes configurados mediante un archivo JSON en lugar de un inicio de sesión interactivo (Claude Desktop, Continue, Zed).

  1. 1. Cree una clave de API
    En la interfaz web de Entity Enricher: Configuración → Claves de API → Nueva clave de acceso de organización. Elija un rol (operador para lectura principalmente, editor para crear/editar esquemas, propietario para control total). Copie el valor ent_…: solo se muestra una vez.
  2. 2. Regístrese en su cliente MCP

    Para Claude Desktop, edite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):

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

    Reinicie Claude Desktop. El mismo fragmento funciona para Claude Code, Cursor, Continue y Zed, cualquier cliente compatible con MCP.

Pruébelo

En un chat nuevo: «Enumera mis esquemas de Entity Enricher y, a continuación, enriquece a Sanofi con el esquema de empresa farmacéutica usando Claude Sonnet.» Claude descubre las herramientas automáticamente, elige la correcta, le solicita confirmar la elección de modelo y esquema, y transmite el resultado en línea.

Herramientas

Las 54 herramientas cubren toda la superficie de vocabulario de enriquecimiento, creación de esquemas, Database Sync e ID semánticos. Su comportamiento es idéntico al de los endpoints REST que encapsulan (misma validación, facturación y límites de plan) — cuando la interfaz web recibe una corrección, MCP también la recibe. Las tareas de larga duración (enriquecimiento por lotes, generación de muestras, ejecuciones de benchmark) son asíncronas: la herramienta de inicio devuelve un job_id, Claude consulta get_job_status y recupera los resultados persistidos de sus registros una vez que finaliza el trabajo.

CategoríaHerramientaDescripción
Descubrimientolist_modelsEnumere las claves de modelo, las capacidades nominales, los valores predeterminados seleccionados automáticamente y los profile_limits de su plan. Prefiera la selección automática: la disponibilidad no garantiza todas las cuotas del proveedor ni el modo combinado de medios/herramientas.
Esquemaslist_schemasLista los esquemas JSON guardados en su organización, los fijados primero.
Esquemasget_schemaObtenga el contenido completo de un esquema por UUID.
Esquemasgenerate_sampleGenere de 1 a N contratos de muestra editables en un solo trabajo (el primero define el conjunto de campos; el resto son variantes de instancia rápidas con los mismos campos) en modo conocimiento (sin adjuntos, búsqueda web opcional) o en modo fuente (los adjuntos son la referencia autoritativa y el planificador puede formular preguntas). Revise las ediciones importantes con el usuario antes de crear un esquema.
Esquemascreate_schema_from_sampleGenere y guarde automáticamente un esquema a partir de entity_samples (de 1 a N muestras de un tipo de entidad — unión de campos, anulables cuando falten, ejemplos reales observados), un sample_record_id o datos editados junto con sus adjuntos vinculados al registro. Los ID semánticos son opcionales; las sugerencias se revisan, nunca se aplican automáticamente.
Esquemassave_schemaPersista un esquema creado directamente por Claude: sin llamada al LLM, sin coste, validado del lado del servidor.
Esquemasupdate_schemaCambie el nombre, reemplace el contenido, vuelva a etiquetar, fije o active la verificación de ambigüedad de un esquema guardado sin realizar una llamada al LLM.
Esquemasget_schema_partLea una parte de un esquema sin el documento completo: el índice de tipos con nombre, una definición de $defs/$enums, un subárbol de objeto o una única ficha de propiedad con sus relaciones e indicadores.
Esquemasupdate_schema_propertyEdite una propiedad por ruta —renombrar, tipo o $ref, descripción, ejemplos, indicadores— o elimínela, con validación en el servidor; sin ida y vuelta del contenido completo.
Esquemasadd_schema_propertyAñada una propiedad escalar, un objeto anidado o una propiedad $ref a la raíz, a un objeto anidado o a un tipo de $defs.
Esquemasmove_schema_propertyMueva una propiedad a otro contenedor — la raíz, un objeto anidado o un tipo $defs — conservando sus indicadores y su dominio de especialización.
Esquemaspublish_schemaPublica la copia de trabajo de un esquema vinculado como el contrato con el que se ejecutan el enriquecimiento y sus sincronizaciones de base de datos. Las ediciones estructurales solo surten efecto aquí, y una sincronización recién vinculada no envía nada hasta la primera publicación de su esquema. validate_only=true muestra una vista previa del diff de migración.
Esquemasanalyze_sampleAnaliza el JSON de muestra en busca de nombres de propiedad que admitan más de una lectura en el contexto de su elemento padre —o ninguna en absoluto— y de elementos relacionados que mezclan datos de la entidad con datos específicos de cada padre. Informe sin estado con las interpretaciones en conflicto y los cambios de nombre sugeridos; no se modifica nada.
Esquemasanalyze_schemaEjecute las verificaciones de ambigüedad y de alcance de identidad en un esquema guardado y escriba anotaciones por propiedad: una descripción reescrita por cada nombre ambiguo, ya que un esquema activo no se puede renombrar. Incremental de forma predeterminada; force=true vuelve a analizarlo todo.
Esquemasdelete_schemaElimine de forma lógica un esquema guardado por UUID.
Enriquecimientoenrich_entityEnriquecimiento multimodelo con autofusión opcional. Acepta una lista opcional attachment_ids. Las discrepancias de clasificación devuelven una respuesta que no es de error para que Claude pueda pedir al usuario que confirme y reintente.
Enriquecimientostart_batch_enrichmentEnriquezca cualquier cantidad de entidades de forma asíncrona — sin límite fijo de tamaño de lote, restringido por la cuota de uso en tiempo real de su plan — pipeline completo por entidad con fusión automática. Devuelve un job_id; los resultados llegan a sus registros.
Enriquecimientofetch_entitiesObtenga un array JSON de entidades desde una API REST externa del lado del servidor (bearer / api_key / basic auth): se combina con el enriquecimiento por lotes.
Enriquecimientoretry_expertisesVuelva a ejecutar únicamente los dominios de especialización fallidos de un registro, combinando de nuevo los valores recuperados: sin volver a pagar por lo que ya tuvo éxito.
Enriquecimientomerge_recordsCombine 2 o más registros existentes en un resultado fusionado: basado en reglas o con un modelo de arbitraje LLM.
Trabajosget_job_statusSondee los trabajos asíncronos para conocer el progreso, los resultados, los fallos y las preguntas de aclaración. Tras un fallo de compatibilidad con un modelo explícito, reintente una vez con la selección automática en lugar de ir alternando modelos.
Trabajoscancel_jobCancele un trabajo pendiente, en ejecución o en pausa.
Trabajosanswer_job_questionResponda las preguntas de aclaración de un trabajo en pausa y reanúdelo: la mitad interactiva de generate_sample.
Benchmarkslist_benchmark_scenariosEnumere sus escenarios de benchmark guardados (pruebas de enriquecimiento reutilizables).
Benchmarksget_benchmark_scenarioUn escenario con sus resultados puntuados por modelo (calidad / coste / velocidad).
Benchmarkscreate_benchmark_scenarioCree un escenario: esquema + entidad fija + estrategia + juez de puntuación. Se requiere el rol de propietario y un plan con benchmarks.
Benchmarksupdate_benchmark_scenarioActualice la definición de prueba o la configuración de puntuación de un escenario; los resultados existentes se marcan como obsoletos.
Benchmarksset_benchmark_referenceGuarde la salida de referencia dorada y márquela como verificada: es obligatorio antes de una ejecución.
Benchmarksdelete_benchmark_scenarioElimine un escenario y sus resultados.
Benchmarksrun_benchmarkEjecute un escenario sobre una lista explícita de modelos, todos los modelos activos de proveedores seleccionados o todos los modelos activos: cada resultado se puntúa automáticamente frente a la referencia.
Registroslist_recordsRecorra los registros de enriquecimiento, generación de muestra/esquema, edición de esquema, playground, clasificación, arbitraje y análisis de ambigüedad, con filtros de éxito, modelo, trabajo y búsqueda.
Registrosget_recordSalida estructurada completa + errores de validación para un registro.
Registrosget_statsEstadísticas agregadas de la organización: totales, tasa de éxito, tokens y coste.
Adjuntosupload_attachmentSuba un archivo en base64 y devuelva su ID de adjunto junto con la capacidad de modelo requerida. Pasar el ID a generate_sample activa el modo fuente.
Adjuntosdelete_attachmentElimine un adjunto por ID: un práctico paso de limpieza posterior al enriquecimiento.
Database Synclist_database_syncsEnumera las sincronizaciones de base de datos registradas en un esquema guardado, con el recuento de deltas pendientes y las opciones de cada sincronización.
Database Synccreate_database_syncConecte una base de datos a un schema guardado para convertir sus enrichments en deltas SQL relacionales para su propio PostgreSQL. El schema se vincula sin publicar y el modelo de la base de datos se clasifica en segundo plano: revíselo y luego publish_schema inicia la alimentación.
Database Syncclassify_database_modelVuelva a ejecutar la classification del modelo de la base de datos tras editar un schema vinculado: un LLM propone la clave, el tipo SQL, el índice y la propiedad de cada property nueva o modificada. La primera pasada se ejecuta por sí sola cuando la base de datos está conectada.
Database Syncdelete_database_syncElimina una sincronización de base de datos y sus deltas en cola: las tablas de su réplica nunca se tocan. Los indicadores opcionales de desmontaje también eliminan el estado de entidad y el modelo de base de datos de los esquemas que quedan sin ninguna base de datos.
Database Synccreate_database_credential(Re)emite la credencial de sync-client de una sincronización de base de datos: el paso de emparejamiento del flujo de trabajo ee-database, devuelta junto con los comandos de instalación y emparejamiento.
Database Syncfetch_database_deltasObtiene la siguiente ventana FIFO de deltas SQL para una sincronización de base de datos: claim=true la arrienda para una entrega confirmada, claim=false es una lectura reproducible.
Database Syncack_database_deltasConfirma los deltas aplicados hasta un id: libera el arrendamiento y aplica las opciones de purga de la sincronización.
Database Syncassign_sync_hostAsigna (o borra) el host de sincronización que aprovisiona una sincronización de base de datos en modo gestionado: el host reclama la credencial, crea la base de datos física si no existe e inicia la sincronización, sin emparejamiento manual.
Database Synclist_entity_statesExplore el estado actual de las entidades de un esquema: las filas deduplicadas y con criterio last-write-wins que mantiene la capa de entidades y que replica cada base de datos vinculada, no los registros por ejecución de list_records.
Database Syncsync_records_to_databaseInyecta salidas de enriquecimiento almacenadas en el Database Sync de un esquema: se revalidan con el contrato publicado y luego pasan por la puerta de admisión.
IDs semánticoslist_semantic_conceptsExplore el vocabulario de conceptos de la organización con sus facetas de tipo o, con view="duplicates", los pares de conceptos justo por debajo del umbral de resolución.
IDs semánticosget_semantic_conceptUn concepto al completo: formas superficiales, claves de origen de identidad, registros vinculados y sus vecinos más cercanos con sus similitudes (solo definidas dentro de su propio segmento de tipo de concepto y modelo de embedding).
IDs semánticosprobe_semantic_conceptSimule la escalera de resolución para un texto —lo que haría con él un enriquecimiento— sin crear nada. Sondee antes de añadir.
IDs semánticosadd_semantic_conceptAñada un concepto con uso 0 o, con alias_of, una nueva forma superficial de uno existente. Se rechaza indicando el concepto vigente cuando el texto ya está cubierto en el umbral.
IDs semánticosupdate_concept_aliasElimine una forma superficial de un concepto o promueva una a canónica. La última forma superficial se rechaza: eliminar el concepto es tarea del flujo de eliminación.
IDs semánticosimport_semantic_conceptsResuelva hasta 1000 textos de identidad a través de la escalera de enriquecimiento: un informe por fila de forma predeterminada, creando los no encontrados con mint=true (propietario).
IDs semánticosmerge_semantic_conceptsFusione un concepto dentro de otro. impact_only=true (predeterminado) informa del alcance del impacto; la fusión en sí (propietario) reapunta alias y entidades y converge todas las bases de datos vinculadas.
IDs semánticosdelete_semantic_conceptsElimine conceptos por id, tipos completos o solo los no utilizados. impact_only=true (predeterminado) informa primero de los recuentos y de los esquemas/bases de datos afectados; la eliminación se autorrepara, pero rompe la convergencia con los id almacenados.
IDs semánticosmigrate_semantic_embeddingsEstado, vista previa de colisiones, inicio o cancelación de la migración de modelo de embedding de la organización: la única forma de mover conceptos existentes entre modelos de embedding.

Modos de generación de muestras

Modo conocimiento

Omita attachment_ids. El modelo diseña una muestra reutilizable a partir de su conocimiento, y enable_web_search=true puede fundamentar hechos externos.

Modo fuente

Pase attachment_ids. El planificador trata los archivos como fuente autorizada: transcribe los valores del documento o describe solo los atributos visibles en una foto. Los campos y las instrucciones adicionales no pueden añadir hechos externos no relacionados.

Sus instrucciones adicionales son vinculantes

Lo que indique como instrucciones adicionales se cumple o se le informa de que no se ha cumplido. Cuando una regla determinista ha tenido que deshacer algo que pidió —por ejemplo, una estructura que el generador no puede emitir—, el trabajo finalizado incluye una lista de warnings que así lo indica. Transmítaselas al usuario: una instrucción ignorada en silencio es la forma en que una muestra acaba siendo incorrecta sin que nadie lo advierta.

Para una solicitud híbrida, como identificar un coche a partir de una foto e investigar sus apariciones públicas, llame a generate_sample dos veces: primero en modo fuente con la búsqueda web desactivada y, después, sin adjuntos, usando la identidad confirmada y con la búsqueda web activada. Combine los resultados en la conversación; Entity Enricher mantiene registros separados para que las observaciones de la fuente y los hechos investigados conserven una procedencia distinta.

Mantenga model=auto salvo que necesite explícitamente un modelo. La selección automática aplica los requisitos de la tarea, los adjuntos y la búsqueda web; una clave de modelo disponible aún puede encontrar limitaciones de cuota específicas del proveedor o restricciones de herramientas combinadas.

Apruebe la muestra y, a continuación, revise el esquema

La muestra es el contrato

Antes de generar el esquema, el cliente revisa el alcance de la entidad, las claves, los tipos, la cardinalidad, los campos representativos que falten y las relaciones anidadas. Las ediciones importantes se agrupan para su aprobación; los valores fácticos y la estructura nunca se modifican de forma silenciosa.

Elija ID semánticos estables cuando resulte útil

Para tablas relacionales, datos maestros, grafos de conocimiento o entidades anidadas reutilizables, el cliente pregunta si desea generar ID semánticos. Requieren un modelo de embeddings de la organización y añaden coste de embeddings, por lo que permanecen desactivados de forma predeterminada.

Pase entity_data para una muestra nueva o editada, o sample_record_id para reutilizar el JSON almacenado y sus adjuntos vinculados. Pasar ambos usa el JSON editado y conserva los adjuntos. attachment_ids explícito, incluida una lista vacía, anula la herencia.

Tras la generación, el cliente comprueba la conformidad de la muestra, las claves, las anotaciones, la especialización, las relaciones y la cobertura de ID semánticos. Las sugerencias estructurales requieren editar la muestra y volver a generarla; las ediciones que solo afectan a anotaciones también requieren su aprobación. Nada se aplica automáticamente.

Recursos

Los recursos permiten que Claude examine datos sin gastar una llamada a herramienta: el cliente LLM los trata como archivos. Ambos tipos de recurso se representan como Markdown para una visualización en línea económica.

Plantilla de URIDescripción
enricher://schemas/{schema_id}Un esquema guardado representado como Markdown: encabezado de metadatos + el GeneratedJsonSchema como bloque JSON delimitado.
enricher://records/{record_id}Un registro de enriquecimiento anterior representado como Markdown: metadatos + salida estructurada + errores de validación.

La función estrella: reanudación interactiva de la clasificación

Cuando le pide a enrich_entity que use un classification model y la entity no coincide con el tipo del schema, la herramienta devuelve una respuesta sin error con detalles estructurados. Claude la lee, le muestra el razonamiento y (tras su confirmación) reintenta con force_after_classification_warning=true, lo que descarta el clasificador en el reintento.

{
  "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 y Make se cancelan automáticamente en este estado porque no pueden consultar al usuario a mitad de la canalización. MCP sí puede, y esa única diferencia es la razón de ser del conector.

La misma interactividad impulsa un segundo flujo: cuando generate_sample se ejecuta con documentos de origen, su planificador puede pausarse con preguntas de aclaración estructurales. Claude se las transmite y reanuda el trabajo con answer_job_question, ronda tras ronda, hasta que se genera la muestra.

Códigos de error

Los errores de las herramientas se proyectan en diccionarios estructurados con un campo error_code para que Claude pueda hacer coincidencias de patrones en lugar de analizar texto libre. La capa HTTP se asigna de forma clara: 402 → error de cuota o crédito, 422 → advertencia de clasificación, 504 → tiempo de espera agotado, 502 → fallo del LLM ascendente.

error_codeCuándo
invalid_requestUUID con formato incorrecto, argumentos mutuamente excluyentes (schema_id + target_schema) o la validación del cuerpo de la solicitud falló.
prompt_limit_reachedCuota de prompts diaria / semanal / mensual agotada (HTTP 402). El cuerpo incluye período, límite, usado y necesario.
insufficient_creditsLa organización tiene la facturación habilitada, pero el saldo de créditos es demasiado bajo para iniciar el trabajo (HTTP 402). El cuerpo incluye el saldo y una URL de compra.
model_limit_exceededSe solicitaron más modelos de los que permite el plan (HTTP 402). Devuelve el límite y lo solicitado.
language_limit_exceededSe solicitaron más idiomas de los que permite el plan (HTTP 402).
concurrent_job_limit_reachedDemasiados trabajos de enriquecimiento activos para esta organización. Espere o mejore el plan.
classification_warning⚡ No es un error: el clasificador previo rechazó la entidad. La respuesta incluye el contexto de la clasificación para que Claude pueda pedir al usuario que confirme y reintente con force_after_classification_warning=true.
benchmarks_not_in_planLas herramientas de benchmark requieren el rol de propietario y un plan que incluya Model Benchmarks (HTTP 403).
ambiguity_check_disabledSe llamó a analyze_schema en un esquema cuya comprobación de ambigüedad está desactivada (HTTP 400). Vuelva a activarla primero mediante update_schema con ambiguity_check_enabled=true.
enrichment_timeoutEl trabajo superó timeout_seconds. Se sugiere usar menos modelos o dividir la entidad.
schema_generation_timeoutLa generación de esquemas superó timeout_seconds.
schema_generation_failedError del LLM upstream durante la generación del schema (HTTP 502).
model_output_invalidEl modelo devolvió una salida que no coincide con el esquema (HTTP 502). El cuerpo indica el modelo, la ruta de la propiedad conflictiva y retryable: true — vuelva a llamar a la herramienta o elija un modelo más potente.
cancelledEl trabajo se canceló durante su ejecución (HTTP 499).
not_foundEl ID de esquema o registro no existe en su organización.
http_errorComodín para errores HTTP sin un cuerpo de detalle estructurado.

Omisiones deliberadas

Consulte también