TTSForFree

io.github.CalmNguyen由 GitHub 帳號 CalmNguyen 發布v1.0.0更新於 Oct 29, 2026

Generate AI voices, text-to-speech, subtitles, transcription, and video localization.

已驗證Streamable HTTP可網頁執行溝通與協作媒體與設計

概覽

AI 產生的概覽

遠端語音合成服務,讓助理產生 AI 配音、多角色播客、對齊字幕的音訊、轉錄文字與影片配音。

可以做什麼
  • 瀏覽音色庫:列出語言、依語言/性別/關鍵字搜尋音色,查看音色詳情、收藏與個人音色。
  • 管理收藏,並依文字描述設計新的個人音色。
  • 產生語音:單音色 MP3、多音色合併 MP3,或依 SRT/WebVTT 時間軸對齊的音訊。
  • 追蹤任務:查詢狀態、列出最近任務、取得分段音訊詳情。
  • 轉錄媒體:取得一次性上傳連結上傳本機檔案,取得含時間戳的 SRT。
  • 影片在地化:估算點數、將一支影片配音成多種語言並查看各語言結果。
適用情境
適合需要旁白、播客或對話音訊、與字幕同步的配音、語音轉文字,或把影片自動配音成其他語言,並希望在助理內完成這些工作的情境。
執行需求
遠端 Streamable HTTP 端點,無需安裝。以 OAuth 登入,不支援 OAuth 的用戶端可用 X-API-Key 標頭。需要 TTSForFree 帳號,含免費方案,付費產生會消耗帳號點數。上傳透過一次性連結(HTTP PUT,最大 2 GB)。
安裝前請注意
產生、轉錄與配音會消耗帳號點數,大量任務前應先查看帳號狀態與費用估算。多個工具會寫入資料:收藏、音色設計(佔用配額名額)、上傳與配音任務。文字、字幕與上傳的媒體會傳送給第三方服務處理。API 金鑰應視為機密保管。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 TTSForFree,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.CalmNguyen%2Fttsforfree/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ttsforfree": {
      "type": "http",
      "url": "https://api.ttsforfree.com/mcp"
    }
  }
}

README

TTSForFree 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.

A free plan is included. Paid generation uses your TTSForFree credits.

Connect

Claude (claude.ai, Desktop, mobile)

  1. Settings → Connectors → Add custom connector
  2. URL: https://api.ttsforfree.com/mcp
  3. Click Connect, sign in to TTSForFree and allow access.

Claude Code

bash
claude mcp add --transport http ttsforfree https://api.ttsforfree.com/mcp

Then run /mcp → ttsforfree → Authenticate. With an API key instead:

bash
claude mcp add --transport http ttsforfree https://api.ttsforfree.com/mcp \  --header "X-API-Key: YOUR_API_KEY"

Cursor, VS Code and other clients

json
{  "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)

bash
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 ClaudeTools 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)

ToolTypeWhat it does
list_languagesreadAll supported languages and their codes.
list_voicesreadSearch voices by language, gender, provider and keywords ("warm narrator").
get_voice_detailsreadPersona, use case, accent, styles, preview audio and credit cost of one voice.
list_favorite_voicesreadThe user's favorite voices, in saved order.
list_my_custom_voicesreadPersonal voices from Voice Design / Voice Clone and the remaining quota.
add_favorite_voicewriteSave a voice to favorites.
remove_favorite_voicewriteRemove a voice from favorites.
design_custom_voicewriteCreate a new personal voice from a text description.
get_account_statusreadPlan, remaining credits, per-request limits and API rate limits.
text_to_speechjobOne text + one voice → MP3 (narration, articles, lessons).
multi_voice_to_speechjobOrdered segments with different voices → one MP3 (podcast, dialogue).
srt_to_speechjobSRT/WebVTT or timed segments → timeline-aligned MP3 + ffmpeg merge commands.
get_job_statusreadPoll a job until SUCCESS and get the audio URL.
list_recent_jobsreadRecent jobs with audio URLs, to reuse instead of paying twice.
get_job_detailreadPer-segment audio of a multi-voice/SRT job (for Remotion and captions).
create_upload_urlwriteOne-time upload URL for a local video/audio file (PUT, up to 2 GB).
transcribe_mediajobVideo/audio → timestamped SRT (speech-to-text).
get_transcriptionreadStatus and SRT of a transcription.
estimate_video_localizationreadCredit estimate to dub a video into several languages.
localize_videojobDub one video into many languages: audio track + dubbed video per language.
get_localization_statusreadProgress 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.

來源:README.md,提交 294189e

工具

21

list_languages

List languages

List every language supported by TTSForFree text-to-speech. Returns language codes to pass to list_voices.

無需輸入參數。

list_voices

Find voices

Search the AI voice catalog for one language. Each result has a `voice` token (v1:...) - pass it unchanged as `voice` to text_to_speech, multi_voice_to_speech or srt_to_speech. Results are sorted by popularity; `can_use=false` means the user's plan cannot use that voice. Prefer the user's favorite or custom voices when they exist.

輸入參數limitquerygenderlanguage必填provideronly_usable

get_voice_details

Voice details

Get full metadata for one voice token: persona, use case, accent, pitch, styles, preview audio and credit cost.

輸入參數voice必填

list_my_custom_voices

My custom voices

List the user's personal voices created with Voice Design (from a text prompt) or Voice Clone (from an audio sample), plus the remaining custom-voice quota. Use `voice` from the result in any speech tool.

無需輸入參數。

list_favorite_voices

My favorite voices

List the voices the user marked as favorites, in their saved order. Check this first when the user did not name a voice.

無需輸入參數。

add_favorite_voice

Add favorite voice

Save a voice to the user's favorites (only when the user asks).

輸入參數voice必填

remove_favorite_voice

Remove favorite voice

Remove a voice from the user's favorites (only when the user asks).

輸入參數voice必填

design_custom_voice

Design a custom voice

Create a new personal AI voice from a natural-language description (Gemini Voice Design). Uses one slot of the user's custom-voice quota - confirm with the user first. Good for a unique narrator or a character voice in a video/podcast. Returns the new `voice` token.

輸入參數gender必填prompt必填display_name必填language_code必填

get_account_status

Account status

Show the user's plan tier, remaining characters/credits, max characters per request, max blocks per multi-voice/SRT job and API rate limits. Call before large jobs.

無需輸入參數。

text_to_speech

Text to speech

Convert one text into one MP3 with one voice. Use for narration, voiceover scripts, articles, lessons, announcements or any audio whose length can follow the speech. Consumes credits (characters x voice rate). Returns job_id, status and audio_url when ready.

輸入參數text必填pitchvoice必填wait_seconds

multi_voice_to_speech

Multi-voice audio (podcast / dialogue)

Render ordered segments, each with its own voice, into ONE merged MP3. Use for podcasts, dialogues, interviews, audio dramas or explainer videos with several speakers when there are no fixed timestamps. Consumes credits.

輸入參數segments必填wait_seconds

srt_to_speech

Subtitles to speech (video voiceover / dubbing)

Create ONE MP3 that follows a subtitle timeline: every cue starts at its timestamp and speech speed auto-fits the cue duration. Use for video voiceover, dubbing translated subtitles, YouTube localization, tutorials and any edit where audio must line up with existing video. Pass either raw `srt` (SRT or WebVTT text) or `segments` with start_ms/end_ms. For several speakers set `speaker_voices` and prefix cue text with '[Name]' or 'Name:'. The resulting MP3 starts at 00:00 of the video, so it can be muxed directly with ffmpeg (commands are returned). Consumes credits.

輸入參數srtvoicesegmentswait_secondsspeaker_voicesmax_speech_ratemin_speech_rate

get_job_status

Job status

Check a speech job created earlier. Returns status (PENDING | SUCCESS | ERROR) and audio_url once SUCCESS. Never guess or fetch an audio URL before SUCCESS.

輸入參數job_id必填job_type必填wait_seconds

list_recent_jobs

Recent jobs

List the user's most recent speech jobs with status and audio URLs, to reuse earlier audio instead of paying again.

輸入參數limitjob_type

get_job_detail

Job segments (for Remotion / editors)

Get a multi_voice_to_speech or srt_to_speech job with every segment: text, voice and its own audio_url, plus the merged audio. Use it to build captions or a Remotion/NLE timeline (one <Sequence> per segment; measure each file's duration in the renderer).

輸入參數job_id必填

create_upload_url

Upload a video/audio file

Get a one-time URL to upload a local video or audio file (mp4, mov, webm, mkv, mp3, wav, m4a...) up to 2 GB. Upload with HTTP PUT of the raw bytes, e.g. `curl -T video.mp4 "<upload_url>"` (valid 15 minutes), then pass `public_url` to transcribe_media or localize_video. Only files uploaded here (or on ttsforfree.com) are accepted; YouTube and other external links are never downloaded. If you cannot run commands, ask the user to upload the file on https://ttsforfree.com/en/video-localization/ and paste the file link.

輸入參數file_name必填file_size_bytes

transcribe_media

Transcribe video/audio to SRT

Speech-to-text for an uploaded video or audio file: returns timestamped SRT (the timeline to rewrite, translate or re-voice with srt_to_speech). Credits are charged per second of media, measured by the server. Use language = the spoken language code from list_languages.

輸入參數language必填media_url必填wait_seconds

get_transcription

Transcription status

Check a transcribe_media job and get its SRT once finished.

輸入參數job_id必填wait_seconds

estimate_video_localization

Estimate video dubbing cost

Estimate the credits to dub one video into one or more languages (speech-to-text + translation + voice + video merge) before running localize_video. Pass video_url (duration is measured) or duration_seconds.

輸入參數targets必填video_urlsource_language必填duration_seconds

localize_video

Dub a video into other languages

Full automatic dubbing of an uploaded video: transcribe once, translate, voice every target language with its own voice and render a dubbed video per language. Each language returns an audio_url (voice track aligned to the original timeline - upload it to YouTube Studio as a multi-language audio track) and a final_video_url. Takes several minutes: returns job_guids immediately; poll get_localization_status. Confirm the cost with estimate_video_localization for long videos.

輸入參數targets必填video_url必填source_language必填original_audio_volume_percent

get_localization_status

Video dubbing status

Status of localize_video jobs: current step, and when Completed the dubbed audio_url, final_video_url and translated SRT for each language.

輸入參數job_guids必填wait_seconds

版本歷史

1
  1. v1.0.0最新Oct 22, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。