MCP-сервер (claude.ai / Claude Desktop / Code / Cursor) — документация Entity Enricher

Сервер MCP (Claude Desktop / Code / Cursor)

Entity Enricher поставляется со встроенным сервером Model Context Protocol по адресу /api/mcp — выведите список ваших схем, обогатите сущность, изучите результат и устраните предупреждение классификации всё это в одном чате Claude. Редактор рабочих процессов не требуется.

Зачем MCP, если уже есть n8n + Make?

Другая форма — другой сценарий использования. Коннекторы n8n и Make оборачивают API для автоматизации рабочих процессов: триггеры, запуски по расписанию, многошаговые конвейеры, сохраняемое состояние. MCP оборачивает его для интерактивного чата: спонтанные вопросы, исследовательские обогащения, уточняющие вопросы. Рабочие процессы имеют пакетную форму, чаты — диалоговую; отличается интерфейс, отличается и UX.

Функция, которую открывает только MCP: интерактивное возобновление классификации. Когда предварительный классификатор отклоняет вашу сущность (например, вы попросили обогатить «Титан» по схеме Planet, но Титан — это спутник), n8n/Make вынуждены автоматически отменять запрос, так как они неинтерактивны. MCP передаёт предупреждение Claude, Claude просит вас подтвердить, и при ответе «да» инструмент запускается заново без классификатора. Никаких сбоев в середине конвейера, никакого перезапуска с нуля.

Быстрый старт

Вариант 1 — OAuth (рекомендуется)

Для claude.ai, Claude Code, Cursor и любого MCP-клиента, поддерживающего стандартный процесс OAuth. Не нужно создавать или вставлять API-ключ — клиент обнаруживает сервер авторизации автоматически.

  1. Добавьте Entity Enricher как коннектор (в claude.ai: Настройки → Коннекторы → Добавить пользовательский коннектор или выберите его из каталога) с URL https://entityenricher.ai/api/mcp/.
  2. В браузере откроется экран согласия Entity Enricher — войдите при необходимости и нажмите Авторизовать. Подключение действует от вашего имени с вашей собственной ролью.
  3. Управляйте подключением или отзывайте его в любой момент в разделе API Keys → Connected Apps — отзыв немедленно прекращает доступ.

Вариант 2 — API-ключ (статическая JSON-конфигурация)

Для клиентов, настраиваемых через JSON-файл, а не через интерактивный вход (Claude Desktop, Continue, Zed).

  1. 1. Создайте ключ API
    В веб-интерфейсе Entity Enricher: Настройки → Ключи API → Новый ключ доступа организации. Выберите роль (operator для преимущественно чтения, editor для создания/редактирования схем, owner для полного контроля). Скопируйте значение ent_… — оно показывается только один раз.
  2. 2. Регистрация в вашем MCP-клиенте

    Для 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 автоматически обнаруживает инструменты, выбирает нужный, предлагает подтвердить выбор модели и схемы и передаёт результат в потоковом режиме прямо в чат.

Инструменты

29 инструментов охватывают весь спектр обогащения и создания схем. Поведение идентично REST-эндпоинтам, которые они оборачивают (та же валидация, биллинг, ограничения тарифа) — когда веб-интерфейс получает исправление, MCP получает его тоже. Длительные операции (пакетное обогащение, генерация образцов, запуски бенчмарков) выполняются асинхронно: инструмент запуска возвращает job_id, Claude опрашивает get_job_status и извлекает сохранённые результаты из ваших записей после завершения задания.

КатегорияИнструментОписание
Обнаружениеlist_modelsВыводит список доступных LLM-моделей и profile_limits вашего тарифа, чтобы Claude сам ограничивал нагрузку до возникновения ошибки HTTP 402.
Схемыlist_schemasСписок сохранённых JSON-schemas в вашей организации, закреплённые — первыми.
Схемыget_schemaПолучить полное содержимое схемы по UUID.
Схемыgenerate_sampleСгенерируйте реалистичный образец сущности из описания типа сущности — естественный первый шаг перед генерацией схемы. При наличии вложений интерактивный планировщик может приостановиться с уточняющими вопросами.
Схемыcreate_schema_from_sampleСгенерируйте JSON-схему из образца словаря сущности с помощью LLM, при желании опираясь на загруженные исходные документы (attachment_ids). Результат сохраняется автоматически.
Схемыedit_schemaИзменение существующей схемы на естественном языке. Возвращает новое содержимое и 5 предложений для дальнейших действий.
Схемыsave_schemaСохраните схему, созданную Claude напрямую — без вызова LLM, без затрат, с валидацией на стороне сервера.
Схемыupdate_schemaПереименуйте, замените содержимое, измените теги или закрепите сохранённую схему без вызова LLM.
Схемыdelete_schemaМягко удалите сохранённую схему по UUID.
Обогащениеenrich_entityМультимодельное обогащение с опциональным авто-слиянием. Принимает необязательный список attachment_ids. Несоответствия классификации возвращают ответ без ошибки, чтобы Claude мог попросить пользователя подтвердить и повторить.
Обогащениеstart_batch_enrichmentОбогатите до 100 сущностей асинхронно — полный конвейер для каждой сущности с автоматическим слиянием. Возвращает 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 (filename, content_base64, media_type?) и получите ID вложения для использования в enrich_entity.
Вложенияdelete_attachmentУдалить вложение по 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).
enrichment_timeoutЗадание превысило timeout_seconds. Рекомендуется использовать меньше моделей или разделить сущность.
schema_generation_timeoutГенерация схемы превысила timeout_seconds.
schema_generation_failedОшибка вышестоящего LLM при генерации схемы (HTTP 502).
cancelledЗадание было отменено во время выполнения (HTTP 499).
not_foundСхема или идентификатор записи не существует в вашей организации.
http_errorУниверсальный обработчик HTTP-ошибок без структурированного тела с деталями.

Намеренные пропуски

См. также