Every organization runs on documents — and on the brittle scripts that move them between formats. Word reports become PDFs, spreadsheets become CSVs, scans become searchable files. Each new format or rule means rewriting a pipeline. There’s a more flexible way: let an AI agent do the conversions, on your own infrastructure, using the tools you give it. This article shows how to build exactly that with n8n, the Model Context Protocol (MCP), and the GroupDocs.Conversion MCP server — keeping your documents (and optionally your AI model) entirely on‑premise.

От жёстко заданных конвейеров к агентной автоматизации

Традиционная автоматизация кодирует как выполняется задача: определить тип файла, ветвиться, вызвать конвертер, обработать ошибки, записать результат. Каждое новое требование требует изменения кода.

Агентный рабочий процесс кодирует что вам нужно. Вы формулируете цель — «конвертировать эти отчёты в PDF, но сначала проверить количество страниц» — и предоставляете набор инструментов. AI‑агент решает, какие инструменты вызвать и в каком порядке, и адаптируется к результату. Добавляете инструмент — агент сразу может им пользоваться, без переписывания. Эта адаптивность и есть смысл.

Что такое MCP и почему это важно здесь

Трудная часть агентных систем, использующих инструменты, всегда была интеграция — каждый агент общался с каждым инструментом по‑разному. Model Context Protocol — открытый, нейтральный к поставщикам стандарт, который решает эту проблему: любой агент, поддерживающий MCP, может обнаружить и вызвать любые возможности MCP‑сервера. Можно сравнить с «USB‑C для AI‑инструментов».

GroupDocs публикует операции с документами как MCP‑серверы. GroupDocs.Conversion сервер предоставляет три инструмента, которые может вызвать агент:

Инструмент Что делает
convert Конвертировать документ в другой формат (PDF, DOCX, XLSX, PPTX, HTML, PNG, CSV… более 70 форматов)
get_document_info Просмотреть файл — тип, количество страниц, свойства — перед выполнением действия
get_supported_formats Узнать, какие конверсии возможны

Поскольку он использует MCP, вашему агенту не нужна кастомная интеграция с GroupDocs. Он просто видит инструменты.

Архитектура (весь стек открытый, берёте свою LLM)

Слой Компонент Роль
Оркестрация n8n (self‑hosted) триггеры, узел AI Agent, маршрутизация файлов
Рассуждение Ваша LLM, через узел Chat Model в n8n решает, какие инструменты вызвать — полностью заменяемый
Инструменты GroupDocs.Conversion MCP (stdio) за supergateway convert, get_document_info, get_supported_formats
Хранилище общий Docker‑том как файлы поступают и выходят

Ключевой выбор дизайна: LLM заменяемая. Узел Chat Model в n8n не привязан к провайдеру, поэтому агент и MCP‑инструменты не меняются, когда вы меняете модель. В примере ниже используется OpenAI, но тот же workflow работает с Azure OpenAI, Anthropic, AWS Bedrock — или полностью самохостовой моделью (Ollama, vLLM), когда требуется полностью изолированное развертывание, где документы и ИИ находятся внутри вашей сети.

Небольшая заметка по интеграции: Conversion MCP — это лёгкий stdio сервер (по умолчанию безопасный, без сетевых соединений). Поскольку n8n подключается к MCP‑инструментам по URL, небольшой открытый stdio‑to‑SSE мост (supergateway) выставляет его на порт. Сам сервер остаётся без изменений.

Как работает workflow

  1. Триггер — webhook, входящая почта, загрузка формы или наблюдаемый каталог получает документ.
  2. Этап — n8n записывает файл в общую папку, откуда читает MCP‑сервер.
  3. РешениеAI Agent в n8n (ваш Chat Model + Conversion MCP как инструмент) получает инструкцию вроде «Конвертировать report.docx в PDF и сообщить количество страниц». Он автономно вызывает get_document_info, затем convert.
  4. Доставка — n8n берёт сконвертированный файл из общего хранилища и направляет его дальше — по email, в объектное хранилище, SharePoint или в оригинальный ответ.

Агент выбирает инструменты и порядок их вызова. Именно это позволяет одному workflow обрабатывать «просто конвертировать», «конвертировать только если больше 10 страниц» или «конвертировать и суммировать».

Поднять за несколько минут

Минимальный стек — два сервиса, разделяющих один том: конвертер (за мостом) и n8n:

services:
  conversion-mcp:                    # GroupDocs.Conversion MCP, exposed over SSE
    build: ./bridge                  # supergateway --stdio "groupdocs-conversion-mcp" --port 8000
    environment:
      GROUPDOCS_MCP_STORAGE_PATH: /data
      GROUPDOCS_LICENSE_PATH: /license/GroupDocs.Total.lic
    volumes: [ ./data:/data, ./gd-license:/license:ro ]
  n8n:
    image: n8nio/n8n:latest
    ports: ["5678:5678"]
    volumes: [ ./data:/data ]        # SAME folder — the file hand‑off

Затем в n8n собираете агент из четырёх узлов: Chat Trigger, Chat Model (ваши учётные данные OpenAI), инструмент MCP Client, указывающий на http://conversion-mcp:8000/sse, и AI Agent, который их соединяет. Скопируйте файл в ./data, откройте чат и попросите агента его конвертировать.

Полный, готовый к запуску набор — docker-compose.yml, образ моста и импортируемый workflow n8n — находится в сопутствующем открытом репозитории (см. ниже).

Лицензирование

Без лицензии GroupDocs.Conversion работает в режиме оценки: вывод содержит водяной знак и может быть ограничен. Для продакшна разместите файл GroupDocs.Total.lic в смонтированной папке лицензий — вывод станет чистым и неограниченным. Вы можете запросить временную лицензию, чтобы опробовать лицензированный вывод.

Почему это подходит для предприятия

  • Суверенитет данных — документы и движок конвертации остаются в вашей инфраструктуре. Выбираете самохостовую модель, и ИИ тоже остаётся внутри.
  • Отсутствие привязки — каждый слой открыт или основан на стандартах (MCP). Свободно меняете LLM, оркестратор или инструменты.
  • Аудитируемость — каждое решение агента и каждый вызов инструмента фиксируются как воспроизводимый запуск n8n.
  • Композиционность — это нарастающий эффект. Направляете тот же агент к другим MCP‑серверам GroupDocs — Redaction, Watermark, Metadata — и одна естественно‑языковая команда превращается в полноценный конвейер: *«замести персональные данные, конвертировать