MCP

Outils MCP

Les soixante-huit outils du serveur MCP, leurs arguments et le périmètre de clé que chacun exige.

Chaque outil correspond à un point d'accès de l'API et exige le périmètre de ce point d'accès. Les réponses sont le JSON de l'API ; les erreurs gardent leur code, leurs détails et le request_id, avec une indication de la marche à suivre.

Catalogue, sans clé

OutilArgumentsRenvoie
list_regionsaucunLes régions où les machines peuvent tourner.
list_plansregionLes offres, leurs ressources, leurs prix à l'heure et au mois.
list_imagesregion, plan, categorySystèmes et images d'applications ; le slug est ce qu'attend create_vm.

Compte

OutilArgumentsPérimètre
get_accountaucunbilling.read

Solde, consommation horaire et autonomie, quota, budget mensuel.

Machines

OutilArgumentsPérimètre
list_vmsstatus, region, billing, cursor, limitvms.read
get_vmvmvms.read
get_vm_metricsvm, timeframevms.read
estimate_vmplan, region, image, hostname, billing, ssh_keys, options, ipv4, vpc, private_onlyvms.create
create_vmcomme estimate_vm, plus payment, password_delivery, idempotency_keyvms.create
power_vmvm, type : start, shutdown, reboot, stopvms.action
rename_vmvm, hostnamevms.action
reinstall_vmvm, image, confirm_hostname, ssh_keys, password_deliveryvms.action
destroy_vmvm, confirm_hostname, whenvms.destroy

estimate_vm fait toutes les vérifications d'une commande et la chiffre, sans rien créer. create_vm tire sa clé d'idempotence de la commande elle-même : un agent qui relance le même appel après une coupure retrouve la première réponse, pas une seconde machine. reinstall_vm et destroy_vm effacent le disque et refusent d'agir si confirm_hostname n'est pas le nom d'hôte exact de la machine.

Actions

OutilArgumentsPérimètre
get_actionactionvms.read
list_vm_actionsvmvms.read

La création, la réinstallation et les changements d'alimentation tournent en arrière-plan et renvoient une action : interrogez get_action jusqu'à ce que son état quitte running. Une nouvelle machine est prête en moins de deux minutes.

Réseau et clés SSH

OutilArgumentsPérimètre
get_vm_networkvmvms.read
set_reverse_dnsvm, address, hostname (null efface)network.write
list_ssh_keysaucunsshkeys.write ou vms.read
add_ssh_keyname, public_keysshkeys.write
delete_ssh_keykeysshkeys.write

Réseaux privés

OutilArgumentsPérimètre
list_vpcsaucunvms.read
get_vpcvpcvms.read
create_vpcname, cidr, regionnetwork.write
delete_vpcvpcnetwork.write
connect_vpcvpc, vm, ipnetwork.write
disconnect_vpcvpc, vmnetwork.write
move_vpcvpc, vm, tonetwork.write

Un réseau privé relie vos machines par une seconde carte, isolée des autres clients et hors de la bande passante comptée. connect_vpc branche une machine en marche sans la redémarrer ; create_vm accepte vpc, et private_only pour une machine sans aucune adresse publique. Voir Réseaux privés.

Pare-feux

OutilArgumentsPérimètre
list_firewallsaucunvms.read
get_firewallfirewallvms.read
create_firewallname, rulesnetwork.write
update_firewallfirewall, name, rules (remplace la liste)network.write
delete_firewallfirewallnetwork.write
attach_firewallfirewall, vmnetwork.write
detach_firewallfirewall, vmnetwork.write

Un pare-feu est un jeu de règles réutilisable : une machine qui en a au moins un refuse le trafic entrant qu'aucune règle n'ouvre, une machine sans pare-feu accepte tout. Une règle direction: out restreint ce qui sort (le DNS reste permis). update_firewall remplace toute la liste de règles : un agent lit donc get_firewall d'abord et garde TCP 22 ouvert, sans quoi il perd SSH sur la machine. Voir Pare-feux.

Répartiteurs de charge

OutilArgumentsPérimètre
list_load_balancersaucunvms.read
get_load_balancerlbvms.read
get_load_balancer_metricslb, rangevms.read
create_load_balancername, vpcvms.create
delete_load_balancerlbvms.destroy
upsert_poollb, pool (pour modifier), name, protocol, contrôle de santénetwork.write
delete_poollb, poolnetwork.write
set_targetslb, pool, targets (remplace la liste)network.write
upsert_listenerlb, listener (pour modifier), port, protocol, default_pool, sourcesnetwork.write
delete_listenerlb, listenernetwork.write
set_ruleslb, listener, rules (remplace la liste)network.write

Un agent monte un répartiteur dans l'ordre : create_load_balancer, un pool, set_targets, un port d'entrée, puis set_rules pour router par nom ou par chemin. Il se paie à l'heure : l'agent annonce le prix d'abord. Un nom en HTTPS n'obtient son certificat qu'une fois son DNS pointé vers le répartiteur : l'agent indique à l'utilisateur les enregistrements à créer. Voir Répartiteurs de charge.

Bases de données

OutilArgumentsPérimètre
list_databasesaucunvms.read
get_database_optionsaucunvms.read
get_databasedatabasevms.read
get_database_metricsdatabase, rangevms.read
get_slow_queriesdatabasevms.read
list_database_backupsdatabasevms.read
get_database_credentialsdatabasedatabases.write
create_databasename, vpc, engine, version, size_gbvms.create
restore_databasedatabase, at, namevms.create
fork_databasedatabase, namevms.create
detach_database_forkdatabasevms.action
resize_databasedatabase, size_gbvms.create
delete_databasedatabase, confirm_namevms.destroy
update_databasedatabase, name, créneau de maintenance, disk_cap_gb, eviction_policy (Valkey)databases.write
set_database_public_accessdatabase, enabled, sourcesnetwork.write
backup_databasedatabasebackups.write
create_database_userdatabase, username, databases, read_onlydatabases.write
set_database_user_accessdatabase, username, databases, read_onlydatabases.write
reset_database_passworddatabase, usernamedatabases.write
delete_database_userdatabase, usernamedatabases.write
create_logical_databasedatabase, namedatabases.write
delete_logical_databasedatabase, namedatabases.write
enable_extensiondatabase, name, extensiondatabases.write
disable_extensiondatabase, name, extensiondatabases.write

Les bases gérées (PostgreSQL, MySQL, MariaDB et Valkey) sont en bêta, ouvertes à tous les comptes. L'agent annonce le prix (get_database_options) avant create_database, et demande à l'utilisateur avant delete_database, qui exige le nom exact en retour. Les mots de passe ne sortent que par get_database_credentials et create_database_user : l'agent les transmet à l'application par une variable d'environnement ou un coffre à secrets, jamais dans le code ni les journaux. Chaque application reçoit son utilisateur, limité à sa base logique (databases, et read_only pour celle qui ne fait que lire) ; set_database_user_access le change ensuite et ferme les connexions de l'utilisateur là où ses droits baissent. restore_database et fork_database créent une nouvelle base et n'écrasent rien. Avant resize_database, l'agent annonce le nouveau tarif et la minute ou deux de coupure : pas de retour à une taille inférieure. Voir Bases de données.

Runners GitHub

OutilArgumentsPortée
get_runnersaucunbilling.read
list_runner_jobsrepository, status, limit, cursorbilling.read

Les runners GitHub Actions sont en bêta, ouverte à tous les comptes. Lier une organisation ou un compte GitHub passe par GitHub dans un navigateur, depuis la console : aucun outil ne le fait. L'agent lit les étiquettes et leurs prix, et suit les jobs, y compris pourquoi l'un attend (crédit, budget, plafond de vCPU) ou a été refusé. Voir Runners GitHub Actions.

Ce que le serveur MCP ne fait pas

Restaurer ou supprimer la sauvegarde d'une machine, ouvrir une session de console et ajouter des adresses IPv6 restent dans l'API et la console : ces gestes sont rares, et une erreur y coûte cher. Les factures, moyens de paiement et tickets ne sont accessibles à aucune clé.

Les clés d'API et les liaisons OIDC se gèrent dans la console seulement : ni une clé ni un jeton ne peut en créer une ou élargir ses portées.

Support & discussions

Questions techniques, retours d'incidents ou discussions d'infrastructure, l'équipe est présente sur Discord, Telegram, X, Instagram, Reddit et IRC.