MCP server wrapping Kyutai Pocket TTS for Claude Code (in-process, streaming, gap-free playback, multi-language)
Project description
kyutai-tts-mcp
Local-only voice for any MCP client (Claude Code, Claude Desktop, Cursor, etc.) via Kyutai Pocket TTS. No cloud, no API keys, no rate limits.
- 🇫🇷 French (Estelle), 🇬🇧 English (Alba), plus Spanish, German, Italian, Portuguese
- TTFA ~80–200 ms thanks to native streaming via the pocket-tts Python API
- Multi-language at runtime — pass
language=perspeak()call, models load lazily and cache - ~4-5× real-time generation on Apple Silicon / Intel CPU
- Non-blocking
speak(), gap-free playback viasounddevicewrite-mode - ~600 MB venv, ~1 GB model cache per language
Install
uvx kyutai-tts-mcp --help
Or persistent:
uv tool install kyutai-tts-mcp
Then add to your MCP client's .mcp.json:
{
"mcpServers": {
"kyutai-tts": {
"command": "uvx",
"args": ["kyutai-tts-mcp", "--language", "french_24l"]
}
}
}
Replace french_24l with english, spanish_24l, german_24l,
italian_24l, or portuguese_24l for your default language. Per-call
language= overrides this default.
MCP tools
| Tool | Purpose |
|---|---|
speak(text, voice?, language?) |
Generate audio for text and queue it for background playback. Returns immediately, streaming generation. Pass language= to switch model on the fly. |
stop_speaking() |
Stop current playback, drop queue, cancel in-flight generation. |
status() |
Report loaded languages, queue depths, sample rate, last error. |
Configuration
The default language is set via --language (CLI) or KYUTAI_TTS_LANGUAGE
(env var). Other knobs (all env):
KYUTAI_TTS_VOICE— default voice nameKYUTAI_TTS_DEVICE— PyTorch device (defaultcpu;mpsnot supported)KYUTAI_TTS_QUANTIZE— set to1for int8 quantizationKYUTAI_TTS_MAX_TOKENS— max tokens per streaming chunk (default50)
Claude Code users
If you're on Claude Code (CLI, desktop, or via Cursor), you can install
the bundled plugin (MCP wiring + /voice-mode skill) in one shot:
/plugin marketplace add Vincweb/kyutai-tts-mcp
/plugin install kyutai-tts@vincweb-tools
See the main repo for architecture details, voice catalog, and a side-by-side comparison with voxtral-mcp.
Requirements
- macOS (Apple Silicon recommended; Intel works — the model is CPU-only)
- Python 3.10 – 3.13
- ~1 GB free RAM per loaded language
License
MIT. Kyutai pocket-tts itself is under its own permissive licence (see upstream).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kyutai_tts_mcp-0.5.0.tar.gz.
File metadata
- Download URL: kyutai_tts_mcp-0.5.0.tar.gz
- Upload date:
- Size: 97.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88f01ec030574ef349332da5699221d019b334c32074e22c0d27eac3d56d2975
|
|
| MD5 |
6d1fc5f6a11af9f63d3559ac318bb8b9
|
|
| BLAKE2b-256 |
20259d0250bdcdf74cd831f443a86e2f02194ffbcc40f3192acf787a2ce34e04
|
File details
Details for the file kyutai_tts_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: kyutai_tts_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e963e88e9b95c7f0b2b470039064b8de71e95a59df9b0e4d0f6420c2d4dc1d2
|
|
| MD5 |
348703283dd956a7b88b0d30e05de17b
|
|
| BLAKE2b-256 |
9b5617dee04e14de6bdc505dfee1d485be966ee9c6fb03649a250921f7828b3a
|