About TTSForFree
TTSForFree is a remote MCP server for Claude and other MCP clients that provides speech, transcription, and video localization tools. It supports multi-voice audio, subtitle-aligned voiceovers, and outputs hosted MP3 URLs.
Key features
- 01Text-to-speech in 100+ languages
- 02Multi-voice audio generation
- 03Subtitle-aligned voiceovers
- 04Audio and video transcription
- 05Multilingual video dubbing
Use cases
- 01Creating narrated audio from articles
- 02Producing a two-host podcast as one MP3
- 03Transcribing video into timestamped SRT
- 04Dubbing video into several languages
MCP support
It exposes 21 tools and four prompts to MCP clients through a remote Streamable HTTP server. Clients can connect with OAuth or an API key.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.ttsforfree.com/mcpclaude mcp add --transport http calmnguyen-ttsforfree https://api.ttsforfree.com/mcp{"mcpServers":{"calmnguyen-ttsforfree":{"type":"http","url":"https://api.ttsforfree.com/mcp"}}}Open in Cursor{"servers":{"calmnguyen-ttsforfree":{"type":"http","url":"https://api.ttsforfree.com/mcp"}}}Open in VS Code{"mcpServers":{"calmnguyen-ttsforfree":{"type":"http","url":"https://api.ttsforfree.com/mcp"}}}{"mcpServers":{"calmnguyen-ttsforfree":{"serverUrl":"https://api.ttsforfree.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMETTSForFree MCP server
Text-to-speech, multi-voice podcasts, subtitle voiceovers, transcription and video dubbing for Claude and any other MCP client. Thousands of AI voices in 100+ languages, returned as hosted MP3 URLs.
- Server URL:
https://api.ttsforfree.com/mcp(Streamable HTTP, remote, nothing to install) - Sign-in: OAuth. Click Connect and sign in to TTSForFree. No API key needed. An API key (
X-API-Keyheader) also works for scripts and agents. - Registry:
io.github.CalmNguyen/ttsforfree - Website: ttsforfree.com · setup guide: ttsforfree.com/en/claude-tts-connector
A free plan is included. Paid generation uses your TTSForFree credits.
Connect
Claude (claude.ai, Desktop, mobile)
- Settings → Connectors → Add custom connector
- URL:
https://api.ttsforfree.com/mcp - Click Connect, sign in to TTSForFree and allow access.
Claude Code
claude mcp add --transport http ttsforfree https://api.ttsforfree.com/mcp
Then run /mcp → ttsforfree → Authenticate. With an API key instead:
claude mcp add --transport http ttsforfree https://api.ttsforfree.com/mcp \
--header "X-API-Key: YOUR_API_KEY"
Cursor, VS Code and other clients
{
"mcpServers": {
"ttsforfree": {
"url": "https://api.ttsforfree.com/mcp"
}
}
}
Add "headers": { "X-API-Key": "YOUR_API_KEY" } if the client does not support OAuth.
Get an API key at ttsforfree.com/en/profile.
Claude API (MCP connector)
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 2048,
"mcp_servers": [{
"type": "url",
"name": "ttsforfree",
"url": "https://api.ttsforfree.com/mcp",
"authorization_token": "YOUR_TTSFORFREE_API_KEY"
}],
"tools": [{ "type": "mcp_toolset", "mcp_server_name": "ttsforfree" }],
"messages": [{ "role": "user", "content": "Read this in a warm British voice: Welcome to our channel!" }]
}'
What you can ask
| Ask Claude | Tools it uses |
|---|---|
| "Read this lesson in a calm British voice from my favorites." | list_favorite_voices → text_to_speech |
| "Turn this article into a 2-host podcast, one MP3." | multi_voice_to_speech → get_job_detail |
| "Translate this SRT to Spanish, keep the timestamps, voice it, give me the ffmpeg command." | srt_to_speech → get_job_status |
| "Transcribe this video into an SRT file." | create_upload_url → transcribe_media |
| "Dub this video into Vietnamese, Spanish and Japanese for YouTube. Cost first." | create_upload_url → estimate_video_localization → localize_video → get_localization_status |
| "Make me a young male voice that reviews stories, southern Vietnamese accent." | design_custom_voice |
Video walkthroughs: ttsforfree.com/en/claude-tts-connector.
Tools (21)
| Tool | Type | What it does |
|---|---|---|
list_languages | read | All supported languages and their codes. |
list_voices | read | Search voices by language, gender, provider and keywords ("warm narrator"). |
get_voice_details | read | Persona, use case, accent, styles, preview audio and credit cost of one voice. |
list_favorite_voices | read | The user's favorite voices, in saved order. |
list_my_custom_voices | read | Personal voices from Voice Design / Voice Clone and the remaining quota. |
add_favorite_voice | write | Save a voice to favorites. |
remove_favorite_voice | write | Remove a voice from favorites. |
design_custom_voice | write | Create a new personal voice from a text description. |
get_account_status | read | Plan, remaining credits, per-request limits and API rate limits. |
text_to_speech | job | One text + one voice → MP3 (narration, articles, lessons). |
multi_voice_to_speech | job | Ordered segments with different voices → one MP3 (podcast, dialogue). |
srt_to_speech | job | SRT/WebVTT or timed segments → timeline-aligned MP3 + ffmpeg merge commands. |
get_job_status | read | Poll a job until SUCCESS and get the audio URL. |
list_recent_jobs | read | Recent jobs with audio URLs, to reuse instead of paying twice. |
get_job_detail | read | Per-segment audio of a multi-voice/SRT job (for Remotion and captions). |
create_upload_url | write | One-time upload URL for a local video/audio file (PUT, up to 2 GB). |
transcribe_media | job | Video/audio → timestamped SRT (speech-to-text). |
get_transcription | read | Status and SRT of a transcription. |
estimate_video_localization | read | Credit estimate to dub a video into several languages. |
localize_video | job | Dub one video into many languages: audio track + dubbed video per language. |
get_localization_status | read | Progress and results (audio URL for YouTube, dubbed video, SRT) per language. |
job tools are asynchronous: they return a job_id, and the client polls the matching status tool until SUCCESS.
Prompts: youtube_multi_language_audio, video_voiceover, podcast_episode, narrate_text.
Privacy and data
- OAuth access is scoped to your TTSForFree account and can be revoked any time from your TTSForFree profile (Connected apps).
- Text, subtitles and uploaded media are processed only to produce the audio, subtitles or video you asked for.
- Privacy policy: ttsforfree.com/en/privacy-policy
Support
Open an issue in this repository or contact us via ttsforfree.com/en/contact.
Registry metadata
server.json is the entry published to the
MCP Registry. To publish an update, bump version in server.json
and push a tag vX.Y.Z (or run the Publish to MCP Registry workflow manually). The workflow signs in with
GitHub OIDC, so no secret is needed.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.