Skip to content

FreeTTS

by freetts.org · remote · local (npm) · no sign-in to list tools · v1.0.5 · published by org.freetts

Text to speech in 149 languages: MP3 links from any assistant. Free without an account.

Changes · 5

7 tools: 5 change things and 2 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http freetts https://mcp.freetts.org/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

7 tools

Changes things 5Claude Code: ask
  • dialogue_to_speechTurn a script with several speakers into one audio file, a different FreeTTS voice per speaker, with a pause between lines.Reads text others writeNo findings

    Why it is in this group

    • The input takes a statement or command to run (input.script), which can change anything it can reach.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Turn a script with several speakers into one audio file, a different FreeTTS voice per speaker, with a pause between lines. Write each line as 'Name: text'. Use it for two-host shows, interviews, scenes, language lessons with two speakers. Needs a connected FreeTTS PRO account.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • script_to_tracksRecord a script with exact timing, the way FreeTTS Script mode does: (pause 2) is exactly 2 seconds of silence, (beep), (ding) and (click) play a sound, 'CUE:' lines are read in a …Reads text others writeNo findings

    Why it is in this group

    • The input takes a statement or command to run (input.script), which can change anything it can reach.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Record a script with exact timing, the way FreeTTS Script mode does: (pause 2) is exactly 2 seconds of silence, (beep), (ding) and (click) play a sound, 'CUE:' lines are read in a second voice, 'TRACK: name' starts a new audio file, 'NAME: line' makes a scene with a voice per character. Returns one file with everything plus one file per track. Use it for ear prompter tracks, voiceovers timed to footage, rehearsal tracks, workout or recipe step audio. Needs a connected FreeTTS PRO account.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • suggest_voiceSuggest three FreeTTS voices for a language and a use (audiobook, tutorial, ad, news, children's story, meditation, podcast), with a short reason each.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Suggest three FreeTTS voices for a language and a use (audiobook, tutorial, ad, news, children's story, meditation, podcast), with a short reason each. Use it when the user has not named a voice.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • text_to_speechConvert text to spoken audio with a FreeTTS voice and return a download link to the MP3 (or WAV with a FreeTTS PRO key).Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "convert": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Convert text to spoken audio with a FreeTTS voice and return a download link to the MP3 (or WAV with a FreeTTS PRO key). Use it when the user wants text read aloud, narrated, or saved as an audio file. Without a FreeTTS key: standard voices, up to 2,000 characters a call, a short spoken "FreeTTS" tag at the end, file kept one hour. With a key: the account's plan (PRO: HD and Signature voices, no tag, 10,000 characters a call, files kept 30 days).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • transcribe_audioTurn a recording into text with FreeTTS speech to text.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Turn a recording into text with FreeTTS speech to text. Give a public https URL to an audio file (mp3, wav, m4a, ogg, webm). Needs a connected FreeTTS PRO account.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: true
Only reads 2Claude Code: allow
  • check_usageShow the FreeTTS plan behind this connection and what is left: characters today or this month, requests a minute, HD voices, watermark.No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote it
    Show the FreeTTS plan behind this connection and what is left: characters today or this month, requests a minute, HD voices, watermark. Use it when the user asks about limits, their plan, or why a request was refused.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_voicesList FreeTTS voices for a language or a search word, with the voice id to pass to text_to_speech.No findings

    Why it is in this group

    • The name "list_voices" says "list": a word for reading.
    Description, as the server wrote it
    List FreeTTS voices for a language or a search word, with the voice id to pass to text_to_speech. Says which voices are free and which need a FreeTTS PRO key (HD and Signature). Use it when the user names a language, accent or gender, or asks what voices exist.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write4
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 1.0.5. Values in angle brackets are yours to fill in.

claude mcp add --transport http freetts https://mcp.freetts.org/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__freetts__list_voices",
      "mcp__freetts__check_usage"
    ],
    "ask": [
      "mcp__freetts__suggest_voice",
      "mcp__freetts__text_to_speech",
      "mcp__freetts__dialogue_to_speech",
      "mcp__freetts__script_to_tracks",
      "mcp__freetts__transcribe_audio"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as freetts. Review it before you use it.

Capability tags behind 4 rules
  • mcp__freetts__text_to_speech untrusted-input
  • mcp__freetts__dialogue_to_speech untrusted-input
  • mcp__freetts__script_to_tracks untrusted-input
  • mcp__freetts__transcribe_audio untrusted-input