Skip to main content
@rendobar/mcp is a Model Context Protocol server that gives an AI agent the same operations as the REST API: submit jobs, upload local files, poll status. Run it locally with npx, or connect the remote HTTP server from a browser.

Connect a client

Get an API key at app.rendobar.com under Settings, API Keys. Copy the rb_... value. Then add Rendobar to your client.
Edit the config file, then restart Claude Desktop.
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "rendobar": {
      "command": "npx",
      "args": ["-y", "@rendobar/mcp"],
      "env": { "RENDOBAR_API_KEY": "rb_..." }
    }
  }
}
To check it worked, ask your agent: “What’s my Rendobar balance?” The agent calls get_account and reports your balance. If you see “No Rendobar API key found” in the client’s MCP logs, the env block didn’t reach the server. See Common fixes.
Needs Node 20.10 or later. The server checks at startup and exits with a clear message if it’s older.

Tools

Both servers expose the same five job tools. The local server adds upload_file (reads a file off disk in one call). The remote server swaps in upload_media, which hands you a curl command to upload first.
ToolPurposeReturns
submit_jobSubmit any active job type. inputs maps name to URL, params carries type-specific options.{ jobId, status, url? }
get_jobPoll one job by ID. Shape grows with status (progress while running, cost and output when complete).{ id, type, status, output?, ... }
list_jobsRecent jobs, filterable by status and type.{ jobs[], total }
cancel_jobCancel a waiting or dispatched job. CONFLICT once it’s running.{ id, status: "cancelled" }
get_accountBalance, plan, and limits. No parameters.{ balance, plan, isPro, limits }
upload_fileLocal only. Read a file from disk, upload to ephemeral storage.{ downloadUrl, sizeBytes }
upload_mediaRemote only. Return an upload endpoint and curl command for the user to run.{ uploadEndpoint, instructions, ... }
On a completed job, read output.file.url for the file to play or download, or output.data for a computed answer. The output shape is the same for every job type. Failures come back as isError: true with { error: { code, message } }. Common codes: UNAUTHORIZED, INSUFFICIENT_CREDITS, RATE_LIMITED, VALIDATION_ERROR, NOT_FOUND, CONFLICT, INVALID_JOB_TYPE. submit_job enumerates current job types at server startup. ffmpeg is the only Live type today. See the FFmpeg reference for accepted commands.

Worked example: burn captions

Hand Claude Desktop a local clip and an .srt, then say:
Burn the captions in ~/Videos/clip.srt into ~/Videos/clip.mp4 and give me the result. Use Rendobar.
The agent runs the flow in tool calls you can watch in the panel:
  1. upload_file for the .mp4, then for the .srt. Each returns a downloadUrl.
  2. submit_job with type: "ffmpeg", both URLs as inputs, and a command using -vf subtitles.
  3. get_job every few seconds until status: "complete", then output.file.url.
A 30-second clip renders in about 20 to 40 seconds. Open the link to download. Source and output files live on cdn.rendobar.com for 24 hours, then auto-delete.

Remote server for web and mobile

Browser and phone clients can’t run a local stdio process. Point them at the remote HTTP server at https://api.rendobar.com/mcp instead. Job submission and polling are identical. The one difference: the remote server can’t read your disk, so upload_media returns a curl command you run yourself, then paste the downloadUrl back into the chat. In claude.ai, open Settings, Connectors, Add custom connector. In ChatGPT, open Settings, Apps & Connectors, Custom. Both want:
  • URL: https://api.rendobar.com/mcp
  • Authentication: Bearer token, your rb_... key
Any client supporting the Streamable HTTP transport works the same way. On desktop, prefer the local server. Uploads happen in one tool call instead of a manual curl round-trip.

Common fixes

The env block in your client config didn’t reach the server, or the key has the wrong prefix (it must start with rb_). Verify the config the client actually loaded. In Claude Desktop, Settings, Developer, Open MCP Log Folder shows the launch command and the env vars it received. The server reads credentials in order: --api-key flag, then RENDOBAR_API_KEY, then ~/.config/rendobar/credentials.json.
A client launched from the macOS Dock inherits the GUI environment, not your shell PATH. If you installed Node via nvm or asdf, npx isn’t on that PATH. Use the absolute path from which npx as the command. On Windows, if npx isn’t recognized, set "command": "npx.cmd".
A hang almost always means the server crashed after the handshake. Read stderr in your client’s MCP log (Claude Desktop: mcp-server-rendobar.log; Cursor and VS Code: Output panel, MCP) and look for "level": "error". If the handshake succeeded but tools/list is empty, the package is likely corrupt: run npm cache clean --force then npx -y @rendobar/mcp@latest --version.

See also