Reedapt MCP server
Official# Reedapt MCP server
Dub video and audio into other languages from any AI tool that speaks the [Model Context Protocol](https://modelcontextprotocol.io): Claude Code, Claude Desktop, Cursor and others. Each speaker keeps their own voice, and the background sound is kept.
## Set up
Make an API key under **Developers** in [Reedapt](https://dub.reedapt.com/developers). Test keys are free and dub the first 60 seconds of a video with a watermark; live keys come with paid plans and use plan minutes.
**Claude Code**
```bash
claude mcp add reedapt --env REEDAPT_API_KEY=rk_test_... -- npx -y reedapt-mcp
```
**Claude Desktop, Cursor and other clients** (the `mcpServers` section of the client's config file):
```json
{
"mcpServers": {
"reedapt": {
"command": "npx",
"args": ["-y", "reedapt-mcp"],
"env": { "REEDAPT_API_KEY": "rk_test_..." }
}
}
}
```
Node.js 18 or later.
## Tools
| Tool | What it does |
|---|---|
| `list_languages` | The languages this key's plan can dub into |
| `get_usage` | The plan, minutes left, or a month's usage report |
| `dub_media` | Upload a local file or a public link and start one dub per language |
| `get_dub` | A dub's status, stage and progress |
| `wait_for_dub` | Wait up to 4 minutes for a dub to finish; call again to keep waiting |
| `list_dubs` | The account's API dubs, newest first |
| `get_dub_files` | Download links for a finished dub |
| `get_transcript` | The dub's lines, original and dubbed, 200 at a time |
| `get_subtitles` | SRT or WebVTT, in the dub's language or the original's |
| `cancel_dub` | Stop a dub that hasn't finished; its minutes are returned |
## The Reedapt Skill
`skill/reedapt/SKILL.md` teaches an AI tool how to dub well with Reedapt: checking languages and minutes first, waiting, handing over the files, and what to say when something fails. To use it in Claude Code, copy the `skill/reedapt` folder into `~/.claude/skills/`.
## Links
- [API reference](https://docs.reedapt.com)
- [Node.js library](https://www.npmjs.com/package/reedapt)
TDQS
Scored across 10 tools
Each tool has a clearly distinct role across the dubbing lifecycle: usage, starting, polling/waiting, listing, retrieving files/transcripts/subtitles, canceling, and languages. The closest pair, get_dub and wait_for_dub, is well differentiated by status-check versus blocking-wait behavior.
All tool names use consistent snake_case with predictable verb_noun structure (get_usage, dub_media, get_dub, list_dubs, cancel_dub). Even the less common wait_for_dub and dub_media fit the overall convention.
Ten tools is well-scoped for a media dubbing API, covering the full workflow without obvious bloat. Each tool corresponds to a meaningful operation rather than duplicating functionality.
The surface covers the full dubbing lifecycle: checking plan/usage, starting dubs, monitoring progress, waiting, listing dubs, downloading outputs, retrieving transcripts/subtitles, canceling, and listing available languages. No obvious operational gaps are apparent for the stated domain.