Voxdub MCP server
Create a rythmo band from a video with your agent: Claude Code, Codex, Cursor, or any MCP client. The agent uploads the video, starts the transcription, fixes the lines, sets the style, and exports the video.
Requires an active Voxdub plan or a running trial.
What the MCP server does
The MCP server gives your agent direct access to your Voxdub account. It exposes 15 tools to run a project from start to finish.
The agent can upload a video, start automatic transcription with speaker detection, read and fix lines, assign characters, set the look of the band, translate the band, and export the video with the rythmo band burned in.
Every project the agent creates also shows in the Voxdub app, so you can continue the work by hand in the editor.
Who can use it
The MCP server is available with an active Voxdub plan or during a trial. The trial lasts 7 days and needs a card. After that, the plan costs 12.99 EUR per month or 99 EUR per year.
See plansGet an access token
- Sign in to Voxdub and open Settings → Developer.
- Create a personal access token and give it a name (for example "Claude Code").
- Copy the token at once. Voxdub shows it only one time.
- Keep the token secret, like a password. If you lose it, revoke it and create a new one.
Set up your agent
The server uses the Streamable HTTP transport at https://mcp.voxdub.com/mcp. Each request sends the token in the Authorization: Bearer <token> header. Replace <token> with your token.
Claude Code
claude mcp add --transport http voxdub https://mcp.voxdub.com/mcp \
--header "Authorization: Bearer <token>"Codex
# ~/.codex/config.toml
[mcp_servers.voxdub]
url = "https://mcp.voxdub.com/mcp"
bearer_token_env_var = "VOXDUB_TOKEN"Codex reads the token from the VOXDUB_TOKEN environment variable. Set it before you start Codex:
export VOXDUB_TOKEN="<token>"Cursor
{
"mcpServers": {
"voxdub": {
"url": "https://mcp.voxdub.com/mcp",
"headers": {
"Authorization": "Bearer ${env:VOXDUB_TOKEN}"
}
}
}
}Put this file in .cursor/mcp.json (project) or ~/.cursor/mcp.json (global). Cursor reads the token from the VOXDUB_TOKEN environment variable.
OAuth sign-in (claude.ai and ChatGPT connectors) is not available yet. For now, use a client that accepts an Authorization header.
Step-by-step example
You can simply describe the result to your agent. For example:
"With Voxdub, create a rythmo band for scene.mp4 (French, 2 characters), fix the typos, apply the studio style, and export in 9:16."
- 1
Check the account
get_account shows your email, your plan status, and your limits. The agent calls it first.
- 2
Upload the video
create_upload takes the file name, its exact size in bytes, its type (video/mp4, video/quicktime, or video/x-matroska), and the spoken language. It returns a put_url that is valid for 15 minutes. The agent sends the file to that URL, then calls complete_upload, which returns the project_id.
curl -X PUT -H "Content-Type: video/mp4" \ --upload-file scene.mp4 "<put_url>" - 3
Transcribe
transcribe starts automatic transcription. The language is detected automatically, and speaker detection creates one character per voice. You can set min_speakers and max_speakers (1 to 20). The agent follows the job with wait_for_job until finished is true.
- 4
Fix the lines
get_project gives the source band id and the characters. list_lines reads the lines (pages of up to 200). update_lines fixes up to 100 lines at once: text, start_ms, end_ms, and character. assign_character and update_character set the characters, their names, and their colors.
- 5
Set the style
set_band_style applies a preset (standard, large, studio, comic, or reset) or exact settings: font, size, color, scroll speed, lane count, and band height. translate_band can also create bands in 1 to 5 more languages.
- 6
Export
export_video renders the video with the rythmo band burned in, in 16:9, 9:16, or square, at 720p or 1080p, at 24, 25, 30, or 60 frames per second. The remove_voice option removes the original voices.
- 7
Download
When wait_for_job shows the export is done, get_download_url gives a download link that is valid for 1 hour.
Tool reference
| Tool | What it does |
|---|---|
| get_account | Shows the account behind the token, the plan status, and the limits. |
| list_projects | Lists your projects, newest first, with search by title. |
| get_project | Gets one project with its bands (one per language), characters, and style. |
| create_upload | Starts a video upload (mp4, mov, or mkv, up to 5 GB) and returns an upload URL. |
| complete_upload | Finishes the upload, checks the file, and creates the project. |
| transcribe | Starts automatic transcription, with language and speaker detection. |
| list_lines | Lists the lines of a band, ordered by time, with paging. |
| update_lines | Edits up to 100 lines: text, start, end, and character. |
| assign_character | Sets one character on many lines of a band at once. |
| update_character | Renames a character or changes its colors (text, badge, track). |
| set_band_style | Changes the look of the rythmo band, with a preset or exact settings. |
| translate_band | Translates a band into 1 to 5 languages. Each language becomes a new band. |
| export_video | Exports the video with the rythmo band burned in (16:9, 9:16, or square, up to 1080p). |
| wait_for_job | Waits for a job to finish (up to 45 seconds per call) and returns its status. |
| get_download_url | Gets a download link (valid 1 hour) for a finished export. |
Limits
- 1 export running and 2 open jobs at most at the same time, per account.
- Videos up to 5 GB, in mp4, mov, or mkv.
- Exports up to 1080p.
- File upload only: import from a web URL is not available yet.
Video rights
Only upload videos you have the rights to use: your own footage, licensed videos, public domain, or CC BY with credit. Voxdub removes content that infringes rights.
Troubleshooting
401 UNAUTHENTICATED
The token is missing, not valid, expired, or revoked. Check the Authorization: Bearer <token> header, or create a new token.
Create a token402 SUBSCRIPTION_REQUIRED
Your plan is not active. Subscribe or reactivate your plan, then run the tool again. The TRIAL_TRANSCRIPTION_LIMIT code means the trial transcription minutes are used up.
See plans409 MCP_RENDER_LIMIT_REACHED / MCP_JOB_LIMIT_REACHED
One export or two jobs are already running. Wait for them with wait_for_job, then try again.
429 RATE_LIMITED
Too many requests. Wait a few seconds, then try again.