Upload a local image file to S3-compatible storage (Cloudflare R2, AWS S3, MinIO, DigitalOcean Spaces) and return the public URL. Use whenever the user asks to "upload this image", "host this file", "get a public URL for X", "put this image online", "upload to R2", "upload to S3", or wants to make a local image accessible via URL. Works with any image file already on disk — use /generate-image-gemini first if the image needs to be generated.
Upload a local image file to the configured S3-compatible storage using the upload_image_s3 MCP tool and return the public URL.
Get the file path.
generate_image_gemini result in this conversation.Verify the file exists. Before calling the tool, use a quick Bash call (test -f <path>) if there's any doubt — it's cheaper to fail fast with a clear message than to wait for the MCP error.
Decide on a key (optional).
images/<timestamp>-<filename>. Use this unless the user has a reason to override.avatars/user-123.pngkeyCall the tool. Use mcp__mcp-media-toolkit__upload_image_s3 with file_path (and key if overriding).
Report the URL. The tool returns the bucket, key, and public URL. Show the user the public URL prominently — that's what they actually need. Mention the bucket/key only if relevant.
S3_ENDPOINT, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_BUCKET, and S3_PUBLIC_URL in their environment. Point them at the project README's Configuration section.PutObject on the target bucket.S3_BUCKET.S3_PUBLIC_URL + "/" + key. If the returned URL doesn't open in the browser, the issue is usually that the bucket isn't publicly readable or the S3_PUBLIC_URL is wrong — not the upload itself.