Aller au contenu

Catalogue des outils NextPDF Connect

Le nombre d’outils exposés par un déploiement NextPDF Connect n’est pas une constante fixe. Le serveur le calcule à l’exécution à partir des packages installés, de la liste d’autorisation de la configuration et d’un ensemble de gates d’environnement. Cette page documente l’ensemble de base vérifié et la méthode qui détermine le total.

Fenêtre de terminal
composer require nextpdf/server

NextPDF\Server\ToolRegistry construit le catalogue au démarrage dans cet ordre :

  1. Niveau de base. Un ensemble fixe d’outils de base est enregistré sans condition. Deux outils supplémentaires ne sont enregistrés que lorsqu’une condition préalable est remplie.
  2. Niveau Pro. Les outils Pro sont enregistrés lorsque la classe du fournisseur Pro peut être résolue, ce qui se produit lorsque nextpdf/premium est installé. Le serveur ignore cette étape sans erreur lorsque la classe ne peut pas être résolue.
  3. Niveau Enterprise. Le fournisseur Enterprise suit le même modèle que le fournisseur Pro.
  4. Niveaux étendus fournis avec le package. Les fournisseurs d’outils AST et de mutation sont livrés avec le package du serveur et sont enregistrés sous le niveau Pro. Une gate d’environnement contrôle chaque fournisseur, et chaque fournisseur se dégrade proprement lorsque la prise en charge sous-jacente dont il dépend est absente.
  5. Filtre de politique de sécurité. Le serveur croise chaque enregistrement avec la liste d’autorisation enabled_tools. Une liste d’autorisation non vide écarte tout outil qui n’y figure pas. Le compteur de niveau ne compte que les outils admis par la politique.

La réponse MCP initialize renvoie le tool_count résultant et les comptes par niveau pour le serveur en cours d’exécution. Cette valeur est le nombre faisant autorité. Considère comme obsolète tout total fixe mentionné dans le texte.

Ces douze outils sont enregistrés sans condition dans le niveau de base. Le serveur lit chaque niveau de risque et chaque indication de comportement MCP à partir de l’implémentation de l’outil.

Nom de l’outilCatégorieDescriptionRisque
create_pdfdocumentCrée un nouveau document PDF et renvoie un document_idcaution
add_textdocumentAjoute du contenu textuel à un document PDFcaution
add_imagedocumentAjoute une image à partir d’un chemin de fichier ou de données base64caution
add_tabledocumentAjoute un tableau HTML à un document PDFcaution
set_fontdocumentDéfinit la police pour les opérations de texte suivantescaution
add_pagedocumentAjoute une nouvelle page au document PDFcaution
output_pdfdocumentFinalise le PDF dans un fichier ou en base64approval_required
preview_layoutdocumentRésumé JSON de la mise en page sans rendusafe
diagnostic.doctordiagnosticLance un diagnostic de santé ; diagnostics d’environnement structuréssafe
diagnostic.capabilitiesdiagnosticListe les capacités avec leur niveau et leur statutsafe
diagnostic.inspectdiagnosticInspecte un PDF et renvoie ses métadonnées structurellessafe
diagnostic.verifydiagnosticVérifie l’intégrité du PDF ; contrôle PDF/A ou PDF/UA en optioncaution
Nom de l’outilCondition
generate_barcodeEst enregistré lorsque le registre d’encodeurs de codes-barres de base est présent dans l’installation de nextpdf/core
parse_pdfEst enregistré uniquement lorsque NEXTPDF_MCP_TOOL_PARSE_PDF_ENABLED vaut true ou 1

output_pdf est le seul outil de base dont le niveau de risque est approval_required. L’écriture d’un fichier passe par la gate de validation humaine ; le mode de sortie base64, non. Voir /connect/hitl-risk-tiers/.

Outils ajoutés uniquement lorsque des packages supplémentaires sont installés

Section intitulée « Outils ajoutés uniquement lorsque des packages supplémentaires sont installés »

Le serveur sonde les classes de fournisseur avec class_exists() :

  • Les outils Pro sont enregistrés lorsque nextpdf/premium est installé et que le fournisseur Pro peut être résolu.
  • Les outils Enterprise sont enregistrés lorsque nextpdf/premium est installé et que le fournisseur Enterprise peut être résolu. Les outils de confidentialité (caviardage, dépersonnalisation, caviardage par zone) encapsulent des classes Enterprise. Ils sont enregistrés sous le niveau Enterprise uniquement lorsque ces classes sont chargeables par l’autoloader.
  • Les outils AST et de mutation sont livrés avec le serveur et sont enregistrés sous le niveau Pro. Les gates NEXTPDF_AST_TOOLS_ENABLED et NEXTPDF_MUTATION_TOOLS_ENABLED les contrôlent, et les deux gates sont activées par défaut.

C’est le package Premium qui définit les inventaires exacts d’outils Pro et Enterprise, pas le serveur, et il les documente avec ce package. Le contrat du serveur porte sur le mécanisme d’enregistrement, pas sur une liste Premium fixe.

Affiche les outils exposés par cette installation, sans démarrer de serveur :

Fenêtre de terminal
./vendor/bin/generate-skills --dry-run --list-tools

Interroge le serveur en cours d’exécution pour obtenir le compte faisant autorité via MCP :

Fenêtre de terminal
./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

Dans le résultat initialize, le serveur calcule le capabilities.nextpdf.tool_count et les tiers du processus en cours d’exécution. En REST, GET /api/v1/capabilities renvoie l’introspection équivalente.

  • Il n’existe pas de total fixe, pas même « 33 outils ». D’anciens documents citent un nombre unique, mais ce n’est pas un contrat. Le compte évolue avec les packages installés, la liste d’autorisation enabled_tools et les gates d’environnement parse_pdf, AST et de mutation. Lis-le toujours depuis le serveur en cours d’exécution.

  • La liste d’autorisation retranche, elle n’ajoute jamais. Lister un outil Pro dans enabled_tools alors que nextpdf/premium est absent ne l’enregistre pas.

  • Un niveau absent est silencieux et attendu. Une installation strictement open source sert l’ensemble de base et rapporte zéro outil Pro et zéro outil Enterprise. Ce résultat est un fonctionnement correct, pas une panne.

  • Le niveau indiqué dans le catalogue est un invariant déclaré. Chaque outil déclare son propre niveau et son risque dans le code. Le registre ne déduit jamais un niveau à partir de l’espace de noms ou de l’empaquetage.

L’analyse du registre et la détection de niveau s’exécutent une seule fois au démarrage. Le champ performance_budget de cette page les borne. Le coût par outil correspond à l’opération sous-jacente du moteur, pas à la recherche dans le catalogue, qui est en O(1) par nom d’outil.

Utilise enabled_tools comme contrôle de moindre privilège : n’expose que les outils dont une intégration a besoin. Le catalogue n’inclut jamais un outil que la politique de sécurité a rejeté, et le compteur de niveau ne reflète que les outils admis. Les outils à haut risque restent contrôlés par confirmation humaine, indépendamment de leur appartenance au catalogue. Voir /connect/security-and-operations/.

Cette page décrit le mécanisme du registre. Les citations de protocole pour les surfaces tools/list et initialize sont indiquées dans /transports/mcp/. Le modèle de risque est défini dans /connect/hitl-risk-tiers/.

Le catalogue de base couvre la création, l’inspection et les diagnostics. Les outils de signature, de caviardage, de conformité et d’investigation n’apparaissent que lorsque nextpdf/premium est installé aux côtés du serveur. C’est une frontière d’empaquetage, appliquée au moment du composer require, jamais une invite à l’exécution.

  • /connect/hitl-risk-tiers/ — la signification de la colonne risque et son mode d’application
  • /connect/boot-and-discovery/ — la séquence complète de démarrage et de découverte
  • /connect/configuration/ — enabled_tools et les gates d’environnement
  • /transports/mcp/ — tools/list et initialize au format filaire
  • /connect/overview/ — pourquoi le catalogue dépend de l’exécution par conception