Envoyer des fichiers
Les fichiers voyagent par URL, pas par le chat
Les assistants ne peuvent pas faire passer le contenu d'un fichier dans une conversation. Les arguments des outils MCP sont du JSON écrit par le modèle lui-même : un binaire devrait donc voyager encodé en base64 sous forme de texte généré — impossible au-delà de quelques dizaines de kilo-octets, et des clients comme Claude Desktop n'attachent jamais les fichiers de la conversation aux appels d'outils.
Les fichiers parviennent donc à Moodle par URL : vous donnez à l'assistant un lien HTTPS public et votre propre serveur Moodle télécharge le fichier directement (jusqu'à 512 Mio, avec les protections SSRF de Moodle). Le fichier ne transite jamais par le chat.
Ajouter un fichier à un cours
- local_mcpconnector_create_resource : ajoute n'importe quel fichier (PDF, DOCX, image, vidéo…) à un cours comme ressource Fichier.
- local_mcpconnector_create_scorm : crée une activité SCORM à partir d'un zip de paquet.
Les deux outils sont inclus dans le plugin depuis la version 1.0.
Formulez la demande en langage naturel — « ajoute ce PDF au cours de biologie comme ressource : https://… » — et l'assistant choisit le bon outil.
Obtenir un lien qui fonctionne
Le lien doit renvoyer le fichier lui-même, pas une page web qui l'enveloppe :
| Source | À utiliser |
|---|---|
| Google Drive | https://drive.google.com/uc?export=download&id=ID_FICHIER — le lien de partage habituel renvoie une page, et les très gros fichiers affichent une confirmation que le serveur ne peut pas valider |
| Dropbox | Ajoutez ?dl=1 au lien de partage |
| GitHub | Utilisez l'URL raw.githubusercontent.com |
Toute URL HTTPS joignable par votre Moodle convient, y compris votre propre serveur web.
Fichiers sur la machine de l'assistant
Quand le fichier se trouve là où s'exécute l'assistant — un SCORM qu'il vient de construire, un PDF qu'il a généré — il n'y a pas d'URL publique à fournir. Utilisez moodle_request_file_upload :
- L'outil renvoie une URL d'envoi temporaire.
- L'assistant envoie le fichier avec la commande curl qu'il reçoit.
- Il transmet la fileUrl obtenue à create_resource ou create_scorm.
Les deux URL expirent et le fichier est purgé au bout de 30 minutes. C'est un canal de transfert, pas un stockage : n'y conservez rien.
Problèmes d'envoi
- « Impossible de télécharger le fichier » : l'URL renvoie du HTML au lieu du fichier, ou n'est pas joignable publiquement. Testez-la avec curl -IL url depuis l'extérieur de votre réseau.
- L'outil n'est pas disponible : votre plugin est obsolète. Mettez-le à jour dans Moodle.
- L'assistant dit qu'il ne peut pas envoyer de fichiers : il n'a pas trouvé l'outil. Lui demander de chercher « upload » parmi ses outils Moodle suffit en général à le débloquer.