MCP server wrapping Mistral Voxtral 4B TTS (via mlx-audio) for Claude Code on Apple Silicon — in-process, streaming, gap-free playback
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"voxtral-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# voxtral-mcp Local voice for any MCP client (Claude Code, Claude Desktop, Cursor, etc.) via [Mistral Voxtral 4B TTS](https://huggingface.co/mistralai/Voxtral-4B-TTS-2603) (MLX 4-bit). Higher voice quality than the lightweight pocket-tts route, at the cost of a larger model and slower TTFA. - 9 languages: 🇬🇧 English, 🇫🇷 French, 🇩🇪 German, 🇪🇸 Spanish, 🇮🇹 Italian, 🇵🇹 Portuguese, 🇳🇱 Dutch, 🇮🇳 Hindi, 🇸🇦 Arabic - 4 B parameters, 4-bit MLX quantization (~2.5 GB on disk) - ~2.4× real-time generation on Apple Silicon M-series - **TTFA ~1 s** thanks to native streaming via `mlx-audio` `stream=True` - Non-blocking `speak()`, gap-free playback via `sounddevice` write-mode - ~3 GB resident RAM once the model is loaded > ⚠️ **Licence**: the Voxtral model itself is distributed by Mistral under > **CC BY-NC 4.0** — non-commercial use only. This wrapper's code is MIT. ## Requirements - **macOS Apple Silicon** (M1/M2/M3/M4) — required, MLX doesn't run on Intel - **≥16 GB RAM** recommended (the 4-bit model keeps ~3 GB resident) - Python 3.10 – 3.14 ## Install ```bash uvx voxtral-mcp --help ``` Or persistent: ```bash uv tool install voxtral-mcp ``` Then add to your MCP client's `.mcp.json`: ```json { "mcpServers": { "voxtral": { "command": "uvx", "args": ["voxtral-mcp"] } } } ``` ## MCP tools | Tool | Purpose | |---|---| | `speak(text, voice?, interrupt?)` | Generate audio for `text` and queue it for background playback. Returns immediately, streaming generation. By default, calls queue and play sequentially (including across turns). Pass `interrupt=True` to abort current playback and clear the queue first. | | `stop_speaking()` | Stop current playback, drop queue, cancel in-flight generation. Use for explicit "mute" requests. For mid-turn interruption + new speech, use `speak(..., interrupt=True)` instead. | | `status()` | Report model load state, queue depths, sample rate, last error. | ## Configuration All env vars (in the `…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.