# Uploads

> Envie suas imagens, áudios e vídeos ao Nodaro de qualquer cliente MCP: com um seletor no chat, um link no navegador ou uma URL pré-assinada via shell.

Source: https://nodaro.ai/pt-BR/docs/mcp/tools/uploads

As **ferramentas de upload** trazem os seus próprios arquivos para o Nodaro, para que um assistente possa usar uma foto, uma gravação de voz ou um clipe na próxima geração. Há três formas de enviar arquivos: um seletor no chat, um link que você abre no navegador e uma URL pré-assinada para clientes que conseguem executar comandos de shell. Todas as ferramentas de upload precisam da permissão `assets:write`, e o upload não custa créditos.

## Qual método usar
| Método | Ferramentas | Funciona em | Como funciona |
| --- | --- | --- | --- |
| Seletor no chat | `upload_image_widget`, `upload_audio_widget`, `upload_video_widget` | Clientes que exibem MCP Apps, como o Claude na web | Um seletor de arquivos abre dentro do chat. A URL pública volta para o chat automaticamente. |
| Link no navegador | `request_image_upload`, `request_audio_upload`, `request_video_upload` | Todos os clientes | Você abre um link do Nodaro no navegador e solta o arquivo ali. |
| URL pré-assinada | `prepare_image_upload`, `prepare_audio_upload`, `prepare_video_upload` | Clientes com acesso ao shell, como Cursor, Cline, Claude Desktop e Claude Code | O próprio assistente envia o arquivo com um comando `curl`. |

Quando um arquivo já tem uma URL pública, por exemplo o resultado de um job anterior, passe essa URL diretamente e pule o upload.

## `upload_image_widget`
Abre um seletor de arquivos de imagem dentro do chat. No celular, o seletor abre a câmera ou a galeria de fotos. O widget envia os arquivos e informa as URLs públicas deles de volta no chat, então você só toca no seletor uma vez. `upload_audio_widget` e `upload_video_widget` funcionam do mesmo jeito para áudio e vídeo.

**Permissão:** `assets:write`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `max_files` | integer | Quantos arquivos o seletor aceita, de 1 a 10. Padrão: `1`. Use mais para fluxos como várias fotos de referência da mesma pessoa. |
| `purpose` | string | Um rótulo curto exibido no cartão de upload, com até 120 caracteres, por exemplo `product image for the catalog app`. Ele também lembra o assistente para que serve o arquivo. |

**Retorna:** `uploads`, uma lista de pares `{ upload_url, public_url }`, além de `upload_url` e `public_url` do primeiro arquivo. Um cliente que não mostra o seletor ainda pode mostrá-los como links simples.

## `request_image_upload`
Retorna um link curto do Nodaro que você abre em qualquer navegador para soltar uma imagem. Funciona em todos os clientes e com qualquer tamanho de arquivo, porque o arquivo passa pelo seu próprio navegador. `request_audio_upload` e `request_video_upload` fazem o mesmo para áudio e vídeo.

**Permissão:** `assets:write`. **Créditos:** grátis.

Esta ferramenta não tem parâmetros.

**Retorna:** `upload_page_url`, a página a abrir, e `public_url`, o endereço que o arquivo terá. A URL pública é conhecida de antemão, então o assistente pode usá-la na próxima chamada assim que você confirmar que o upload terminou.

## `prepare_image_upload`
Retorna uma URL de upload pré-assinada, para a qual o assistente envia o arquivo com `curl`. O arquivo nunca passa pela conversa, então o tamanho dele não importa. `prepare_audio_upload` e `prepare_video_upload` fazem o mesmo para áudio e vídeo.

**Permissão:** `assets:write`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `mime_type` | string | **Obrigatório.** O tipo do arquivo que você vai enviar. |

| Ferramenta | Valores aceitos de `mime_type` |
| --- | --- |
| `prepare_image_upload` | `image/png`, `image/jpeg`, `image/webp`, `image/avif`, `image/heic`, `image/heif` |
| `prepare_audio_upload` | `audio/mpeg`, `audio/mp4`, `audio/wav`, `audio/x-wav`, `audio/webm`, `audio/ogg`, `audio/flac`, `audio/x-flac`, `audio/aac`, `audio/x-m4a` |
| `prepare_video_upload` | `video/mp4`, `video/webm`, `video/quicktime`, `video/x-matroska` |

**Retorna:** `upload_url`, válida por 1 hora, e `public_url`. O assistente envia o arquivo com:

```bash
curl -X PUT --data-binary @path/to/file -H 'Content-Type: image/png' '<upload_url>'
```

Depois, ele passa `public_url` para a próxima ferramenta, por exemplo como `image_url`.

**Não serve para o Claude na web:** 
O upload pré-assinado falha no Claude na web e no app do Claude para Android, porque eles não conseguem acessar o host de armazenamento. Nesses clientes, use o seletor no chat ou o link no navegador.

## Depois do upload
- **Passe a URL pública** para qualquer ferramenta que recebe mídia, como `modify_image`, `animate_image`, `lip_sync` ou `add_captions`.
- **Encontre uploads anteriores** com [`browse_uploads`](https://nodaro.ai/docs/mcp/tools/gallery-and-assets#browse_uploads), que lista os arquivos que você enviou, separados dos resultados que o Nodaro gerou.
- **Mostre um logo num vídeo narrado.** O logo da marca do [Diretor de vídeo](https://nodaro.ai/docs/mcp/video-director) precisa ser uma imagem enviada ao Nodaro, então envie-o primeiro com uma destas ferramentas.

## Frequently asked questions

### Qual ferramenta de upload funciona em todos os clientes MCP?

As ferramentas de solicitação de upload. request_image_upload, request_audio_upload e request_video_upload retornam um link que você abre no seu navegador para soltar o arquivo, então elas funcionam em qualquer cliente e com qualquer tamanho de arquivo.

### Por que prepare_image_upload falha no Claude na web?

O upload pré-assinado precisa de um cliente que consiga enviar o arquivo por conta própria com um comando de shell. O Claude na web e o app do Claude para Android não conseguem acessar o host de armazenamento, então use ali o seletor de upload ou o link de solicitação de upload.

### Posso enviar várias fotos de referência de uma vez?

Sim. Passe max_files, de 1 a 10, para upload_image_widget. O seletor passa a aceitar essa quantidade de arquivos e retorna uma URL pública para cada um.

### Como reutilizo um arquivo que enviei antes?

Peça ao assistente que chame browse_uploads. A ferramenta lista os seus uploads com as URLs deles, que você pode passar para qualquer ferramenta de geração.
