Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
Tools reference

Uploads

Upload your own images, audio and video to Nodaro from any MCP client with an in-chat picker, a browser upload link, or a presigned URL from a shell.

The upload tools bring your own files into Nodaro, so an assistant can use a photo, a voice recording or a clip in the next generation. There are three ways to upload: an in-chat picker, a link you open in the browser, and a presigned URL for clients that can run shell commands. Every upload tool needs the assets:write permission, and uploading costs no credits.

Which method to use

MethodToolsWorks inHow it works
In-chat pickerupload_image_widget, upload_audio_widget, upload_video_widgetClients that display MCP Apps, such as Claude on the webA file picker opens inside the chat. The public URL goes back to the chat on its own.
Browser linkrequest_image_upload, request_audio_upload, request_video_uploadEvery clientYou open a Nodaro link in your browser and drop the file there.
Presigned URLprepare_image_upload, prepare_audio_upload, prepare_video_uploadClients with shell access, such as Cursor, Cline, Claude Desktop and Claude CodeThe assistant sends the file itself with one curl command.

When a file already has a public URL, for example a result of an earlier job, pass that URL directly and skip the upload.

upload_image_widget

Opens a file picker for images inside the chat. On a phone, the picker opens the camera or the photo library. The widget uploads the files and announces their public URLs back to the chat, so you only tap the picker once. upload_audio_widget and upload_video_widget work the same way for audio and video.

Permission: assets:write. Credits: free.

ParameterTypeNotes
max_filesintegerHow many files the picker accepts, from 1 to 10. Default 1. Use more for flows such as several reference photos of one person.
purposestringA short label shown on the upload card, up to 120 characters, for example product image for the catalog app. It also reminds the assistant what the file is for.

Returns: uploads, a list of { upload_url, public_url } pairs, plus upload_url and public_url for the first file. A client that does not show the picker can still show these as plain links.

request_image_upload

Returns a short Nodaro link that you open in any browser to drop an image. It works in every client and at any file size, because the file travels through your own browser. request_audio_upload and request_video_upload do the same for audio and video.

Permission: assets:write. Credits: free.

This tool has no parameters.

Returns: upload_page_url, the page to open, and public_url, the address the file will have. The public URL is known in advance, so the assistant can use it in the next call once you confirm that the upload finished.

prepare_image_upload

Returns a presigned upload URL that the assistant sends the file to with curl. The file never passes through the conversation, so its size does not matter. prepare_audio_upload and prepare_video_upload do the same for audio and video.

Permission: assets:write. Credits: free.

ParameterTypeNotes
mime_typestringRequired. The type of the file you will send.
ToolAccepted mime_type values
prepare_image_uploadimage/png, image/jpeg, image/webp, image/avif, image/heic, image/heif
prepare_audio_uploadaudio/mpeg, audio/mp4, audio/wav, audio/x-wav, audio/webm, audio/ogg, audio/flac, audio/x-flac, audio/aac, audio/x-m4a
prepare_video_uploadvideo/mp4, video/webm, video/quicktime, video/x-matroska

Returns: upload_url, valid for 1 hour, and public_url. The assistant uploads the file with:

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

Then it passes public_url to the next tool, for example as image_url.

Not for Claude on the web

The presigned upload fails in Claude on the web and in the Claude Android app, because they cannot reach the storage host. Use the in-chat picker or the browser link there.

After the upload

  • Pass the public URL to any tool that takes media, such as modify_image, animate_image, lip_sync or add_captions.
  • Find earlier uploads with browse_uploads, which lists the files you uploaded, separate from the results Nodaro generated.
  • Show a logo in a narrated video. The brand logo of the Video Director must be an image uploaded to Nodaro, so upload it with one of these tools first.

Frequently asked questions

Last updated on

On this page