MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Local text-to-speech MCP server for Claude Code using Kokoro. Free, offline, no API keys.

Created 3/20/2026
Updated about 6 hours ago
Repository documentation and setup instructions

claude-tts-mcp

Give Claude Code a voice — free, local, no API keys.

A local-first MCP server that adds text-to-speech to Claude Code using Kokoro (82M parameters, Apache 2.0). Runs entirely on your machine. Works offline. Zero cost.

Quick start

# 1. Initialise (downloads model weights ~200MB, one-time)
npx claude-tts-mcp init

# 2. Add to Claude Code
claude mcp add tts -- npx claude-tts-mcp

That's it. Ask Claude to "read that back" or "say hello" and it will speak.

Why this one?

| Project | Engine | Cost | Local | |---|---|---|---| | claude-code-tts | OpenAI TTS | ~$15/M chars | No | | blacktop/mcp-tts | Google Gemini | Pay per use | No | | VoiceMode MCP | OpenAI | Pay per use | No | | claude-tts-mcp | Kokoro | Free | Yes |

Features

  • 54 voices, 8 languages — American/British English, Spanish, French, Hindi, Italian, Japanese, Portuguese, Mandarin
  • Speed control — 0.5x to 2.0x playback
  • Auto-speak mode — Claude reads every response aloud automatically
  • Mute/unmute — toggle TTS on and off without removing the server
  • Fully offline — no network requests after initial model download

Tools

speak

Converts text to speech and plays it through your speakers.

"Read this code explanation back to me"
"Say hello in a British voice"

| Parameter | Type | Required | Description | |---|---|---|---| | text | string | yes | Text to speak | | voice | string | no | Voice ID (default: af_heart) | | speed | number | no | 0.5–2.0 (default: 1.0) |

tts_config

View or change settings at runtime.

"Change voice to bf_emma"
"Set speed to 1.5"
"Turn on auto-speak"
"Mute TTS"

| Parameter | Type | Description | |---|---|---| | enabled | boolean | Enable/disable TTS | | auto | boolean | Auto-speak every response | | voice | string | Default voice ID | | speed | number | Default speed |

Voices

Voice IDs follow the pattern {language}{gender}_{name}:

| Prefix | Language | Example | |---|---|---| | af / am | American English | af_heart, am_michael | | bf / bm | British English | bf_emma, bm_george | | ef / em | Spanish | ef_dora, em_alex | | ff | French | ff_siwis | | hf / hm | Hindi | hf_alpha, hm_omega | | if / im | Italian | if_sara, im_nicola | | jf / jm | Japanese | jf_alpha, jm_kumo | | pf / pm | Portuguese | pf_dora, pm_alex | | zf | Mandarin | zf_xiaobei |

Configuration

Environment variables

Set these in your MCP config for persistent defaults:

{
  "mcpServers": {
    "tts": {
      "command": "npx",
      "args": ["claude-tts-mcp"],
      "env": {
        "TTS_VOICE": "bf_emma",
        "TTS_SPEED": "1.2"
      }
    }
  }
}

Requirements

  • Node.js 18+
  • Python 3.10+
  • macOS (Linux and Windows support planned)

How it works

Claude Code  →  MCP (stdio)  →  claude-tts-mcp (Node.js)
                                        ↓
                                Python venv + Kokoro
                                        ↓
                                   WAV file → afplay → Speakers

On first run, init creates a Python virtual environment at ~/.claude-tts/, installs Kokoro, and downloads model weights from Hugging Face. Each speak call spawns a Python process to generate audio, then plays it through your system speakers.

Licence

Apache 2.0

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-claude-tts-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "mitchthestonky-claude-tts-mcp": { "command": "npx", "args": [ "mitchthestonky-claude-tts-mcp" ] } } }