Entity Enricher поставляется со встроенным сервером Model Context Protocol по адресу /api/mcp — выведите список ваших схем, обогатите сущность, изучите результат и устраните предупреждение классификации всё это в одном чате Claude. Редактор рабочих процессов не требуется.
Другая форма — другой сценарий использования. Коннекторы n8n и Make оборачивают API для автоматизации рабочих процессов: триггеры, запуски по расписанию, многошаговые конвейеры, сохраняемое состояние. MCP оборачивает его для интерактивного чата: спонтанные вопросы, исследовательские обогащения, уточняющие вопросы. Рабочие процессы имеют пакетную форму, чаты — диалоговую; отличается интерфейс, отличается и UX.
Функция, которую открывает только MCP: интерактивное возобновление классификации. Когда предварительный классификатор отклоняет вашу сущность (например, вы попросили обогатить «Титан» по схеме Planet, но Титан — это спутник), n8n/Make вынуждены автоматически отменять запрос, так как они неинтерактивны. MCP передаёт предупреждение Claude, Claude просит вас подтвердить, и при ответе «да» инструмент запускается заново без классификатора. Никаких сбоев в середине конвейера, никакого перезапуска с нуля.
Для claude.ai, Claude Code, Cursor и любого MCP-клиента, поддерживающего стандартный процесс OAuth. Не нужно создавать или вставлять API-ключ — клиент обнаруживает сервер авторизации автоматически.
https://entityenricher.ai/api/mcp/.Для клиентов, настраиваемых через JSON-файл, а не через интерактивный вход (Claude Desktop, Continue, Zed).
ent_… — оно показывается только один раз.Для Claude Desktop отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"entityenricher": {
"url": "https://entityenricher.ai/api/mcp/",
"headers": { "X-API-Key": "ent_your_key_here" }
}
}
}Перезапустите Claude Desktop. Этот же фрагмент работает в Claude Code, Cursor, Continue и Zed — в любом MCP-совместимом клиенте.
В новом чате: «Покажи мои схемы Entity Enricher, затем обогати Sanofi по схеме фармацевтической компании с помощью Claude Sonnet.» Claude автоматически обнаруживает инструменты, выбирает нужный, предлагает подтвердить выбор модели и схемы и передаёт результат в потоковом режиме прямо в чат.
54 инструмента покрывают весь набор возможностей: обогащение, создание схем, синхронизацию с базой данных и семантические ID. Поведение идентично REST-эндпоинтам, которые они оборачивают (та же валидация, тарификация, лимиты тарифного плана) — исправление в веб-интерфейсе автоматически появляется и в MCP. Длительные операции (пакетное обогащение, генерация образцов, запуск бенчмарков) выполняются асинхронно: инструмент запуска возвращает job_id, Claude опрашивает get_job_status и после завершения задачи получает сохранённые результаты из ваших записей.
| Категория | Инструмент | Описание |
|---|---|---|
| Обнаружение | list_models | Перечислите ключи моделей, номинальные возможности, автоматически выбранные значения по умолчанию и profile_limits вашего тарифа. Предпочитайте автоматический выбор: доступность не гарантирует каждую квоту провайдера или комбинированный режим медиа/инструментов. |
| Схемы | list_schemas | Список сохранённых JSON-schemas в вашей организации, закреплённые — первыми. |
| Схемы | get_schema | Получить полное содержимое схемы по UUID. |
| Схемы | generate_sample | Создание 1..N редактируемых образцов контрактов в одном задании (первый определяет набор полей; остальные — быстрые варианты экземпляров с тем же набором полей) в режиме знаний (без вложений, с необязательным веб-поиском) или в режиме источника (вложения авторитетны, а планировщик может задавать вопросы). Согласуйте существенные изменения с пользователем перед созданием схемы. |
| Схемы | create_schema_from_sample | Создание и автоматическое сохранение схемы на основе entity_samples (1..N образцов одного типа сущности — объединение полей, допускающих null там, где они отсутствуют, реальные наблюдаемые примеры), sample_record_id или отредактированных данных вместе со связанными с записью вложениями. Семантические ID включаются по желанию; предложения проверяются и никогда не применяются автоматически. |
| Схемы | save_schema | Сохраните схему, созданную Claude напрямую — без вызова LLM, без затрат, с валидацией на стороне сервера. |
| Схемы | update_schema | Переименуйте, замените содержимое, измените теги, закрепите или переключите проверку неоднозначности у сохранённой схемы без вызова LLM. |
| Схемы | get_schema_part | Прочитайте часть схемы без полного документа: индекс именованных типов, определение $defs/$enums, поддерево объекта или карточку отдельного свойства с её связями и флагами. |
| Схемы | update_schema_property | Измените одно свойство по пути — переименование, тип или $ref, описание, примеры, флаги — либо удалите его, с проверкой на стороне сервера; без передачи всего содержимого. |
| Схемы | add_schema_property | Добавьте скалярное свойство, вложенный объект или свойство $ref в корень, во вложенный объект или в тип из $defs. |
| Схемы | move_schema_property | Перенесите одно свойство в другой контейнер — корень, вложенный объект или тип $defs — с сохранением его флагов и экспертной области. |
| Схемы | publish_schema | Публикация рабочей копии связанной схемы как контракта, по которому работают обогащение и её синхронизации базы данных. Структурные изменения вступают в силу только здесь — а только что связанная синхронизация ничего не передаёт до первой публикации её схемы. validate_only=true показывает предварительный просмотр различий миграции. |
| Схемы | analyze_sample | Анализирует образец JSON на имена свойств, допускающие в контексте родителя больше одного прочтения — или ни одного, — и на связанные элементы, смешивающие факты о сущности с фактами по конкретному родителю. Отчёт без сохранения состояния с конкурирующими интерпретациями и предлагаемыми переименованиями; ничего не изменяется. |
| Схемы | analyze_schema | Запустите проверки неоднозначности и области идентичности для сохранённой схемы и запишите аннотации по каждому свойству — переписанное описание для каждого неоднозначного имени, поскольку действующую схему нельзя переименовать. По умолчанию выполняется инкрементально, force=true заново анализирует всё. |
| Схемы | delete_schema | Мягко удалите сохранённую схему по UUID. |
| Обогащение | enrich_entity | Мультимодельное обогащение с опциональным авто-слиянием. Принимает необязательный список attachment_ids. Несоответствия классификации возвращают ответ без ошибки, чтобы Claude мог попросить пользователя подтвердить и повторить. |
| Обогащение | start_batch_enrichment | Обогащайте любое количество сущностей асинхронно — без фиксированного ограничения на размер пакета, только в пределах текущей квоты использования вашего тарифа — полный конвейер для каждой сущности с автоматическим слиянием. Возвращает job_id; результаты попадают в ваши записи. |
| Обогащение | fetch_entities | Получите JSON-массив сущностей из внешнего REST API на стороне сервера (bearer / api_key / basic auth) — сочетается с пакетным обогащением. |
| Обогащение | retry_expertises | Повторно запустите только неудавшиеся области экспертизы записи, объединив восстановленные значения обратно — без повторной оплаты за уже успешное. |
| Обогащение | merge_records | Объедините 2+ существующих записей в один результат слияния — на основе правил или с моделью арбитража LLM. |
| Задания | get_job_status | Опрашивайте асинхронные задачи о прогрессе, результатах, сбоях и уточняющих вопросах. После сбоя совместимости с явно указанной моделью повторите один раз с автоматическим выбором вместо перебора моделей. |
| Задания | cancel_job | Отмените ожидающее, выполняющееся или приостановленное задание. |
| Задания | answer_job_question | Ответьте на уточняющие вопросы приостановленного задания и возобновите его — интерактивная часть generate_sample. |
| Бенчмарки | list_benchmark_scenarios | Список ваших сохранённых сценариев бенчмарков (переиспользуемые тесты обогащения). |
| Бенчмарки | get_benchmark_scenario | Один сценарий с его оценёнными результатами по каждой модели (качество / затраты / скорость). |
| Бенчмарки | create_benchmark_scenario | Создайте сценарий: схема + фиксированная сущность + стратегия + оценивающий судья. Требуется роль владельца + тариф с бенчмарками. |
| Бенчмарки | update_benchmark_scenario | Обновите определение теста сценария или конфигурацию оценки; существующие результаты помечаются как устаревшие. |
| Бенчмарки | set_benchmark_reference | Сохраните эталонный результат и отметьте его как проверенный — это требуется перед запуском. |
| Бенчмарки | delete_benchmark_scenario | Удалите сценарий и его результаты. |
| Бенчмарки | run_benchmark | Запустите сценарий на явном списке моделей, всех активных моделях выбранных провайдеров или всех активных моделях — каждый результат автоматически оценивается относительно эталона. |
| Записи | list_records | Просматривайте постранично записи обогащения, генерации образцов и схем, редактирования схем, песочницы, классификации, арбитража и анализа неоднозначности с фильтрами по успешности, модели, задаче и поиску. |
| Записи | get_record | Полный структурированный вывод + ошибки валидации для одной записи. |
| Записи | get_stats | Агрегированная статистика организации: итоги, доля успешных, токены, затраты. |
| Вложения | upload_attachment | Загрузите файл в формате base64 и получите его ID вложения плюс требуемую возможность модели. Передача этого ID в generate_sample активирует режим источника. |
| Вложения | delete_attachment | Удалить вложение по ID — удобный шаг очистки после обогащения. |
| Database Sync | list_database_syncs | Список синхронизаций базы данных, зарегистрированных для сохранённой схемы, с количеством ожидающих дельт и параметрами каждой синхронизации. |
| Database Sync | create_database_sync | Подключите базу данных к сохранённой схеме, превращая её обогащения в реляционные SQL-дельты для вашего собственного PostgreSQL. Схема связывается неопубликованной, а модель базы данных классифицируется в фоновом режиме — проверьте её, затем publish_schema запускает передачу данных. |
| Database Sync | classify_database_model | Повторно запустите классификацию модели базы данных после редактирования связанной схемы: LLM предлагает ключ, SQL-тип, индекс и владение для каждого нового или изменённого свойства. Первый проход выполняется автоматически при подключении базы данных. |
| Database Sync | delete_database_sync | Удаление синхронизации базы данных и её дельт в очереди — таблицы вашей реплики остаются нетронутыми. Дополнительные флаги удаления также сбрасывают состояние сущностей и модель базы данных схем, оставшихся без базы данных. |
| Database Sync | create_database_credential | (Пере)выпуск учётных данных sync-client для синхронизации базы данных — этап сопряжения рабочего процесса ee-database, возвращаемый вместе с командами install и pair. |
| Database Sync | fetch_database_deltas | Получение следующего FIFO-окна SQL-дельт для синхронизации базы данных — claim=true берёт его в аренду для доставки с подтверждением, claim=false — это воспроизводимое чтение. |
| Database Sync | ack_database_deltas | Подтверждение применённых дельт вплоть до указанного id: снимает аренду и применяет параметры очистки синхронизации. |
| Database Sync | assign_sync_host | Назначить (или очистить) хост синхронизации, который разворачивает синхронизацию базы данных в управляемом режиме: хост забирает учётные данные, создаёт физическую базу данных, если её нет, и запускает синхронизацию — без ручного сопоставления. |
| Database Sync | list_entity_states | Просмотр текущего состояния сущностей схемы — дедуплицированные строки по принципу «побеждает последняя запись», которые хранит слой сущностей и зеркалит каждая связанная база данных, а не записи отдельных запусков из list_records. |
| Database Sync | sync_records_to_database | Отправка сохранённых результатов обогащения в Database Sync схемы — с повторной проверкой по опубликованному контракту и последующим прохождением через шлюз допуска. |
| Семантические ID | list_semantic_concepts | Просмотр словаря концептов организации с фасетами по типам — либо, при view="duplicates", пар концептов чуть ниже порога разрешения. |
| Семантические ID | get_semantic_concept | Полная информация о концепте: поверхностные формы, ключи источников идентичности, связанные записи и ближайшие соседи со степенью сходства (определены только в пределах его типа концепта и среза модели эмбеддингов). |
| Семантические ID | probe_semantic_concept | Пробный прогон лестницы разрешения для текста — что сделало бы с ним обогащение — без создания чего-либо. Проверьте перед добавлением. |
| Семантические ID | add_semantic_concept | Добавление концепта с usage 0 или, через alias_of, новой поверхностной формы уже существующего. Отклоняется с указанием текущего концепта, если текст уже покрыт на уровне порога. |
| Семантические ID | update_concept_alias | Удаление поверхностной формы концепта или назначение одной из них канонической. Удаление последней поверхностной формы отклоняется — за удаление самого концепта отвечает поток удаления. |
| Семантические ID | import_semantic_concepts | Разрешение до 1000 текстов идентичности через лестницу обогащения: по умолчанию — отчёт по каждой строке, а при mint=true (владелец) — создание недостающих концептов. |
| Семантические ID | merge_semantic_concepts | Объединение одного концепта с другим. impact_only=true (по умолчанию) показывает масштаб последствий; само объединение (владелец) переназначает алиасы и сущности и приводит к сходимости все связанные базы данных. |
| Семантические ID | delete_semantic_concepts | Удаление концептов по id, целыми типами или только неиспользуемых. impact_only=true (по умолчанию) сначала показывает количество и затронутые схемы и базы данных; удаление самовосстанавливается, но нарушает сходимость с сохранёнными id. |
| Семантические ID | migrate_semantic_embeddings | Статус, предпросмотр коллизий, запуск или отмена миграции модели эмбеддингов организации — единственный способ перенести существующие концепты между моделями эмбеддингов. |
Опустите attachment_ids. Модель создаёт переиспользуемый образец из своих знаний, а enable_web_search=true может подкрепить внешние факты.
Передайте attachment_ids. Планировщик считает файлы авторитетными: он транскрибирует значения из документа или описывает только атрибуты, видимые на фотографии. Поля и дополнительные инструкции не могут добавлять несвязанные внешние факты.
Всё, что вы передаёте в дополнительных инструкциях, либо выполняется, либо возвращается с пометкой, что выполнено не было. Если детерминированному правилу пришлось отменить то, о чём вы просили, — например, структуру, которую генератор не может выдать, — завершённая задача содержит список warnings с объяснением. Передавайте их пользователю: именно молча проигнорированная инструкция приводит к незаметно ошибочному образцу.
Для гибридного запроса, например определения автомобиля по фотографии и исследования его публичных появлений, вызовите generate_sample дважды: сначала в режиме источника с выключенным веб-поиском, затем без вложений, используя подтверждённую идентичность и включённый веб-поиск. Объедините результаты в диалоге; Entity Enricher хранит отдельные записи, чтобы наблюдения из источника и исследованные факты сохраняли разное происхождение.
Оставляйте model=auto, если вам явно не нужна конкретная модель. Автоматический выбор учитывает требования задачи, вложений и веб-поиска; даже при наличии ключа модели можно столкнуться с квотой конкретного провайдера или ограничениями комбинированных инструментов.
Перед генерацией схемы клиент проверяет область сущности, ключи, типы, кардинальность, отсутствующие репрезентативные поля и вложенные связи. Значимые изменения группируются для вашего одобрения; фактические значения и структура никогда не меняются незаметно.
Для реляционных таблиц, мастер-данных, графов знаний или переиспользуемых вложенных сущностей клиент спрашивает, генерировать ли семантические ID. Они требуют модели встраивания организации и добавляют стоимость встраивания, поэтому по умолчанию остаются отключёнными.
Передайте entity_data для нового или отредактированного образца либо sample_record_id, чтобы переиспользовать сохранённый JSON и связанные с ним вложения. Передача обоих использует отредактированный JSON, сохраняя вложения. Явный attachment_ids, включая пустой список, отменяет наследование.
После генерации клиент проверяет соответствие образца, ключи, аннотации, экспертизу, связи и покрытие семантическими ID. Структурные предложения требуют редактирования образца и повторной генерации; изменения только аннотаций также требуют вашего одобрения. Ничего не применяется автоматически.
Ресурсы позволяют Claude просматривать данные без затрат на вызов инструмента — клиент LLM обращается с ними как с файлами. Оба типа ресурсов отображаются в формате Markdown для дешёвого встроенного показа.
| Шаблон URI | Описание |
|---|---|
| enricher://schemas/{schema_id} | Сохранённая схема в виде Markdown — заголовок с метаданными + GeneratedJsonSchema как огороженный блок JSON. |
| enricher://records/{record_id} | Прошлая запись обогащения, отображённая в формате Markdown — метаданные + структурированный вывод + ошибки валидации. |
Когда вы просите enrich_entity использовать модель классификации, а сущность не соответствует типу схемы, инструмент возвращает не-ошибочный ответ со структурированными деталями. Claude читает его, показывает вам обоснование и (после вашего подтверждения) повторяет попытку с force_after_classification_warning=true — что отключает классификатор при повторе.
{
"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 и Make автоматически отменяют операцию в этом состоянии, поскольку не могут запросить пользователя в середине конвейера. MCP может, и именно это единственное различие является причиной существования коннектора.
Та же интерактивность обеспечивает второй сценарий: когда generate_sample запускается с исходными документами, его планировщик может приостановиться с уточняющими структурными вопросами. Claude передаёт их вам и возобновляет задачу с помощью answer_job_question — раунд за раундом, пока не будет сгенерирован образец.
Ошибки инструментов проецируются в структурированные словари с полем error_code, чтобы Claude мог сопоставлять шаблоны вместо разбора свободного текста. HTTP-уровень отображается однозначно: 402 → ошибка квоты или кредита, 422 → предупреждение классификации, 504 → тайм-аут, 502 → сбой вышестоящего LLM.
| error_code | Когда |
|---|---|
| invalid_request | Некорректный UUID, взаимоисключающие аргументы (schema_id + target_schema) или ошибка валидации тела запроса. |
| prompt_limit_reached | Дневная / недельная / месячная квота на промпты исчерпана (HTTP 402). В теле ответа указаны период, лимит, использовано и требуется. |
| insufficient_credits | У организации включена оплата, но баланс кредитов слишком низкий для запуска задания (HTTP 402). Тело ответа содержит баланс и URL для покупки. |
| model_limit_exceeded | Запрошено больше моделей, чем позволяет план (HTTP 402). Возвращает лимит и запрошенное количество. |
| language_limit_exceeded | Запрошено больше языков, чем позволяет план (HTTP 402). |
| concurrent_job_limit_reached | Слишком много активных задач обогащения для этой организации. Подождите или обновите тарифный план. |
| classification_warning | ⚡ Не ошибка: предварительный классификатор отклонил сущность. Ответ содержит контекст классификации, чтобы Claude мог попросить пользователя подтвердить и повторить попытку с force_after_classification_warning=true. |
| benchmarks_not_in_plan | Инструменты бенчмарков требуют роли владельца и тарифа, включающего Model Benchmarks (HTTP 403). |
| ambiguity_check_disabled | analyze_schema вызван для схемы с отключённой проверкой неоднозначности (HTTP 400). Сначала включите её через update_schema с ambiguity_check_enabled=true. |
| enrichment_timeout | Задание превысило timeout_seconds. Рекомендуется использовать меньше моделей или разделить сущность. |
| schema_generation_timeout | Генерация схемы превысила timeout_seconds. |
| schema_generation_failed | Ошибка вышестоящего LLM при генерации схемы (HTTP 502). |
| model_output_invalid | Модель вернула результат, не соответствующий схеме (HTTP 502). В теле ответа указаны модель, путь к проблемному свойству и retryable: true — вызовите инструмент повторно или выберите более мощную модель. |
| cancelled | Задание было отменено во время выполнения (HTTP 499). |
| not_found | Схема или идентификатор записи не существует в вашей организации. |
| http_error | Универсальный обработчик HTTP-ошибок без структурированного тела с деталями. |
get_stats предоставляет сводки на стороне чата; полные дашборды остаются в приложении.