Skip to main content
The MCP server at https://api.rendobar.com/mcp gives an MCP client the whole platform: submit a job, upload a file, poll status, chain a completed job into the next one, and manage API keys. Connect it with one command over OAuth, no API key to copy.

Connect

Your browser opens once to approve access.

What can I do with it?

Call list_job_types first. It returns every active job type fresh, so it never goes stale like a hardcoded list would. Pass type (for example "compose") to get that one job type’s complete parameter schema instead, with per-field documentation: ranges, defaults, units, and usage notes. Agents should do this before authoring a complex payload like a compose timeline. { job: "job_..." } inside submit_job’s inputs chains a completed job straight into the next one today for ffmpeg inputs. For any other job type, pass the prior job’s output URL (from get_job) as a plain URL input instead. A failed call returns isError: true with { error: { code, message, retryable } } instead of throwing, so the agent can react to it. See the error catalogue for codes.

Can I use it from my phone?

A phone has no filesystem the agent can reach, so a media file routes through a page you open yourself.
1

Connect on claude.ai mobile

Settings, Connectors, Add custom connector, paste https://api.rendobar.com/mcp, approve.
2

Ask for the edit

“Trim this video to the first 10 seconds and burn in captions.” Claude calls list_job_types, then upload_media with no files declared, since it can’t read anything off your phone.
3

Tap the upload link

upload_media returns a pageUrl. Claude sends it to you in the chat. Open it, pick the file from your camera roll, and it uploads.
4

Get the result in chat

Claude polls get_upload({ wait: true }) until the asset is ready, calls submit_job with its URL, then get_job({ wait: true }), and replies with the finished clip.

From an agent with shell access

An agent that can run shell commands skips the upload page and PUTs bytes directly.
1

Declare the file

Pass the filename and size. A known size gets you a presigned URL right away: a single PUT under 100 MB, part URLs above it.
2

PUT the bytes

3

Finalize the asset

Returns the ready asset, including its stable url. For a multipart upload, pass parts: [{ partNumber, etag }] collected from each part’s PUT response.
4

Submit the job

Returns { jobId: "job_9c31", status: "waiting" }.
5

Chain a second job off the first

Pass the completed job’s id as the next job’s input. No download, no re-upload.
6

Wait for the result

Blocks up to 45 seconds, then returns output.file.url.

Run the local server for direct disk access

The hosted server can’t read your disk, so even a shell-capable agent goes through the presigned-URL handshake above. @rendobar/mcp, the local stdio server, skips that: its upload_file tool reads a file off disk and uploads it in a single call. It has the same storage tools as the hosted server, plus list_storage_files for finding a path inside a connected bucket. Get an API key at app.rendobar.com, Settings, API keys.
Needs Node 20.10 or later. The server checks at startup and exits with a clear message if it’s older.

How do I limit what it can reach?

Approving a connection grants access to one workspace, and you can take it back. Account, Security lists every app you have connected, what each one can reach, and the workspace it was granted in. Revoking cuts an app off and forces it to ask again from the start. One caveat worth knowing: revoking deletes the grant and every stored token, so the app cannot get new access or renew what it has, but an access token it is already holding stays valid until it expires. That is under an hour. An app connected before 2026-09-13 cannot call list_storage, because storage scopes did not exist when you approved it. Revoke it and connect again to allow Storage.

See also

Last modified on September 18, 2026