Relier Transloadit à ChatGPT, Claude et Codex avec une seule URL
En février, nous avons lancé le serveur MCP Transloadit (English), mais sa connexion nécessitait de créer un jeton porteur et de le coller dans un fichier de configuration. Les applications de discussion hébergées ne pouvant pas envoyer d’en-têtes personnalisés ne pouvaient pas du tout s’y connecter. À partir d’aujourd’hui, il vous suffit de coller une URL. Votre client ouvre un écran de consentement Transloadit. Vous donnez votre accord, puis votre agent peut téléverser, encoder et transformer des fichiers avec nos Robots, soit à l’aide d’outils dédiés aux tâches courantes, comme le sous-titrage d’une vidéo, soit en composant sa propre Assembly.
Nous avons testé ce fonctionnement de bout en bout avec ChatGPT, Claude, Claude Code et Codex. Voici comment connecter chacun de ces clients, ce qu’autorise l’écran de consentement et comment les fichiers passent de la conversation, ou de l’environnement isolé d’un agent, à une Assembly.
Coller une seule URL
Le point de terminaison hébergé est le même pour tous les clients :
https://api2.transloadit.com/mcp
- Claude Code : exécutez
claude mcp add --transport http transloadit https://api2.transloadit.com/mcp, puis ouvrez/mcpdans une session et choisissez Authenticate. - Claude : dans Settings → Connectors, choisissez Add custom connector, collez l’URL et cliquez sur Continue. Claude détecte qu’il doit vous connecter et comment s’identifier.
- ChatGPT : avec le mode développeur activé, créez un nouveau plugin en utilisant l’URL comme URL du serveur et OAuth comme méthode d’authentification. Il apparaît alors dans Settings → Plugins : cliquez sur Connect, puis sur Continue to Transloadit.
- Codex : exécutez
codex mcp add transloadit --url https://api2.transloadit.com/mcp. Codex lance la connexion dans le navigateur pour vous.


Vous n’avez rien à copier depuis votre compte : ni clé, ni secret, ni jeton. Chaque client découvre notre serveur d’autorisation à partir de l’URL, s’identifie et vous dirige vers l’écran de consentement.
Pourquoi ne pas simplement coller une Auth Key ?
Vous le pouvez toujours. Pour votre propre backend, vos scripts, votre CI ou une intégration comme Zapier, une Auth Key est l’outil adapté. Mais coller une clé dans une application de discussion revient à lui confier un double de votre clé de maison : elle peut faire tout ce que cette clé autorise jusqu’à ce que vous la supprimiez. Nous ne pouvons pas savoir quelle application la détient, et sa suppression coupe l’accès à tous les outils qui la partagent. La connexion par URL fonctionne dans l’autre sens. L’application fait une demande, vous l’approuvez pour un Workspace, et elle reçoit son propre laissez-passer, avec uniquement les autorisations nécessaires. Vous retrouvez chaque application dans Applications connectées et pouvez révoquer son accès sans toucher au reste. La documentation du serveur MCP compare les deux méthodes côte à côte.
Un seul écran de consentement
L’écran de consentement s’affiche dans la Transloadit Console. Si vous n’avez pas de session ouverte, vous vous connectez ou vous vous inscrivez d’abord, puis vous revenez à la même demande.

Il indique quelle application fait la demande (nom, site web, logo et adresse de retour), vous permet de choisir le Workspace et énumère les autorisations : créer des Assemblies, lire des Assemblies et lire des Templates. Le serveur MCP n’a besoin de rien d’autre. L’écran n’accorde donc que ces autorisations, même si un client en demande davantage. Codex, par exemple, demande toutes les autorisations que notre API connaît, mais n’obtient malgré tout que ces trois-là.
Les applications qui s’exécutent sur votre propre ordinateur, comme Codex et Claude Code, reviennent vers une adresse locale, et l’écran de consentement vous le précise :

Votre approbation crée une Auth Key dédiée dans ce Workspace, limitée à ces autorisations. Pour révoquer l’accès par la suite, ouvrez Applications connectées dans la Console : cette section répertorie toutes les applications que vous avez approuvées. Révoquer l’accès d’une application y met fin immédiatement. Vos autres clés continuent de fonctionner. Dans Claude, la demande suivante vous invite alors à vous reconnecter :

Votre Auth Secret ne quitte jamais votre compte. Le client reçoit un jeton d’accès au serveur MCP qui expire au bout d’une semaine, ainsi qu’un jeton de renouvellement valable 30 jours, remplacé à chaque utilisation. Si un jeton de renouvellement déjà utilisé réapparaît, par exemple une copie volée, nous révoquons toute la chaîne.
Demander ce dont vous avez besoin
Une fois la connexion établie, vous parlez à votre agent comme à un collègue :
- « Listez mes Templates Transloadit. »
- « Transformez cette conférence en reel vertical avec des sous-titres incrustés. »
- « Supprimez l’arrière-plan de ces photos de produits. »
- « Redimensionnez cette image, encodez cette vidéo en 720p, créez un MP3 à 64 kbps à partir de ce fichier audio et générez un rendu PNG de la première page de ce PDF, le tout dans une seule Assembly. »

Des outils dédiés aux tâches courantes
Pour les tâches les plus demandées, le serveur propose des outils prêts à l’emploi en complément des outils généraux : Sous-titrer une vidéo, Capturer une page web, Convertir en PDF, Encoder une vidéo, Extraire du texte, Préparer une image, Supprimer l’arrière-plan, Transcrire et Images de couverture vidéo. Chacun exécute un Builtin Template que nous maintenons. L’agent fournit donc uniquement le fichier et quelques options, au lieu de rédiger des Assembly Instructions de toutes pièces. Voici un extrait abrégé dans lequel Codex sous-titre un extrait de discours avec l’un de ces outils :
$ codex exec "Use the transloadit MCP server. Turn ./jfk-we-choose-to-go-to-the-moon.mp4 into a vertical social reel with burned-in captions, using the Caption video tool. …"
mcp: transloadit/transloadit_get_robot_help (completed)
mcp: transloadit/transloadit_list_templates (completed)
mcp: transloadit/transloadit_lint_assembly_instructions (completed)
mcp: transloadit/transloadit_create_assembly (completed)
mcp: transloadit/transloadit_wait_for_assembly (completed)
mcp: transloadit/transloadit_caption_video (completed)
mcp: transloadit/transloadit_wait_for_assembly (completed)
codex
Finished: 1080 × 1920 (9:16), 55.018 seconds, with burned-in captions.
First three caption lines:
1. “and master, without feeding the fires of war,”
2. “without repeating the mistakes that man”
3. “has made in extending his writ around this globe of ours.”
Ou laisser l’agent composer une Assembly
Lorsqu’aucun outil dédié ne convient, l’agent rédige lui-même l’Assembly. C’est là que cela devient intéressant. Nous avons donné une seule phrase à Claude :
Avec Transloadit : prenez le discours du président Kennedy à l’université Rice, dans le domaine public, à l’adresse
https://upload.wikimedia.org/…/President_Kennedy%27s_Speech_at_Rice_University.ogv, découpez le passage de 8:44 à 9:34 (de « Mais pourquoi, demandent certains, la Lune ? » à « Nous choisissons d’aller sur la Lune ») dans une seule Assembly, puis transformez cet extrait en reel vertical pour les réseaux sociaux avec des sous-titres incrustés.
Claude a enchaîné quatre Robots dans une seule Assembly. 🤖 /http/import a récupéré l’enregistrement de 18 minutes sur Wikimedia Commons, 🤖 /video/encode a découpé l’extrait et l’a recadré en 1080 × 1920, 🤖 /speech/transcribe l’a transcrit et 🤖 /video/subtitle a incrusté des sous-titres qui mettent chaque mot en surbrillance au moment où il est prononcé. L’Assembly s’est terminée en moins d’une minute. Claude a ensuite lu la transcription, remarqué que nos repères temporels étaient décalés de quelques secondes et proposé un découpage plus précis se terminant sur « non pas parce que c’est facile, mais parce que c’est difficile ». Un simple « oui » plus tard, voici le résultat :
Le président Kennedy à l’université Rice, le 12 septembre 1962. Extrait découpé, recadré, transcrit et sous-titré par une seule Assembly rédigée par Claude. Vidéo dans le domaine public provenant de Wikimedia Commons, diffusée depuis Transloadit Storage.
La création d’une Assembly peut écrire des fichiers dans votre propre espace de stockage, par exemple via le Robot 🤖 /s3/store. Nous signalons donc que cet outil, ainsi que les outils dédiés, effectuent des modifications. Les clients qui tiennent compte de cette indication vous demandent d’abord confirmation. Les outils permettant de lister les Templates, de consulter l’état d’une Assembly et de rechercher la documentation des Robots sont marqués comme étant en lecture seule. Lorsqu’un outil a besoin de votre accord, Claude affiche ce qu’il s’apprête à envoyer :

Dans les clients qui affichent les MCP Apps, comme ChatGPT et Claude, une Assembly terminée apparaît sous forme de carte intégrée à la conversation. Elle affiche l’état de l’Assembly et une grille de résultats, chacun portant le nom du Step qui l’a produit, avec un aperçu d’image ou de vidéo, un lecteur audio et un bouton de téléchargement. Tant qu’une Assembly est en cours, la carte continue de consulter son état et affiche les résultats dès qu’ils sont prêts. L’agent peut ainsi en suivre l’exécution au lieu de tout recommencer. Voici le reel de Kennedy dans Claude :

Et une demande portant sur quatre fichiers dans ChatGPT, avec une image, une vidéo, un fichier audio et un PDF traités dans une seule Assembly :

Les clients sans MCP Apps, comme Codex dans un terminal, reçoivent les mêmes résultats en sortie d’outil.
Envoyer les fichiers à Transloadit, où qu’ils se trouvent
Les fichiers sont généralement le point de blocage des agents. Le serveur MCP les accepte donc de plusieurs façons :
- Une URL publique. Demandez à l’agent de traiter
https://example.com/talk.mp4, et Transloadit récupère lui-même le fichier à cette adresse. - Une pièce jointe dans ChatGPT. Joignez un fichier à votre message. ChatGPT transmet à Transloadit un lien de téléchargement temporaire, de sorte que le fichier ne transite jamais par la conversation.
- Un fichier dans l’environnement isolé de l’agent. Claude, Claude Code et Codex peuvent exécuter
des commandes. Lorsqu’un fichier n’existe que sur cette machine, l’agent demande à Transloadit un
emplacement de téléversement. Il reçoit une commande
curlprête à exécuter, qui transmet le fichier en flux directement à l’Assembly via tus, le protocole de téléversement avec reprise que nous maintenons. Il attend ensuite le résultat.
Cette commande de téléversement ne contient aucune information d’identification, uniquement l’adresse
d’une Assembly qui attend vos fichiers. Gardez tout de même cette adresse confidentielle : toute
personne qui la possède peut aussi lire l’état et les résultats de l’Assembly, et l’annuler.
Dans Claude, l’environnement isolé a besoin d’un accès réseau sortant pour joindre Transloadit :
dans Settings → Capabilities, autorisez les connexions réseau sortantes et ajoutez
*.transloadit.com aux domaines autorisés. Pour permettre à Claude de récupérer les
résultats dans son environnement isolé, ajoutez aussi *.transloadit.net.
Pour les plateformes qui appellent directement notre API
Le même flux d’autorisation émet également des jetons pour l’API REST Transloadit elle-même, à destination des plateformes qui appellent l’API au nom d’un utilisateur plutôt que de passer par MCP. Un tel jeton n’inclut jamais d’autorisations de gestion des informations d’identification : il ne peut ni créer d’Auth Keys ni lire les informations d’identification de Templates enregistrées, même si la clé utilisée pour l’approbation le pouvait.
Sous le capot
Pour les curieux, il s’agit d’OAuth 2.1 standard, tel que le décrit la spécification d’autorisation MCP :
- Le serveur MCP répond aux requêtes non authentifiées par un
401qui pointe vers ses métadonnées de ressource protégée, lesquelles indiquent notre serveur d’autorisation. - Les clients s’identifient à l’aide d’un document public de métadonnées client, comme le font ChatGPT, Claude, Claude Code et Codex, ou en s’enregistrant à la volée grâce à l’enregistrement dynamique des clients.
- Chaque autorisation utilise PKCE, et les jetons sont liés à la ressource pour laquelle ils ont été demandés.

Faire fonctionner ces quatre clients de manière cohérente avec tout cela nous a appris plusieurs choses, que nous détaillerons dans un autre article.
Connaître les limites
- ChatGPT ne propose des plugins personnalisés que si le mode développeur est disponible dans votre forfait et activé. Le référencement dans les annuaires de ChatGPT et Claude viendra ensuite. En attendant, connectez-vous par URL comme indiqué ci-dessus.
- Les fichiers envoyés directement dans un appel d’outil, en base64, sont limités à 512 KB. Pour les fichiers plus volumineux, utilisez une URL ou un téléversement depuis un environnement isolé. Une requête peut préparer jusqu’à 100 téléversements depuis un environnement isolé.
- Avec le forfait gratuit Community, les images produites portent un filigrane, et les résultats audio et vidéo sont raccourcis. Notre FAQ explique pourquoi.
- ChatGPT conserve un instantané des outils d’un plugin. Lorsque nous ajoutons des outils, ouvrez le plugin dans les paramètres de ChatGPT et cliquez sur Refresh tools pour les récupérer. Codex récupère la liste actuelle lors de sa connexion.
Essayer
Collez https://api2.transloadit.com/mcp dans votre client et donnez votre accord sur l’écran de
consentement. Vous n’avez pas encore de compte ? Inscrivez-vous sur la page qui s’ouvre, ou
créez-en un au préalable. La
documentation du serveur MCP couvre chaque client et la configuration
autohébergée. Nos Agent Skills apprennent aux agents à bien utiliser
Transloadit. Signalez-nous ce qui manque dans l’outil de suivi des problèmes de node-sdk.
