Enviar ficheiros
Os ficheiros viajam por URL, não pelo chat
Os assistentes não conseguem enviar o conteúdo de um ficheiro através de uma conversa. Os argumentos das ferramentas MCP são JSON escrito pelo próprio modelo, pelo que um binário teria de viajar codificado em base64 como texto gerado: impossível para lá de algumas dezenas de kilobytes, e clientes como o Claude Desktop nunca anexam ficheiros da conversa às chamadas de ferramentas.
Por isso os ficheiros chegam ao Moodle por URL: dá ao assistente uma ligação HTTPS pública e o seu próprio servidor Moodle descarrega o ficheiro diretamente (até 512 MiB, com as proteções SSRF do Moodle). O ficheiro nunca passa pelo chat.
Adicionar um ficheiro a um curso
- local_mcpconnector_create_resource: adiciona qualquer ficheiro (PDF, DOCX, imagem, vídeo…) a um curso como recurso do tipo Ficheiro.
- local_mcpconnector_create_scorm: cria uma atividade SCORM a partir de um zip do pacote.
Ambas as ferramentas estão incluídas no plugin desde a versão 1.0.
Peça em linguagem natural — «adiciona este PDF ao curso de Biologia como recurso: https://…» — e o assistente escolhe a ferramenta certa.
Conseguir uma ligação que funcione
A ligação tem de devolver o ficheiro em si, não uma página que o envolve:
| Origem | Use |
|---|---|
| Google Drive | https://drive.google.com/uc?export=download&id=ID_DO_FICHEIRO; a ligação de partilha normal devolve uma página, e ficheiros muito grandes mostram uma confirmação que o servidor não consegue clicar |
| Dropbox | Acrescente ?dl=1 à ligação de partilha |
| GitHub | Use o URL de raw.githubusercontent.com |
Serve qualquer URL HTTPS que o seu Moodle consiga alcançar, incluindo o seu próprio servidor web.
Ficheiros na máquina do assistente
Quando o ficheiro está onde o assistente corre — um SCORM acabado de construir, um PDF que gerou — não há nenhum URL público para dar. Use moodle_request_file_upload:
- A ferramenta devolve um URL de envio temporário.
- O assistente envia o ficheiro com o comando curl que recebe.
- Passa o fileUrl resultante a create_resource ou create_scorm.
Ambos os URL expiram e o ficheiro é eliminado ao fim de 30 minutos. É um canal de transferência, não de armazenamento: não o use para guardar nada.
Problemas ao enviar
- «Não foi possível descarregar o ficheiro»: o URL devolve HTML em vez do ficheiro, ou não é publicamente acessível. Teste com curl -IL url a partir de fora da sua rede.
- A ferramenta não está disponível: o seu plugin está desatualizado. Atualize-o no Moodle.
- O assistente diz que não consegue enviar ficheiros: não encontrou a ferramenta. Pedir-lhe que procure «upload» entre as suas ferramentas do Moodle costuma desbloquear a situação.