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, смотрите здесь, а список назначений — здесь. Мы планируем добавить больше!
| Источник | Назначение |
|---|---|
| S3 | S3 |
| Azure | Weaviate |
| Google Drive | Pinecone |
| OneDrive | AstraDB |
| Salesforce | MongoDB |
| Sharepoint | Neo4j |
| 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:
- Получение HTML-контента: Использование
invoke_firecrawl_crawlhtmlдля запуска заданий краулинга иcheck_crawlhtml_statusдля их мониторинга - Генерация текста, оптимизированного для 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>"
}
}
}
}
Использование исходного кода
-
Клонируйте репозиторий.
-
Установите зависимости:
uv sync -
Установите ключ 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 вы можете упростить отладку, разделив клиент и сервер:
-
Запустите сервер в одном терминале:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server -
Протестируйте сервер с помощью локального клиента в другом терминале:
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