Subir archivos
Los archivos viajan por URL, no por el chat
Los asistentes no pueden enviar el contenido de un archivo a través de una conversación. Los argumentos de las herramientas MCP son JSON escrito por el propio modelo, así que un binario tendría que viajar codificado en base64 como texto generado: imposible más allá de unas decenas de kilobytes, y clientes como Claude Desktop nunca adjuntan los archivos de la conversación a las llamadas de herramientas.
Por eso los archivos llegan a Moodle por URL: le das al asistente un enlace HTTPS público y tu propio servidor de Moodle descarga el archivo directamente (hasta 512 MiB, con las protecciones SSRF de Moodle). El archivo nunca pasa por el chat.
Añadir un archivo a un curso
- local_mcpconnector_create_resource: añade cualquier archivo (PDF, DOCX, imagen, vídeo…) a un curso como recurso de tipo Archivo.
- local_mcpconnector_create_scorm: crea una actividad SCORM a partir de un zip del paquete.
Ambas herramientas vienen incluidas en el plugin desde la versión 1.0.
Pídelo en lenguaje natural —«añade este PDF al curso de Biología como recurso: https://…»— y el asistente elegirá la herramienta correcta.
Conseguir un enlace que funcione
El enlace debe devolver el archivo en sí, no una página web que lo envuelve:
| Origen | Qué usar |
|---|---|
| Google Drive | https://drive.google.com/uc?export=download&id=ID_DEL_ARCHIVO; el enlace normal para compartir devuelve una página, y los archivos muy grandes muestran una confirmación que el servidor no puede pulsar |
| Dropbox | Añade ?dl=1 al enlace compartido |
| GitHub | Usa la URL de raw.githubusercontent.com |
Sirve cualquier URL HTTPS a la que tu Moodle pueda llegar, incluido tu propio servidor web.
Archivos en la máquina del asistente
Cuando el archivo está donde se ejecuta el asistente —un SCORM que acaba de construir, un PDF que ha generado— no hay ninguna URL pública que darle. Usa moodle_request_file_upload:
- La herramienta devuelve una URL de subida temporal.
- El asistente sube el archivo con el comando curl que recibe.
- Pasa la fileUrl resultante a create_resource o create_scorm.
Ambas URL caducan y el archivo se elimina a los 30 minutos. Es un canal de transferencia, no almacenamiento: no lo uses para guardar nada.
Problemas al subir
- «No se pudo descargar el archivo»: la URL devuelve HTML en lugar del archivo, o no es accesible públicamente. Pruébala con curl -IL url desde fuera de tu red.
- La herramienta no está disponible: tu plugin está desactualizado. Actualízalo en Moodle.
- El asistente dice que no puede subir archivos: no ha encontrado la herramienta. Pedirle que busque «upload» entre sus herramientas de Moodle suele desbloquearlo.