DML suit un chemin plus strict que l’exécution d’une requête : au moment de valider la transaction, l’approbation doit toujours décrire exactement la même modification.
UPDATE et DELETE
- Compiler la modification
Analyser, valider, autoriser et compiler la modification demandée avant de solliciter une approbation.
- Prévisualiser les lignes concernées
Ouvrir une transaction de prévisualisation et lire les lignes qui correspondent actuellement aux critères, sans exécuter la modification.
- Créer une preuve d’approbation à usage unique
Lier le défi au plan compilé validé, à la version de politique, au nombre de lignes concernées et à l’empreinte de l’ensemble de lignes.
- Demander l’approbation d’une personne via MCP Elicitation
Envoyer
elicitation/createet exiger une approbation explicite sous forme de formulaire de la part du client MCP. - Consommer le défi approuvé
Après acceptation, valider puis consommer le défi à usage unique afin qu’il ne puisse pas être rejoué comme un jeton d’autorisation générique.
- Relire les lignes dans la transaction finale
Relire les lignes ciblées et comparer leur empreinte et leur nombre actuels avec la prévisualisation approuvée.
- Valider uniquement si tout correspond encore
Exécuter la modification compilée uniquement si le plan, la politique, le défi, le nombre de lignes et l’ensemble de lignes sont inchangés.
INSERT VALUES
Une instruction INSERT ... VALUES ne cible aucun ensemble de lignes préexistant. Le protocole d’approbation lie donc la charge utile d’insertion immuable et le plan compilé exact, plutôt qu’une prévisualisation de lignes existantes.
Elicitation est obligatoire
execute_dml_sql et les DML Custom Tools publiés exigent que le client MCP prenne en charge l’Elicitation par formulaire (form Elicitation). Un client incapable d’effectuer ce parcours d’approbation ne peut pas utiliser ces chemins de modification.
Ce mécanisme est volontairement différent d’une simple boîte de dialogue côté interface : le défi d’approbation fait partie du protocole serveur et est revérifié avant l’exécution.