Unstructured

официальный

Настройка и взаимодействие с рабочими процессами обработки неструктурированных данных в Unstructured Platform

Что можно делать с Unstructured MCP?

  • Список доступных источников и назначений — Используйте list_sources и list_destinations, чтобы увидеть, какие коннекторы настроены в вашей учетной записи Unstructured.
  • Управление коннекторами источников и назначений — Создавайте, обновляйте или удаляйте коннекторы с помощью create_source_connector, update_destination_connector и связанных инструментов.
  • Запуск и мониторинг рабочих процессов приема данных — Запустите рабочий процесс с помощью run_workflow, затем отслеживайте его задачи, используя list_jobs и get_job_info.
  • Поиск рабочих процессов с завершенными задачами — Вызовите list_workflows_with_finished_jobs, чтобы определить рабочие процессы, завершившие обработку.
  • Сбор данных с веб-сайтов в ваш конвейер — Запустите обход Firecrawl с помощью invoke_firecrawl_crawlhtml и проверяйте статус через check_crawlhtml_status.

Документация

Unstructured API MCP-сервер

[!NOTE] Этот сервер взаимодействует с Unstructured API для управления источниками, назначениями и рабочими процессами. Он не поддерживается активно и сохранён здесь для справки.

Если вам нужно разбирать и преобразовывать файлы в структурированный вывод (markdown, JSON, HTML или обычный текст), используйте вместо этого Unstructured Transform MCP-сервер.

Unstructured Transform предоставляет вашим агентам обработку документов промышленного уровня в виде размещённого MCP-сервера. Он даёт им возможность превращать более 60 типов файлов в структурированные данные, готовые для ваших приложений, векторных баз данных и любых последующих процессов, путём разбора, обогащения, разбиения на фрагменты и встраивания файлов непосредственно в текущем сеансе.

Вы можете начать использовать его, зарегистрировавшись здесь.

Реализация MCP-сервера для взаимодействия с Unstructured API. Этот сервер предоставляет инструменты для получения списка источников и рабочих процессов.

Доступные инструменты

ИнструментОписание
list_sourcesВыводит список доступных источников из Unstructured API.
get_source_infoПолучить подробную информацию о конкретном коннекторе источника.
create_source_connectorСоздать коннектор источника.)
update_source_connectorОбновить существующий коннектор источника по параметрам.
delete_source_connectorУдалить коннектор источника по идентификатору источника.
list_destinationsВыводит список доступных назначений из Unstructured API.
get_destination_infoПолучить подробную информацию о конкретном коннекторе назначения
create_destination_connectorСоздать коннектор назначения по параметрам.
update_destination_connectorОбновить существующий коннектор назначения по идентификатору назначения.
delete_destination_connectorУдалить коннектор назначения по идентификатору назначения.
list_workflowsВыводит список рабочих процессов из Unstructured API.
get_workflow_infoПолучить подробную информацию о конкретном рабочем процессе.
create_workflowСоздать новый рабочий процесс с источником, идентификатором назначения и т. д.
run_workflowЗапустить конкретный рабочий процесс по идентификатору рабочего процесса
update_workflowОбновить существующий рабочий процесс по параметрам.
delete_workflowУдалить конкретный рабочий процесс по идентификатору.
list_jobsВыводит список заданий для конкретного рабочего процесса из Unstructured API.
get_job_infoПолучить подробную информацию о конкретном задании по идентификатору задания.
cancel_jobУдалить конкретное задание по идентификатору.
list_workflows_with_finished_jobsВыводит список всех рабочих процессов, у которых есть хотя бы одно завершённое задание, вместе с информацией о деталях источника и назначения.

Ниже приведён список коннекторов, которые в настоящее время поддерживает сервер UNS-MCP. Полный список коннекторов источников, поддерживаемых платформой Unstructured, смотрите здесь, а список назначений — здесь. Мы планируем добавить больше!

ИсточникНазначение
S3S3
AzureWeaviate
Google DrivePinecone
OneDriveAstraDB
SalesforceMongoDB
SharepointNeo4j
Databricks Volumes
Databricks Volumes Delta Table

Чтобы использовать инструмент, который создаёт/обновляет/удаляет коннектор, учётные данные для этого конкретного коннектора должны быть определены в вашем файле .env. Ниже приведён список credentials для поддерживаемых нами коннекторов:

Название учётных данныхОписание
ANTHROPIC_API_KEYтребуется для запуска minimal_client для взаимодействия с нашим сервером.
AWS_KEY, AWS_SECRETтребуется для создания коннектора S3 через сервер uns-mcp, смотрите как в документации и здесь
WEAVIATE_CLOUD_API_KEYтребуется для создания коннектора векторной БД Weaviate, смотрите как в документации
FIRECRAWL_API_KEYтребуется для использования инструментов Firecrawl в external/firecrawl.py, зарегистрируйтесь на Firecrawl и получите API-ключ.
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINTтребуется для создания коннектора Astradb через сервер uns-mcp, смотрите как в документации
AZURE_CONNECTION_STRINGтребуется вариант 1 для создания коннектора Azure через сервер uns-mcp, смотрите как в документации
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYтребуется вариант 2 для создания коннектора Azure через сервер uns-mcp, смотрите как в документации
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENтребуется вариант 3 для создания коннектора Azure через сервер uns-mcp, смотрите как в документации
NEO4J_PASSWORDтребуется для создания коннектора Neo4j через сервер uns-mcp, смотрите как в документации
MONGO_DB_CONNECTION_STRINGтребуется для создания коннектора Mongodb через сервер uns-mcp, смотрите как в документации
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYстроковое значение. Исходный ключ учётной записи сервера (следуйте документации) находится в json-файле, выполните base64 < /path/to/google_service_account_key.json в терминале, чтобы получить строковое значение
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRETтребуется для создания коннектора Databricks volume/delta table через сервер uns-mcp, смотрите как в документации и здесь
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_IDтребуется для создания коннектора One Drive через сервер uns-mcp, смотрите как в документации
PINECONE_API_KEYтребуется для создания коннектора векторной БД Pinecone через сервер uns-mcp, смотрите как в документации
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYтребуется для создания коннектора источника salesforce через сервер uns-mcp, смотрите как в документации
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDтребуется для создания коннектора One Drive через сервер uns-mcp, смотрите как в документации
LOG_LEVELИспользуется для установки уровня логирования для нашего minimal_client, например, установите ERROR, чтобы получать всё
CONFIRM_TOOL_USEустановите true, чтобы minimal_client мог подтверждать выполнение перед каждым вызовом инструмента
DEBUG_API_REQUESTSустановите true, чтобы uns_mcp/server.py мог выводить параметры запроса для лучшей отладки

Источник Firecrawl

Firecrawl — это API для веб-краулинга, который предоставляет две основные возможности в нашем MCP:

  1. Получение HTML-контента: Использование invoke_firecrawl_crawlhtml для запуска заданий краулинга и check_crawlhtml_status для их мониторинга
  2. Генерация текста, оптимизированного для LLM: Использование invoke_firecrawl_llmtxt для генерации текста и check_llmtxt_status для получения результатов

Как работает Firecrawl: Процесс веб-сканирования:

  • Начинается с указанного URL и анализирует его для выявления ссылок
  • Использует карту сайта, если она доступна; в противном случае переходит по ссылкам, найденным на веб-сайте
  • Рекурсивно обходит каждую ссылку для обнаружения всех подстраниц
  • Собирает контент с каждой посещенной страницы, обрабатывая рендеринг JavaScript и ограничения скорости
  • Задания можно отменить с помощью cancel_crawlhtml_job, если необходимо
  • Используйте это, если вам нужна вся информация, извлеченная в сырой HTML, рабочий процесс Unstructured отлично его очищает :smile:

Генерация текста для LLM:

  • После сканирования извлекает чистый, осмысленный текстовый контент с просканированных страниц
  • Генерирует оптимизированные текстовые форматы, специально отформатированные для больших языковых моделей
  • Результаты автоматически загружаются в указанное местоположение S3
  • Примечание: задания генерации текста для LLM нельзя отменить после запуска. Функция cancel_llmtxt_job предоставлена для единообразия, но в настоящее время не поддерживается API Firecrawl.

Примечание: для использования этих функций необходимо установить переменную окружения FIRECRAWL_API_KEY.

Установка и настройка

Это руководство содержит пошаговые инструкции по установке и настройке сервера UNS_MCP с использованием Python 3.12 и инструмента uv.

Предварительные требования

  • Python 3.12+
  • uv для управления окружением
  • Ключ API от Unstructured. Вы можете зарегистрироваться и получить ключ API здесь.

Использование uv (рекомендуется)

При использовании uvx дополнительная установка не требуется, так как он сам управляет выполнением. Однако, если вы предпочитаете установить пакет напрямую:

uv pip install uns_mcp

Настройка Claude Desktop

Для интеграции с Claude Desktop добавьте следующее содержимое в ваш claude_desktop_config.json:

Примечание: Файл находится в директории ~/Library/Application Support/Claude/.

Использование команды uvx:

{
   "mcpServers": {
      "UNS_MCP": {
         "command": "uvx",
         "args": ["uns_mcp"],
         "env": {
           "UNSTRUCTURED_API_KEY": "<your-key>"
         }
      }
   }
}

Или с использованием пакета Python:

{
   "mcpServers": {
      "UNS_MCP": {
         "command": "python",
         "args": ["-m", "uns_mcp"],
         "env": {
           "UNSTRUCTURED_API_KEY": "<your-key>"
         }
      }
   }
}

Использование исходного кода

  1. Клонируйте репозиторий.

  2. Установите зависимости:

    uv sync
    
  3. Установите ключ API Unstructured как переменную окружения. Создайте файл .env в корневой директории со следующим содержимым:

    UNSTRUCTURED_API_KEY="YOUR_KEY"
    

    Обратитесь к .env.template для настраиваемых переменных окружения.

Теперь вы можете запустить сервер одним из следующих способов:

Установка редактируемого пакета Установите как редактируемый пакет:
uvx pip install -e .

Обновите конфигурацию Claude Desktop:

{
  "mcpServers": {
    "UNS_MCP": {
      "command": "uvx",
      "args": ["uns_mcp"]
    }
  }
}

Примечание: Не забудьте указать путь к исполняемому файлу uvx в окружении, где вы установили пакет

Использование протокола SSE-сервера

Примечание: Не поддерживается Claude Desktop.

Для протокола SSE вы можете упростить отладку, разделив клиент и сервер:

  1. Запустите сервер в одном терминале:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. Протестируйте сервер с помощью локального клиента в другом терминале:

    uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
    # or
    make sse-client
    

Примечание: Чтобы остановить службы, используйте Ctrl+C сначала на клиенте, затем на сервере.

Использование протокола Stdio-сервера

Настройте Claude Desktop для использования stdio:

{
  "mcpServers": {
    "UNS_MCP": {
      "command": "ABSOLUTE/PATH/TO/.local/bin/uv",
      "args": [
        "--directory",
        "ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp",
        "run",
        "server.py"
      ]
    }
  }
}

Или запустите локального клиента:

uv run python minimal_client/client.py uns_mcp/server.py

Дополнительная настройка локального клиента

Настройте минимальный клиент с помощью переменных окружения:

  • LOG_LEVEL="ERROR": Установите для подавления отладочных выводов от LLM, отображая понятные сообщения для пользователей.
  • CONFIRM_TOOL_USE='false': Отключите подтверждение использования инструментов перед выполнением. Используйте с осторожностью, особенно во время разработки, так как LLM может выполнять дорогостоящие рабочие процессы или удалять данные.

Инструменты отладки

Anthropic предоставляет инструмент MCP Inspector для отладки/тестирования вашего MCP-сервера. Выполните следующую команду, чтобы запустить интерфейс отладки. Оттуда вы сможете добавить переменные окружения (указывающие на ваше локальное окружение) на левой панели. Укажите там ваш личный ключ API как переменную окружения. Перейдите в tools, чтобы протестировать возможности, которые вы добавляете на MCP-сервер.

mcp dev uns_mcp/server.py

Если вам нужно регистрировать параметры вызовов запросов в UnstructuredClient, установите переменную окружения DEBUG_API_REQUESTS=false. Логи сохраняются в файле с форматом unstructured-client-{date}.log, который можно изучить для отладки параметров вызовов запросов к функциям UnstructuredClient.

Добавление доступа к терминалу для минимального клиента

Мы собираемся использовать @wonderwhy-er/desktop-commander, чтобы добавить доступ к терминалу для минимального клиента. Он построен на основе MCP Filesystem Server. Будьте осторожны, так как клиент (а также LLM) теперь имеет доступ к личным файлам.

Выполните следующую команду для установки пакета:

npx @wonderwhy-er/desktop-commander setup

Затем запустите клиент с дополнительным параметром:

uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"
# or
make sse-client-terminal

Использование подмножества инструментов

Если ваш клиент поддерживает использование только подмножества инструментов, вот список того, о чем следует знать:

  • Инструмент update_workflow должен быть загружен в контекст вместе с инструментом create_workflow, так как он содержит подробное описание того, как создать и настроить пользовательский узел.

Известные проблемы

  • update_workflow - необходимо иметь в контексте конфигурацию рабочего процесса, который он обновляет, либо предоставленную пользователем, либо полученную вызовом инструмента get_workflow_info, так как этот инструмент не работает как patch-применитель, он полностью заменяет конфигурацию рабочего процесса.

CHANGELOG.md

Любые новые разработанные функции/исправления/улучшения будут добавляться в CHANGELOG.md. Формат предварительного выпуска 0.x.x-dev предпочтителен до перехода к стабильной версии.

Устранение неполадок

  • Если вы столкнулись с проблемами с Error: spawn <command> ENOENT, это означает, что <command> не установлен или не виден в вашем PATH:
    • Убедитесь, что он установлен и добавлен в ваш PATH.
    • или укажите абсолютный путь к команде в поле command вашей конфигурации. Так, например, замените python на /opt/miniconda3/bin/python