Tapra MCP server
OfficialUses ffmpeg for local media processing: splitting long files into chunks and estimating their cost, burning subtitles into MP4s, converting generated audio between formats (mp3, opus, ulaw/alaw) and writing PCM WAV, editing audio (join, trim, silence removal, loudness normalization, fades), and playing audio files via ffplay.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tapra MCP serverSubtitle interview.mp4 with speaker labels, then translate the subtitles to French"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tapra MCP server
Setup guide for every app: tapra.tn/mcp · API reference: tapra.tn/docs
Use Tapra from Claude Desktop, Claude Code, Cursor, or any MCP client: transcribe Tunisian Derja mixed with French and English, subtitle videos, generate speech and voiceovers, translate, and convert between Arabizi and Arabic script.
The server runs locally over stdio. It reads your media files, calls the Tapra API with your key, and writes results to your output folder. Calls are billed like the API, and every paid tool reports its cost and your remaining balance.
Setup
Create an API key at https://tapra.tn/dashboard.
Install ffmpeg (needed for video, long-file chunking and cost estimates on audio):
winget install Gyan.FFmpeg,brew install ffmpeg, orapt install ffmpeg.Add the server to your client.
Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json):
{
"mcpServers": {
"tapra": {
"command": "npx",
"args": ["-y", "@tapra/mcp"],
"env": {
"TAPRA_API_KEY": "tapra_sk_live_…",
"TAPRA_OUTPUT_DIR": "~/Tapra"
}
}
}
}Claude Code:
claude mcp add tapra -e TAPRA_API_KEY=tapra_sk_live_… -- npx -y @tapra/mcpRelated MCP server: video-summarizer
Tools
Tool | What it does | Billed |
| API health, models, prices, balance, output folder, ffmpeg check | free |
| Balance, total spent, and the 10 latest charges for your key | free |
| The Tapra voices and what each sounds like | free |
| Transcribe audio or video to txt / srt / vtt / json, optional speaker labels | per minute |
| Subtitles for a video, readable cue lengths, optional burned-in MP4 | per minute |
| Who spoke when, without a transcript | per minute |
| Speak Derja / Arabizi / French / English with a Tapra voice, effect tags, 19 formats | per character |
| Narration from a script, or dubbing from an SRT, on one timeline; writes the track, per-line clips and | per character |
| Derja ↔ English / French / MSA | per character |
| Translate an SRT/VTT, keeping every timing and speaker label (batched) | per character |
| Play a file on this computer's speakers (or stop playback) | free |
| When is a word or phrase said? Word-level times from a JSON transcript | free |
| Join, trim, remove silences, normalize loudness, fade, convert | free |
| Accepted language names | free |
| Arabizi ↔ Arabic script | per character |
Example prompts:
"Subtitle ~/Videos/interview.mp4 with speaker labels and burn them in."
"Write a 30-second Derja ad for a coffee shop, then make a voiceover with a warm female voice."
"Narrate this script with Salma, then lay it onto ~/Videos/promo.mp4."
"Subtitle interview.mp4, translate the subtitles to French, and dub it with Fahmi."
"Where does she say 'el budget' in interview.json? Cut 5 seconds around it and normalize to -14 LUFS."
Voices
Voice | Sounds like |
| Mature woman. Warm, grounded, everyday Tunisian. |
| Younger woman. Lighter and brighter, conversational. |
| Man with a big, sharp (aigu) voice that carries. |
| Middle-aged man. Normal, natural male voice. |
| Young man. Light and energetic. The default. |
Speech is always pronounced the Tunisian way (loanwords and Arabizi). Effect tags go inline
and are not billed: [euh] hesitation, [aaa] long filler, [hmm], [ahem] throat clear,
[ouf] sigh, [breath] out-breath, [stutter] (right before the word to stutter), e.g.
"[euh] ma na3rafch, [breath] khalli nchouf". Unknown tags are refused before any charge.
quality: "flash" uses the same voices about 5x faster and cheaper. Voice cloning is not
currently available; the server tells the model so, and it should offer these voices instead.
Audio formats
format on text_to_speech, create_voiceover and edit_audio: wav (default, lossless) or one of
the 18 ElevenLabs-style formats: mp3_22050_32, mp3_44100_32/64/96/128/192,
pcm_8000/16000/22050/24000/44100 (16-bit WAV at that rate), ulaw_8000 / alaw_8000
(G.711 telephony, in WAV), opus_48000_32/64/96/128/192 (Ogg Opus). pcm needs nothing extra;
mp3, opus, ulaw and alaw need ffmpeg.
Progress
speech_to_text, transcribe_video, create_voiceover, translate_subtitles and edit_audio
send MCP progress notifications (per chunk, line or batch) when the client asks for them, so long
jobs show progress and do not time out.
Voiceover manifest
create_voiceover writes a folder you can hand to a video tool:
voiceover_20261027-142233-a1b2/
voiceover.wav full narration
manifest.json { duration, segments: [{ index, text, start, end, clip }] }
clips/001.wav … one clip per lineWith srt_path, timing: "fit" asks the model to make each line last as long as its subtitle,
which is what dubbing needs. timing: "natural" keeps natural pacing and warns when a line
spills into the next one.
Configuration
Variable | Default | Meaning |
| required | Your |
| read from tapra.tn | Force an API origin (e.g. |
|
| Website serving the price list, balance, and the current API address |
|
| Where generated files go; outputs can't be written anywhere else |
| home folder | Input files must be inside this folder; relative paths resolve here |
|
|
|
|
| Largest file returned inline in |
| none | Refuse any single call estimated above this amount |
|
| Path to ffmpeg if it is not on |
|
| Per-request timeout |
| ffplay, then the system player | Program |
Without TAPRA_API_URL, the server asks TAPRA_SITE_URL/api/openapi for the current API
address, so moving the model host needs no client change.
File safety: inputs outside TAPRA_BASE_PATH (including through symlinks) and outputs
outside TAPRA_OUTPUT_DIR are refused (tools that work on results, like play_audio and
edit_audio, also accept files in the output folder or tapra://output/... URIs), and an existing file is never replaced (take.wav
becomes take-1.wav). A missing input gets "did you mean" suggestions from the same folder.
Every file a tool makes can be re-read as an MCP resource, tapra://output/<path>.
Every paid call sends a fresh Idempotency-Key, so automatic retries are never charged twice.
Files longer than 15 minutes are split into chunks; with speaker labels on, labels restart in
each chunk (prefixed c1-, c2-, …).
Development
npm install
npm test # builds, then runs the unit, path-safety and end-to-end tests against a mock API
npx @modelcontextprotocol/inspector node dist/index.jsTests need Node.js 22+ and ffmpeg (video and long-file tests are skipped without it). They never call the real Tapra API.
Issues and pull requests are welcome. For questions about your account or billing, write to contact@tapra.tn.
License
MIT. The server is open source; the Tapra models it calls are a paid API.
This server cannot be deployed
Maintenance
Related MCP Connectors
Transcribe, subtitle, dub and lip-sync media; create speech, voices, images and thumbnails.
Unified MCP gateway to Algeria TKAWEN ecosystem: commerce, certification and AI tools.
Search, read, analyze and create HappyScribe transcripts and meeting notes from any MCP client
Bambara AI over MCP: text-to-speech, transcription and translation (Bamanankan + more).
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server that enables audio transcription from files (wav, mp4, mp3, flac) or microphone recording, with dynamic tool selection and enterprise-grade security.113MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that converts videos, audio, and meeting recordings into structured transcripts and summaries with multi-backend ASR and automatic fallback.MIT
- AlicenseAqualityDmaintenanceEnables automated audio restoration, transcription, and speaker diarization via MCP tools for queuing files, monitoring progress, and retrieving speaker-labeled transcripts.9MIT
- AlicenseNot gradedqualityAmaintenanceEnables secure, self-hosted audio transcription through a single MCP interface, letting users route recordings from authorized sources to Microsoft MAI, ElevenLabs Scribe, or Groq Whisper and receive a consistent transcript schema.1Apache 2.0