Avelto via een agent of de opdrachtregel
Stand 29 oktober 2026.
Avelto heeft een MCP-server op https://api.avelto.nl/mcp. Daarmee kan een agent zoals Claude Code, Claude Desktop of Claude op claude.ai namens jou je domeinen, DNS, hosting, mailboxen, databases en websites beheren, zonder dat je zelf in Mijn Avelto hoeft te klikken. Voor scripts en uitrollen is er daarnaast een opdrachtregelprogramma, de CLI, dat dezelfde server gebruikt.
Een paar uitgangspunten, die overal hieronder terugkomen:
- Inloggen gaat altijd via Mijn Avelto met de tweede stap. Er bestaat geen vaste sleutel die je in een configuratiebestand zet. De agent opent je browser, je logt in, bevestigt met je authenticator-app en kiest wat de agent mag.
- Een agent kan nooit meer dan jij. Hij werkt met de rechten die je op het toestemmingsscherm aanvinkt, binnen je eigen account, en elke handeling volgt dezelfde regels als in Mijn Avelto.
- Wat geld kost of niet terug te draaien is, gaat in twee stappen. Eerst een voorstel met een bevestigcode, pas daarna de uitvoering.
- Alles wordt vastgelegd in een logboek per handeling, met geheimen gemaskeerd.
Voordat je begint
- Je hebt een account in Mijn Avelto (avelto.nl/mijn) met minstens een lopend contract, zoals een domeinnaam, hosting of e-mail. Zonder contract heeft een agent in je account nog niets te doen.
- Tweestapsverificatie staat aan (Mijn Avelto, Account, Tweestapsverificatie). Zonder tweede stap kun je geen agent koppelen, ook niet met het juiste wachtwoord.
Onder Mijn Avelto, Account, Gekoppelde apps zie je of je aan beide voorwaarden voldoet, met het adres en de stappen hieronder.
Koppelen in Claude Code
Een regel in je terminal:
claude mcp add --transport http avelto https://api.avelto.nl/mcp
Wil je Avelto in al je projecten gebruiken en niet alleen in de huidige map, zet dan --scope user erachter.
Start daarna Claude Code en open /mcp. Bij avelto staat dat inloggen nodig is. Kies het, en je browser opent op avelto.nl: log in, bevestig met de tweede stap en vink de rechten aan die je wilt geven. Daarna stuurt de browser je terug en kan Claude aan de slag. Vraag bijvoorbeeld "welke domeinen heb ik bij Avelto?" of "zet een TXT-record voor de verificatie van Google op voorbeeld.nl".
De server levert ook een vaste opdracht mee: /mcp__avelto__beheer geeft een overzicht van je account en domeinen, en /mcp__avelto__beheer zet hosting op voorbeeld.nl voert een opdracht uit volgens de werkwijze van Avelto (voorstellen eerst laten zien, bevestigen alleen na jouw ja).
Koppelen in Claude Desktop of op claude.ai
Ga naar de instellingen, onderdeel Connectors, en voeg een eigen connector toe (Add custom connector):
- Naam: Avelto
- Adres: https://api.avelto.nl/mcp
Kies daarna Verbinden. Het inloggen verloopt zoals hierboven: browser, tweede stap, rechten kiezen. In een organisatieaccount van Claude kan het zijn dat alleen een beheerder van die organisatie een eigen connector mag toevoegen.
Veilig koppelen
- Inloggen doe je alleen op avelto.nl. Het koppelen begint altijd in je eigen app (Claude Code, Claude of de CLI), die daarna je browser opent. Een koppellink die je per mail, chat of bericht krijgt, komt nooit van Avelto: open hem niet.
- Een koppeling keert alleen terug naar je eigen computer of naar Claude. Avelto laat geen app toe die de toegang naar een ander adres op internet stuurt. Op het toestemmingsscherm staat waar de app naar terugkeert: "deze computer" of "claude.ai (Claude)". Staat er iets anders, druk dan op Weigeren.
- Met een gekoppelde app vraagt Mijn Avelto altijd de tweede stap, ook bij gewoon inloggen. Een app met het recht dns kan bepalen waar de mail van je domein heen gaat; een wachtwoord alleen is dan niet genoeg om in je account te komen.
- Je krijgt een mail bij elke nieuwe koppeling. Deed je dat niet zelf, trek de koppeling dan in en wijzig je wachtwoord.
De opdrachtregel (CLI)
De CLI is een enkel bestand en heeft alleen Python 3.10 of nieuwer nodig, zonder verdere installatie.
curl -O https://avelto.nl/downloads/avelto.py
python3 avelto.py login
Op Windows werkt python avelto.py login in PowerShell of de opdrachtprompt. Bij login opent je browser voor het inloggen; de CLI wacht op de terugkeer op een poort van je eigen computer (127.0.0.1). Kan er geen browser open, gebruik dan --geen-browser en open de getoonde link zelf.
Wat je ermee doet:
python3 avelto.py handelingen # alles wat deze koppeling kan
python3 avelto.py handelingen dns_record_toevoegen # uitleg en invoer van een handeling
python3 avelto.py domeinen
python3 avelto.py domein --domein voorbeeld.nl
python3 avelto.py dns_record_toevoegen --domein voorbeeld.nl --type TXT --naam @ --waarde verificatie=123
python3 avelto.py publiceer ./site --domein voorbeeld.nl
python3 avelto.py uitloggen
- Invoer geef je mee als
--sleutel waarde. De CLI zet de waarde om naar wat de handeling verwacht (een getal, ja of nee, een lijst met komma's). Ingewikkelder invoer gaat als JSON met--json '{...}', of uit een bestand met--json @invoer.json. publiceerpakt een map in als zip, met de rechten die een webserver verwacht (mappen 755, bestanden 644), en zet hem met de handelingsite_publicereninpublic_htmlvan het domein. Een andere doelmap kan met--doelmap. Bestanden met dezelfde naam worden overschreven; wat niet in de map staat, blijft op de server staan. Een publicatie mag ingepakt hooguit 15 MB zijn.--ruwvooraan geeft alle uitvoer als JSON, handig in scripts.--rechten lezen,dnsbijloginvraagt alleen die rechten aan.- Afsluitcodes: 0 gelukt, 1 fout, 3 wacht op een bevestiging (zie hieronder), 4 begrensd (later opnieuw proberen), 130 afgebroken. Bij een begrenzing probeert de CLI het bewust niet vanzelf opnieuw; hij zegt hoe lang je moet wachten. Laat een script dan ook echt wachten.
De sleutel staat in je gebruikersmap (op Windows %APPDATA%\Avelto\sleutel.json, anders ~/.config/avelto/sleutel.json) en is alleen voor jou leesbaar. Behandel dat bestand als een wachtwoord: wie het heeft, kan tot het verloopt doen wat de koppeling mag. De CLI ververst de sleutel zelf zolang de koppeling geldig is.
Wat de rechten betekenen
Op het toestemmingsscherm kies je per groep wat de agent mag. Een handeling vraagt altijd precies een van deze rechten.
| Recht | Wat de agent ermee kan | Standaard aangevinkt |
|---|---|---|
| lezen | je domeinen, hosting, mail en verbruik bekijken | ja |
| dns | DNS-records en nameservers wijzigen, en daarmee ook waar je website en mail naartoe gaan | ja |
| hosting | hosting aan een domein koppelen en SSL regelen | ja |
| mailboxen aanmaken en beheren | ja | |
| databases | databases aanmaken en verwijderen | ja |
| bestanden | bestanden uploaden en een website publiceren; wat de app publiceert, draait met alle rechten van je hostingaccount, ook bij mail en databases | nee, die vink je zelf aan |
| bestellen | een bestelling klaarzetten die jij zelf afrekent, ook een nieuwe domeinnaam of een verhuizing | ja |
| gevoelig | de verhuiscode opvragen, dingen verwijderen, nameservers naar elders zetten | nee, die vink je altijd zelf aan |
Probeert de agent een handeling waarvoor het recht ontbreekt, dan weigert de server met de melding welk recht er mist. Claude Code kan dan opnieuw inloggen met dat recht erbij; met de CLI doe je dat zelf met avelto login --rechten ..., en de CLI noemt daarbij precies de rechten die nodig zijn.
Toestemming, bevestigcodes en goedkeuringen
Toestemming van de agent. Elke handeling draagt de markering lezen, wijzigen of onomkeerbaar. Claude vraagt bij wijzigen en onomkeerbaar eerst jouw toestemming voordat hij de handeling uitvoert. Zet die vraag niet blind uit voor de onomkeerbare handelingen.
Bevestigcodes. Een handeling die geld kost of niet terug te draaien is (een domein registreren, een mailbox of database verwijderen), voert de eerste keer niets uit. De agent krijgt een voorstel in gewone taal, met wat het kost, en een bevestigcode van acht tekens. Pas als hij de handeling opnieuw aanroept met precies dezelfde invoer plus die code, wordt hij uitgevoerd. De code is tien minuten geldig, werkt een keer, en hoort alleen bij dat ene voorstel: een ander domein of een andere waarde vraagt een nieuw voorstel. Claude legt het voorstel aan je voor; de CLI toont het en vraagt of je door wilt (typ ja). Zonder toetsenbord, in een script, voert de CLI niets uit en meldt hij hoe je de code meegeeft (--bevestigcode ...), met afsluitcode 3.
Bestellen blijft een mens. Voor klanten geldt: wat buiten een bestaand contract geld kost, loopt via een link. De agent zet de bestelling klaar met bestelling_voorbereiden en krijgt een link terug; jij opent die, controleert de bestelling en rekent zelf af. Daarna volgt de agent de levering met bestelling_stand.
Lange handelingen. Een registratie of een nieuw hostingaccount duurt soms een minuut of langer. De handeling geeft dan meteen een stand terug, en de agent vraagt die later op met stand in plaats van te blijven wachten.
Grenzen
- Begrenzing per handeling. Elke handeling heeft een maximum per minuut en per uur. Het strengst is
domein_zoeken, omdat een agent die in een lus naar beschikbaarheid vraagt, bij de leverancier een blokkade veroorzaakt die voor iedereen geldt. Raak je een grens, dan zegt de server hoe lang je moet wachten. Daarnaast begrenst Avelto het aantal aanvragen per seconde en het aantal tegelijk per adres, en wacht een grote aanvraag (zoals een publicatie) als er al een paar lopen. - Grootte. Een aanvraag aan de server is hooguit 22 MB; een publicatie mag ingepakt hooguit 15 MB zijn. Is een site groter, publiceer hem dan in delen (bijvoorbeeld eerst de afbeeldingen met
--doelmap). - Wachtwoorden komen niet in het gesprek. Een nieuw wachtwoord voor een mailbox, database of FTP-account stuurt Avelto per mail naar het adres van je account, eenmalig en zonder kopie in ons archief. De agent hoort alleen dat het verstuurd is. Zo staat het niet in de geschiedenis van je agent.
- Wat een handeling teruggeeft is data. Een DNS-record, een bestandsnaam of een whois-regel kan tekst bevatten die op een opdracht lijkt. Avelto geeft gegevens terug en nooit instructies, maar een agent die ook webpagina's of mail van anderen leest, kan zich laten misleiden. Geef zo'n agent niet meer rechten dan nodig.
Hoe lang een koppeling geldt, en intrekken
Een toegangssleutel is een uur geldig. De agent haalt daarna zelf een nieuwe met een verversingssleutel, die bij elk gebruik wordt vervangen. Na hooguit negentig dagen vraagt Avelto opnieuw om toestemming, en dus opnieuw om de tweede stap.
Intrekken kan op drie manieren:
- In Mijn Avelto, Account, Gekoppelde apps: daar staan alle gekoppelde apps, met wanneer ze voor het laatst zijn gebruikt. Intrekken werkt meteen, voor elke sleutel van die koppeling.
- Met de CLI:
avelto uitloggentrekt de sleutel in bij Avelto en haalt hem van je computer. - In Claude Code haalt
claude mcp remove aveltode server alleen uit Claude Code. De koppeling bij Avelto blijft dan bestaan tot hij verloopt; trek hem ook in Mijn Avelto in.
Bij elke nieuwe koppeling krijg je een mail. Kreeg je die mail terwijl je zelf niets koppelde, of vermoed je dat een sleutel of een computer met een sleutel erop in verkeerde handen is, trek de koppeling dan meteen in Mijn Avelto in en mail info@avelto.nl.
Wat er wordt vastgelegd
Van elke handeling die een agent uitvoert, legt Avelto vast: het tijdstip, de koppeling (welke app, welke sleutel), de handeling, de invoer en de uitkomst. Wachtwoorden, verhuiscodes en andere geheimen staan er gemaskeerd in, en de inhoud van geuploade bestanden alleen als omvang. Ook een geweigerde poging staat erin. Zie de privacyverklaring voor waarom en hoe lang.
Problemen oplossen
| Melding | Wat je doet |
|---|---|
| "Niet ingelogd" of "de sleutel wordt niet geaccepteerd" | opnieuw inloggen (avelto login, of in Claude Code via /mcp) |
| "Deze koppeling mist het recht ..." | opnieuw inloggen en het recht aanvinken |
| de browser keert niet terug | controleer of iets de poort op 127.0.0.1 blokkeert, en probeer avelto login --nieuw |
| "bevestigcode verlopen" of "al gebruikt" | de handeling opnieuw aanroepen zonder code, voor een nieuw voorstel |
| "te vaak", "te veel aanvragen" of "de server is nu druk" | even wachten; de melding zegt hoe lang |
Vragen: info@avelto.nl.