Перейти к содержимому

Каталог инструментов NextPDF Connect

NextPDF Connect не предоставляет фиксированное число инструментов. Сервер вычисляет это число во время выполнения на основе установленных пакетов, списка разрешённых инструментов в конфигурации и переменных окружения, управляющих доступом. На этой странице описаны проверенный основной набор и механизм, по которому определяется итоговое число.

Окно терминала
composer require nextpdf/server

NextPDF\Server\ToolRegistry строит каталог при загрузке в следующем порядке:

  1. Основной уровень. Фиксированный набор основных инструментов регистрируется безусловно. Ещё два инструмента регистрируются только при соблюдении предварительного условия.
  2. Уровень Pro. Инструменты Pro регистрируются, когда класс провайдера Pro разрешается, что происходит при установленном nextpdf/premium. Если класс не разрешается, сервер молча пропускает этот шаг.
  3. Уровень Enterprise. Провайдер Enterprise следует той же схеме, что и провайдер Pro.
  4. Встроенные расширенные уровни. Провайдеры инструментов AST и мутаций поставляются в составе пакета сервера и регистрируются на уровне Pro. У каждого провайдера есть своя переменная окружения, и каждый провайдер корректно деградирует, когда базовая поддержка в ядре отсутствует.
  5. Фильтр политики безопасности. Сервер сверяет каждую регистрацию со списком разрешённых enabled_tools. Непустой список разрешённых отбрасывает любой инструмент, которого в нём нет. Счётчик уровня учитывает только инструменты, допущенные политикой.

Ответ initialize протокола Model Context Protocol (MCP) сообщает итоговое tool_count и число инструментов по уровням для запущенного сервера. Это значение авторитетно. Любое фиксированное итоговое число в тексте считайте устаревшим.

Проверенные всегда доступные основные инструменты

Заголовок раздела «Проверенные всегда доступные основные инструменты»

Эти двенадцать инструментов всегда регистрируются на основном уровне. Сервер считывает уровень риска и поведенческую подсказку MCP каждого инструмента из его реализации.

Имя инструментаКатегорияОписаниеРиск
create_pdfдокументСоздаёт PDF-документ и возвращает document_idcaution
add_textдокументДобавляет текстовое содержимое в PDF-документcaution
add_imageдокументДобавляет изображение из пути к файлу или данных в base64caution
add_tableдокументДобавляет HTML-таблицу в PDF-документcaution
set_fontдокументЗадаёт шрифт для последующих операций с текстомcaution
add_pageдокументДобавляет новую страницу в PDF-документcaution
output_pdfдокументЗавершает формирование PDF как файла или base64approval_required
preview_layoutдокументВозвращает сводку макета в формате JSON без отрисовкиsafe
diagnostic.doctorдиагностикаВыполняет проверку работоспособности и структурированную диагностику окруженияsafe
diagnostic.capabilitiesдиагностикаПеречисляет возможности с указанием уровня и статусаsafe
diagnostic.inspectдиагностикаАнализирует PDF и возвращает структурные метаданныеsafe
diagnostic.verifyдиагностикаПроверяет целостность PDF и дополнительно проверяет PDF/A или PDF/UAcaution

Условно регистрируемые основные инструменты

Заголовок раздела «Условно регистрируемые основные инструменты»
Имя инструментаУсловие
generate_barcodeРегистрируется, если установленный nextpdf/core включает реестр кодировщиков штрихкодов ядра
parse_pdfРегистрируется, только когда NEXTPDF_MCP_TOOL_PARSE_PDF_ENABLED равно true или 1

output_pdf — единственный инструмент основного уровня с уровнем риска approval_required. Запись файла проходит через контрольную точку с участием человека; вывод в base64 — нет. См. /connect/hitl-risk-tiers/.

Инструменты, добавляемые только при установке дополнительных пакетов

Заголовок раздела «Инструменты, добавляемые только при установке дополнительных пакетов»

Сервер проверяет классы провайдеров с помощью class_exists():

  • Инструменты Pro регистрируются, если установлен nextpdf/premium и разрешается провайдер Pro.
  • Инструменты Enterprise регистрируются, если установлен nextpdf/premium и разрешается провайдер Enterprise. Инструменты конфиденциальности (редактирование, обезличивание, зональное редактирование) — это обёртки над классами Enterprise. Они регистрируются на уровне Enterprise только тогда, когда эти классы доступны для автозагрузки.
  • Инструменты AST и мутаций поставляются вместе с сервером и регистрируются на уровне Pro. Ими управляют переменные окружения NEXTPDF_AST_TOOLS_ENABLED и NEXTPDF_MUTATION_TOOLS_ENABLED, и обе по умолчанию включены.

Точные перечни инструментов Pro и Enterprise определяет пакет Premium, а не сервер; они документируются вместе с этим пакетом. Контракт сервера — это механизм регистрации, а не фиксированный список Premium.

Выведите инструменты, которые предоставляет эта установка, не запуская сервер:

Окно терминала
./vendor/bin/generate-skills --dry-run --list-tools

Запросите у запущенного сервера достоверное число через MCP:

Окно терминала
./vendor/bin/nextpdf-mcp <<'EOF'
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"c","version":"1.0.0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
EOF

Сервер вычисляет capabilities.nextpdf.tool_count и tiers в ответе initialize для запущенного процесса. В REST-запросе GET /api/v1/capabilities возвращается эквивалентная интроспекция.

  • Нет фиксированных “33 инструментов”, как и любого другого фиксированного итога. В старых материалах приводится одно число, но это число не является контрактом. Число меняется в зависимости от установленных пакетов, списка разрешённых enabled_tools и переменных окружения parse_pdf, AST и мутаций. Всегда считывайте его с запущенного сервера.

  • Список разрешённых инструментов только исключает, но никогда не добавляет. Указание инструмента Pro в enabled_tools не зарегистрирует его, если nextpdf/premium отсутствует.

  • Отсутствующий уровень — ожидаемое поведение без ошибки. Установка только из пакетов с открытым исходным кодом обслуживает основной набор и сообщает о нуле инструментов Pro и нуле инструментов Enterprise. Такой результат — это корректная работа, а не сбой.

  • Уровень в каталоге — это объявленный инвариант. Каждый инструмент объявляет собственный уровень и риск в коде. Реестр никогда не выводит уровень из пространства имён или пакета.

Сканирование реестра и определение уровней выполняются один раз при загрузке. Их ограничивает параметр страницы performance_budget. Стоимость вызова инструмента зависит от операции базового движка, а не от поиска в каталоге, который выполняется за O(1) по имени инструмента.

Используйте enabled_tools для реализации принципа минимальных привилегий: предоставляйте только те инструменты, которые нужны интеграции. Каталог никогда не включает инструмент, отклонённый политикой безопасности, а счётчик уровня отражает только допущенные инструменты. Инструменты высокого риска остаются под защитой подтверждения человеком независимо от того, входят ли они в каталог. См. /connect/security-and-operations/.

На этой странице описан механизм работы реестра. Ссылки на протокол для интерфейсов tools/list и initialize приведены на /transports/mcp/. Модель рисков описана на /connect/hitl-risk-tiers/.

Основной каталог охватывает создание, анализ и диагностику. Инструменты подписания, редактирования, обеспечения соответствия и форензики появляются только тогда, когда nextpdf/premium установлен вместе с сервером. Эта граница комплектации применяется на этапе composer require, а не через запрос во время выполнения.

  • /connect/hitl-risk-tiers/ — что означает столбец риска и как применяется политика
  • /connect/boot-and-discovery/ — полная последовательность загрузки и обнаружения
  • /connect/configuration/ — enabled_tools и переменные окружения
  • /transports/mcp/ — tools/list и initialize в формате транспорта
  • /connect/overview/ — почему каталог по замыслу зависит от времени выполнения