muse-tts-embed
Enables Claude to speak text with an embedded audio player, supporting 54 voices, voice cloning, and playback controls, all running locally.
README
<p align="center"> <img src="./banner.png" alt="MUSE TTS Embed" width="800" /> </p>
<p align="center"> <img src="https://readme-typing-svg.demolab.com?font=Montserrat&weight=500&size=22&pause=1200&color=D4AF37¢er=true&vCenter=true&width=980&lines=Your+AI+speaks+%E2%80%94+and+the+voice+stays+in+chat.;Persistent+player+experience%2C+fully+local.;54+voices+on+demand." alt="MUSE TTS Embed tagline" /> </p>
<p align="center"> <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-D4AF37?style=flat" alt="License: Apache 2.0" /></a> <img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat&logo=python&logoColor=white" alt="Python 3.10+" /> <img src="https://img.shields.io/badge/Protocol-Claude%20MCP-000000?style=flat&logo=anthropic&logoColor=white" alt="Claude MCP" /> <img src="https://img.shields.io/badge/TTS-Kokoro--82M-D4AF37?style=flat" alt="Kokoro-82M" /> </p>
<p align="center"> <img src="https://img.shields.io/badge/macOS-Apple%20Silicon-000000?style=flat&logo=apple&logoColor=white" alt="macOS" /> <img src="https://img.shields.io/badge/Windows-supported-0078D4?style=flat&logo=windows&logoColor=white" alt="Windows" /> <img src="https://img.shields.io/badge/Linux-supported-FCC624?style=flat&logo=linux&logoColor=black" alt="Linux" /> <img src="https://img.shields.io/badge/Voices-54-brightgreen?style=flat" alt="54 Voices" /> <img src="https://img.shields.io/badge/Languages-9-brightgreen?style=flat" alt="9 Languages" /> </p>
What Is This?
MUSE TTS Embed gives Claude a persistent audio player — right in the chat. Everything runs on your machine.
Looking for direct audio playback without a player widget? See MUSE TTS Live.
Features
- Embedded Player — play, pause, seek, replay
- Voice Selector — switch between 54 voices without leaving the conversation
- Voice Cloning — drop a WAV, get a clone (~7s)
- Speed Control — 0.5x through 2.0x playback
- Download — save any generation as WAV or MP3
- 3 Engines — Kokoro-82M (~1s), IndexTTS-1.5 (Apple Silicon cloning), Chatterbox (cross-platform cloning)
- Fully Local — no cloud APIs, no Docker, no subscription
Quick Start
1. Install dependencies
macOS (Apple Silicon — fastest):
pip install fastmcp mlx_audio
Windows / Linux / Intel Mac:
pip install fastmcp kokoro soundfile numpy
On Linux, you also need
espeak-ng:sudo apt install espeak-ng
2. Add to Claude Desktop
Open Settings > Developer > Edit Config and add:
{
"mcpServers": {
"muse-tts-embed": {
"command": "python3",
"args": ["/path/to/muse-tts-embed/server.py"]
}
}
}
Restart Claude Desktop.
3. Speak
Ask Claude to speak anything. Try: "Say hello in a warm voice" or "Read this paragraph aloud"
Voice Cloning
Add your own reference WAV files to the voices/ directory. They'll be detected on startup.
voices/
my_narrator.wav
interview_voice.wav
Then ask Claude: "Speak this using the my_narrator clone"
Or use ref_audio to point to any WAV in voices/ or ~/Downloads/:
"Read this aloud using the reference audio at ~/Downloads/sample.wav"
Configuration
| Variable | Default | Description |
|---|---|---|
KOKORO_VOICE |
am_onyx |
Default voice ID |
KOKORO_SPEED |
1.0 |
Default speed (0.5 - 2.0) |
MUSE_AUTH_TOKEN |
(required for HTTP) | Bearer token for HTTP mode |
MUSE_PORT |
3001 |
HTTP server port |
MUSE_HOST |
127.0.0.1 |
HTTP bind address |
HTTP Mode (Web / Mobile)
For Claude Web or Mobile, run the server in HTTP mode behind a tunnel:
export MUSE_AUTH_TOKEN=your-secret-token
python3 server.py --http
Then expose via tunnel (ngrok, cloudflared) and add the URL to Claude's MCP settings.
Browsers block auto-play. The player shows a "click to play" hint — tap play to start.
Voices
54 preset voices across 9 languages (American English, British English, Spanish, French, Hindi, Italian, Japanese, Portuguese, Mandarin).
<details> <summary><strong>Full voice list</strong></summary>
| Language | Female | Male |
|---|---|---|
| American English | af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky | am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa |
| British English | bf_alice, bf_emma, bf_isabella, bf_lily | bm_daniel, bm_fable, bm_george, bm_lewis |
| Spanish | ef_dora | em_alex, em_santa |
| French | ff_siwis | -- |
| Hindi | hf_alpha, hf_beta | hm_omega, hm_psi |
| Italian | if_sara | im_nicola |
| Japanese | jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro | jm_kumo |
| Portuguese | pf_dora | pm_alex, pm_santa |
| Mandarin | zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi | zm_yunjian, zm_yunxi, zm_yunxia, zm_yunyang |
</details>
Tools
| Tool | What it does |
|---|---|
muse_speak_embed |
Speak text with embedded player (preset or cloned voice) |
muse_embed_check |
Verify engine, platform, and configuration |
How It Works
Audio is delivered via structuredContent — bypasses model context, no size limit. The player is a self-contained HTML/JS app.
Requirements
- Python 3.10+
- Claude Desktop (latest version with MCP Apps support)
- One of:
mlx_audio(Mac M-series) orkokoro+soundfile(any platform) - ~200MB disk space (model downloads on first use)
<details> <summary><strong>Troubleshooting</strong></summary>
Player shows "Generating..." but nothing happens:
Check that the TTS engine is installed. Run muse_embed_check to verify status.
No sound on Web/Mobile: Browsers block auto-play. Click the play button.
"No TTS engine found": See installation above.
Model download is slow: First run downloads ~200MB.
"Text too long" error: Max 2000 characters per generation (~2 minutes of speech). Break longer text into parts.
Player doesn't appear: Update Claude Desktop to the latest version with MCP Apps support.
</details>
License
Licensed under the Apache License, Version 2.0.
Copyright 2026 The Funkatorium (Falco & Rook Schäfer). Protected under German Copyright Law (Urheberrechtsgesetz). Jurisdiction: Amtsgericht Berlin.
<p align="center"> <a href="https://linktr.ee/musestudio95"> <img src="https://img.shields.io/badge/Built%20by-The%20Funkatorium-D4AF37?style=flat" alt="Built by The Funkatorium" /> </a> </p>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.