Let the user add photos, videos or documents from their phone or computer. Use it when the user wants to post a file that has no public URL, such as a photo on their phone, a file attached in the chat that upload_media cannot read (in ChatGPT, pass attached files to upload_media as attachments instead), or a file you built in a sandbox whose network blocks the get_upload_urls uploadUrl. Never suggest putting the files in a public GitHub repo or a file-sharing link instead. In apps that show MCP Apps widgets, such as ChatGPT and Claude chat, it shows an upload box in the chat, and when the upload finishes the box sends a message listing the public media URLs. In apps that cannot show the box, such as Claude Cowork and Claude Code, it returns status upload_link with uploadUrl, a page the user opens in their browser to upload, and uploadId: give the user the link, wait until they say they finished, then call this tool again with that uploadId to get the media URLs. Pass the media URLs as mediaUrls to create_post, update_post or bulk_schedule_posts. Nothing is uploaded until the user picks files. Accepts JPEG, PNG, WebP, GIF, MP4, QuickTime, PDF, PPT, PPTX, DOC and DOCX, up to 250 MB per file, 50 MB per image and 100 MB per document. Uploaded files are stored at public URLs.