ChirpyDevelopers Open Chirpy

Actions / Media

Start upload

Read and createstart_upload

Starts adding a file (image, video or PDF) to the Media Library. Checks the type, size and storage, then returns a link that works for a limited time. Send the file's bytes to it with an HTTP PUT and the headers given, then call finish_upload. Needs a client that can send a PUT, such as a script, curl or Claude Code.

Needs the write scope. Creates or changes things in Chirpy. Publishes nothing.

Inputs

InputTypeRequiredDescription
fileNamestringYesThe file's name, for example launch-film.mp4
fileSizeintegerYesThe file's exact size in bytes
mimeType"image/jpeg" | "image/png" | "image/gif" | "image/webp" | "image/svg+xml" | "video/mp4" | "video/mpeg" | "video/quicktime" | "video/webm" | "video/x-msvideo" | "video/x-matroska" | "application/pdf"YesThe file's type

REST

curl https://chirpy.me/api/v1/start_upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"fileName":"...","fileSize":123,"mimeType":"image/jpeg"}'

MCP

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "start_upload",
    "arguments": {
      "fileName": "...",
      "fileSize": 123,
      "mimeType": "image/jpeg"
    }
  }
}

MCP hints: readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false.