Recommended upload tool for images and videos of any size. TWO STEPS only: (1) call this tool with {filename, contentType, sizeBytes} → get back {uploadId, uploadUrl, uploadToken, instructions}. (2) From your bash sandbox, PUT the file bytes to uploadUrl with the Bearer token — the curl command is in `instructions`. The PUT response is JSON containing the final asset URL you should pass to `create_post_draft.mediaUrls` or `update_post_draft.mediaUrls`. No follow-up MCP call is required — the PUT handler creates the Asset doc, validates magic bytes, and returns everything inline. Always prefer this over the inline `upload_asset` tool for anything larger than ~8KB — bytes-through-tool-args truncates. Pre-charges your storage quota by `sizeBytes` to defeat the concurrent-request TOCTOU race; refunded automatically if you never PUT within 10 min, or if the actual upload size is smaller than declared, or if the PUT fails magic-byte validation. Allowed types: JPEG, PNG, WebP, GIF, MP4, WebM. Per-request hard cap: 50MB on top of your plan's storage limit.
IF YOUR SANDBOX CAN'T REACH `mcp.postnext.io` (e.g. you receive `x-deny-reason: host_not_allowed` from your bash curl), DO NOT KEEP RETRYING — the host isn't addressable from your environment. Tell the user to upload the image manually at https://app.postnext.io/my-assets, then ask them to paste back the asset URL so you can use it in `create_post_draft.mediaUrls`. This is the documented fallback for environments with restricted egress (most notably the Claude.ai chat sandbox, whose allowlist is fixed). Also: do not call this tool again expecting a different uploadUrl — every uploadUrl points at the same host.