Bevestiging
Elke schrijfactie behalve approve_transactions en import_transactions gaat door één functie, confirm.ask,
voordat ze iets wijzigt. Deze pagina beschrijft precies wat die doet.
Wat er wordt bevestigd
Section titled “Wat er wordt bevestigd”Elke tool bouwt een object: de exacte wijziging, als gegevens.
| Tool | Object |
|---|---|
apply_categories |
de lijst met wijzigingen (transactie, categorie erna) |
set_category_budget |
categorie, maand (omgezet), bedrag in milliunits |
move_money |
beide categorieën, maand (omgezet), verschoven bedrag in milliunits |
flag_transactions |
de vlaggen (transactie, kleur erna) |
set_category_target |
categorie, de verzonden doelvelden (bedrag in milliunits, datum of frequentie) |
update_category |
categorie, naam erna, groep erna |
create_category |
groep, naam |
create_transactions |
rekening, de transacties, approved |
reconcile_account |
rekening, banksaldo, te corrigeren verschil |
split_transaction |
transactie, de regels (bedrag, categorie, omschrijving) |
undo_operation |
het id van de operatie |
De vingerafdruk is de SHA-256 van de JSON [plan_id, subject], met gesorteerde
sleutels; bij een lijst met wijzigingen doet de volgorde van de elementen er niet toe. Een
antwoord of een code bevestigt alleen het object waarvan het de vingerafdruk draagt.
Drie manieren om te vragen
Section titled “Drie manieren om te vragen”ask kijkt wat de client bij het verbinden heeft gemeld en kiest er één:
1. De client ondersteunt elicitation, protocol 2026-07-28
Section titled “1. De client ondersteunt elicitation, protocol 2026-07-28”In het huidige MCP-protocol kan een server de client tijdens een aanroep geen eigen verzoek sturen. avenir-mcp gebruikt de round trip input required:
- De eerste aanroep geeft in plaats van het antwoord van de tool een
InputRequiredResultterug. Dat bevat één verzoek,confirm, een formulier met één booleaans veldvalue, waarvan de melding het voorbeeld is (tot 20 wijzigingen, dan „… and N more“), en eenrequest_state: de vingerafdruk. - De client toont het formulier. De gebruiker vinkt aan, of weigert.
- De client roept de tool opnieuw aan met dezelfde argumenten, het antwoord in
input_responsesen de ontvangenrequest_state. FastMCP verzegelt die toestand onderweg en weigert manipulatie. - avenir-mcp berekent het plan en zijn vingerafdruk opnieuw. Verschillen ze van
request_state– iemand heeft het plan intussen gewijzigd – dan faalt de aanroep met „The plan changed between the preview and the answer“ en wordt er niets geschreven.
2. De client ondersteunt elicitation, ouder protocol
Section titled “2. De client ondersteunt elicitation, ouder protocol”De server vraagt het tijdens de aanroep (ctx.elicit) met hetzelfde ja/nee-formulier, en
wacht op het antwoord.
3. De client ondersteunt geen elicitation
Section titled “3. De client ondersteunt geen elicitation”De eerste aanroep geeft status: "confirmation_required", het voorbeeld en een
bevestigingscode terug. De agent laat de gebruiker het voorbeeld zien en roept, alleen
als die akkoord gaat, opnieuw aan met dezelfde argumenten plus confirmation.
Hoe antwoorden worden gelezen
Section titled “Hoe antwoorden worden gelezen”| Antwoord | Resultaat |
|---|---|
| formulier geaccepteerd, vakje aangevinkt | applied |
| formulier geaccepteerd, vakje niet aangevinkt | declined |
decline |
declined – niets geschreven |
cancel (weggeklikt, of een client die het niet kan tonen) |
terugval op een bevestigingscode |
Wegklikken is geen weigering: clients zonder interface klikken elke vraag weg, en dat als nee behandelen zou elke schrijfactie onmogelijk maken – het defect dat de evaluatie van avenir-mcp bij haar eerste run vond.
Bevestigingscodes
Section titled “Bevestigingscodes”| Eigenschap | Waarde |
|---|---|
| Formaat | 11 URL-veilige tekens (secrets.token_urlsafe(8)) |
| Levensduur | 600 seconden, op een monotone klok |
| Gebruik | één keer: een code is bij het eerste gebruik verbruikt, ook als hij niet klopt |
| Bereik | de vingerafdruk van één object in één plan |
| Opslag | alleen het geheugen van de server: een herstart vergeet elke code |
Een code die onbekend, verlopen of al gebruikt is, of voor andere wijzigingen is uitgegeven, wordt geweigerd met: „This confirmation code is unknown, expired, already used, or was issued for different changes. Call again without confirmation to get a new preview.“
Het eigen antwoord van de gebruiker eisen
Section titled “Het eigen antwoord van de gebruiker eisen”Een bevestigingscode bewijst dat er een voorbeeld bestond, niet dat jij het hebt gelezen.
Met AVENIR_MCP_REQUIRE_ELICITATION=1:
| Situatie | Zonder de variabele | Met de variabele |
|---|---|---|
| de client kan het vragen, je zegt ja | applied |
applied |
| vraag weggeklikt | een bevestigingscode | declined |
| de client kan het niet vragen | een bevestigingscode | fout: er is niets gewijzigd |
er wordt een code confirmation doorgegeven |
gecontroleerd, dan toegepast | fout: codes zijn uitgeschakeld |
Alleen clients die MCP-elicitation ondersteunen, kunnen dan schrijven.
Wat de gebruiker ziet
Section titled “Wat de gebruiker ziet”De vragen komen van de server en zijn in het Engels:
| Tool | Vraag |
|---|---|
apply_categories |
Recategorise 2 transaction(s)?, dan één regel per wijziging: datum, begunstigde, bedrag, ervoor → erna |
set_category_budget |
Budget Restaurants for 2026-09-01: 120.00 → 150.00? |
move_money |
Move 30.00 from Tennis to Restaurants for 2026-09-01?, dan één regel per categorie, ervoor → erna |
flag_transactions |
Change the flag of 2 transaction(s)?, dan één regel per transactie: datum, begunstigde, bedrag, kleur ervoor → erna |
set_category_target |
Set the target of Vakantie: no target → 1200.00 by 2027-06-01?, en een waarschuwing als ongedaan maken het vorige doel niet kan terugzetten |
update_category |
Change category ‘Tennis’ (Vrije tijd) to ‘Sport’ (Vrije tijd)? |
create_category |
Create category ‘Huisdieren’ in Dagelijks? |
create_transactions |
Create 1 transaction(s) on Betaalrekening?, dan één regel per transactie |
split_transaction |
Split 2026-09-12 Market 86.40 into 2 lines?, dan één regel per categorie, en een waarschuwing dat alleen YNAB het ongedaan kan maken |
reconcile_account |
Reconcile Betaalrekening: mark 49 cleared transaction(s) reconciled? |
undo_operation |
Undo: recategorise 2 transaction(s)?, of het soort ongedaanmaking |
Onofficieel project. “We are not affiliated, associated, or in any way officially connected with YNAB or any of its subsidiaries or affiliates. The official YNAB website can be found at https://www.ynab.com. The names YNAB and You Need A Budget, as well as related names, tradenames, marks, trademarks, emblems, and images are registered trademarks of YNAB.” We zijn op geen enkele manier verbonden, geassocieerd of officieel gelieerd aan YNAB of een van zijn dochterondernemingen of gelieerde bedrijven. De officiële website van YNAB vind je op https://www.ynab.com. De namen YNAB en You Need A Budget, evenals verwante namen, handelsnamen, merken, emblemen en afbeeldingen, zijn geregistreerde handelsmerken van YNAB. avenir-mcp wordt geleverd zoals het is, zonder garantie, en is geen financieel advies. Juridische informatie · Privacy