DML folgt einem strengeren Pfad als die Ausführung von Abfragen, weil die Freigabe zum Zeitpunkt des Commits weiterhin genau dieselbe Datenänderung beschreiben muss.
UPDATE und DELETE
- Datenänderung kompilieren
Die angeforderte Änderung parsen, validieren, autorisieren und kompilieren, bevor eine Freigabe angefordert wird.
- Betroffene Zeilenmenge vorab prüfen
Eine Vorschau-Transaktion öffnen und die aktuell passenden Zeilen lesen, ohne die Datenänderung auszuführen.
- Einmaligen Freigabenachweis erzeugen
Den Freigabenachweis an den validierten kompilierten Plan, die Richtlinienversion, die Anzahl betroffener Zeilen und den Fingerabdruck der Zeilenmenge binden.
- Menschliche Freigabe über MCP Elicitation anfordern
elicitation/createsenden und eine ausdrückliche Formularfreigabe durch den MCP-Client verlangen. - Freigabenachweis verbrauchen
Nach der Annahme den einmaligen Freigabenachweis validieren und verbrauchen, damit er nicht als allgemeines Zugriffstoken wiederverwendet werden kann.
- In der Commit-Transaktion erneut abfragen
Die Zielzeilen erneut lesen und aktuellen Fingerabdruck sowie Zeilenanzahl mit der freigegebenen Vorschau vergleichen.
- Nur bei unverändertem Zustand per Commit übernehmen
Die kompilierte Datenänderung nur dann ausführen, wenn Plan, Richtlinie, Freigabenachweis, Zeilenanzahl und Zeilenmenge unverändert sind.
INSERT VALUES
Eine Anweisung INSERT ... VALUES besitzt keine bereits vorhandene Zielzeilenmenge. Deshalb bindet das Freigabeprotokoll das unveränderliche Insert-Payload und den exakten kompilierten Plan statt einer Vorschau vorhandener Zeilen.
Elicitation ist erforderlich
execute_dml_sql und veröffentlichte DML Custom Tools setzen Elicitation per Formular (form Elicitation) im MCP-Client voraus. Ein Client, der diesen Freigabeprozess nicht ausführen kann, kann diese Änderungspfade nicht verwenden.
Dies unterscheidet sich bewusst von einem reinen Bestätigungsdialog in der Benutzeroberfläche: Der Freigabenachweis ist Teil des serverseitigen Änderungsprotokolls und wird vor der Ausführung erneut geprüft.