Mettre en ligne une API Rust depuis votre agent IA, par MCP
Votre API Rust compile. Branché à while par MCP, votre agent IA la met en ligne en France, avec un Dockerfile tout prêt : construite en mode release, lancée dans une image minimale, sans droits d’administration.
Par Aloïs Oddon, cofondateur de Nextmap. Faits relevés le 2 novembre 2026.
Prérequis
- Une API Rust, avec son Cargo.toml.
- Un agent IA qui travaille dans un terminal : Claude Code, Codex, Cursor ou Gemini CLI.
Étape 1 : Donnez ces instructions à votre agent
Ouvrez votre agent dans le dossier de votre API, et collez-lui ces instructions :
Connecte-toi à while avec mon compte (while.sh/agents), puis mets mon appli en ligne.
Sans compte, votre agent met votre API en ligne à l’essai, en une demande. Pour la garder, ouvrez le lien qu’il vous donne et créez votre compte.
Avec votre compte, votre agent ajoute lui-même le serveur MCP de while. S’il vous le demande, relancez-le. Au premier appel à while, une page s’ouvre dans votre navigateur. Dans Claude Code, si elle ne s’ouvre pas, tapez /mcp, choisissez while, puis Authenticate. Sur cette page, choisissez votre appli, ou « Une nouvelle appli », puis cliquez sur Autoriser.
Étape 2 : Ouvrez votre API
Votre agent vous donne l’adresse de votre API, par exemple https://mon-api.while.cloud, en HTTPS.
Ce que fait votre agent
Il écrit while.yaml à la racine de votre API :
apiVersion: while/v1
project: mon-api
services:
- name: web
port: 8080
health:
path: /health
Rust est reconnu à son Cargo.toml, et votre agent reçoit un Dockerfile prêt à construire : cargo build --release, puis votre binaire dans une image Debian minimale, sans droits d’administration. Votre API écoute sur le port reçu dans PORT, comme cette API Axum1 :
use axum::{routing::get, Router};
#[tokio::main]
async fn main() {
let port = std::env::var("PORT").unwrap_or_else(|_| "8080".into());
let app = Router::new()
.route("/", get(|| async { "Bonjour" }))
.route("/health", get(|| async { "ok" }));
let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{port}")).await.unwrap();
axum::serve(listener, app).await.unwrap();
}
Ajouter une base de données
Vous, à votre agent : Ajoute une base PostgreSQL.
Votre agent déclare la base dans while.yaml, et son adresse arrive à votre code dans DATABASE_URL. Elle est sauvegardée chaque jour, et revient à un instant précis si besoin.
Aller plus vite avec un cache
Vous, à votre agent : Ajoute un cache pour les pages les plus lues.
Votre agent déclare un cache compatible Redis, branché à votre code avec son mot de passe.
Réserver votre API à vos collègues
Vous, à votre agent : Réserve l’API aux personnes de l’entreprise.
Votre agent ajoute deux lignes au service :
access: internal
email_domains: [acme.fr]
Une fois votre Google Workspace ou Microsoft 365 relié à while, avec l’offre Pro, vos collègues l’ouvrent avec leur compte habituel, et votre code reçoit leur nom et leur adresse électronique, sans page de connexion à écrire.
Passer sur votre propre domaine
Vous, à votre agent : Mets l’API sur api.acme.fr.
Votre agent déclare le domaine, vous ajoutez les enregistrements DNS qu’il vous donne, et le certificat HTTPS suit.
Corriger une faille dans vos dépendances
Vous, à votre agent : Corrige les failles de nos dépendances.
Les dépendances de votre API sont comparées aux failles connues à chaque mise en ligne, puis chaque jour. Votre agent est prévenu d’une faille grave, et met à jour le paquet en cause.
Revenir à la version d’avant
Vous, à votre agent : Reviens à la version d’avant.
Dans les 30 minutes qui suivent une mise en ligne, la version d’avant revient en une seconde. Ensuite, en quelques secondes. Une fois la version d’avant revenue, votre agent lit ce qui a cassé dans les journaux de while, corrige et remet en ligne.
Dans la doc : Bases PostgreSQL, Cache Valkey (Redis), Accès interne, Domaine personnalisé, Versions et retour arrière et Failles des dépendances.
Prochaines étapes
Sources
- Axum, la documentation, consulté le 2 novembre 2026