A text-to-speech MCP server powered by Kokoro — gives Claude Code a voice
Project description
Soliloquy
A text-to-speech MCP server powered by Kokoro — gives Claude Code a voice.
One command to install. No config, no API keys, no setup.
Requirements
- macOS, Windows, or Linux
- Python 3.10+
- PortAudio (audio output library)
| Platform | PortAudio Install |
|---|---|
| macOS | brew install portaudio |
| Windows | Bundled with sounddevice (no action needed) |
| Linux | sudo apt install libportaudio2 |
Note: Installation downloads ~2GB of dependencies (PyTorch, model weights). First run also downloads the Kokoro-82M model from HuggingFace.
Quick Start
No install needed (requires uv):
# Install uv if you don't have it:
# macOS: brew install uv
# Windows: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
claude mcp add soliloquy -s user -- uvx soliloquy-tts
Or with pip:
pip install soliloquy-tts
claude mcp add soliloquy -s user -- soliloquy
Restart Claude Code after registering. Claude can now speak.
Scope:
-s userregisters Soliloquy globally so it's available in every project. Use-s local(or omit the flag) to register it for the current project only.
How It Works
Soliloquy uses a hybrid architecture to share a single model across multiple Claude Code sessions:
- First session loads the Kokoro model and starts a local backend server
- Additional sessions detect the running backend and connect as lightweight proxies (near-instant startup, no extra memory)
- If the backend exits, the next session automatically takes over
This is completely transparent — no configuration needed.
Why Soliloquy?
| Cloud TTS (ElevenLabs, OpenAI, etc.) | Soliloquy | |
|---|---|---|
| Privacy | Text sent to cloud | Nothing leaves your machine |
| Cost | $0.18–15/1M chars | Free forever |
| Offline | No | Yes |
| Usage Limits | Quotas / rate limits | Unlimited |
| Latency | 200–500ms (network) | ~50–100ms (local) |
| AI Integration | Developer calls API from code | AI agent decides when to speak |
| Setup | API keys + billing | One command, no config |
Tools
speak
Synthesize and play text aloud.
| Parameter | Default | Description |
|---|---|---|
text |
(required) | Text to speak |
voice |
af_heart |
Voice ID (see below) |
speed |
1.0 |
Speed multiplier (0.5 - 2.0) |
lang |
en-us |
Language code |
read_aloud
Read a file aloud directly — Claude just passes the file path, no need to process the content first. Supports plain text and markdown.
| Parameter | Default | Description |
|---|---|---|
path |
(required) | Path to the file to read |
voice |
af_heart |
Voice ID (see below) |
speed |
1.0 |
Speed multiplier (0.5 - 2.0) |
lang |
en-us |
Language code |
list_voices
Returns all available voices with language and gender metadata.
Voices
28 voices across American and British English:
| Voice | Accent | Gender |
|---|---|---|
| af_heart | American | Female |
| af_alloy | American | Female |
| af_aoede | American | Female |
| af_bella | American | Female |
| af_jessica | American | Female |
| af_kore | American | Female |
| af_nicole | American | Female |
| af_nova | American | Female |
| af_river | American | Female |
| af_sarah | American | Female |
| af_sky | American | Female |
| am_adam | American | Male |
| am_echo | American | Male |
| am_eric | American | Male |
| am_fenrir | American | Male |
| am_liam | American | Male |
| am_michael | American | Male |
| am_onyx | American | Male |
| am_puck | American | Male |
| am_santa | American | Male |
| bf_alice | British | Female |
| bf_emma | British | Female |
| bf_isabella | British | Female |
| bf_lily | British | Female |
| bm_daniel | British | Male |
| bm_fable | British | Male |
| bm_george | British | Male |
| bm_lewis | British | Male |
Languages
en-us (default), en-gb, ja, zh, es, fr, hi, it, pt-br
Uninstall / Update
To unregister from Claude Code:
claude mcp remove soliloquy -s user
If using uvx, clear the cache to force a fresh download on next run:
uv cache clean soliloquy-tts
If using pip:
pip uninstall soliloquy-tts
Development
git clone https://github.com/bstovall/soliloquy.git
cd soliloquy
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e .
Run the benchmark:
python scripts/benchmark_tts.py
License
MIT
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 soliloquy_tts-0.5.0.tar.gz.
File metadata
- Download URL: soliloquy_tts-0.5.0.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a77edf0b9be28d51ae98e7a268d82dc3098fc36296b9914714b85e147d3faadd
|
|
| MD5 |
005c1acca64db32248dbc441b07860c1
|
|
| BLAKE2b-256 |
552453cd2770b0195bab091bb2f698d8b6d2ccb8c20370a10a280f513844730b
|
File details
Details for the file soliloquy_tts-0.5.0-py3-none-any.whl.
File metadata
- Download URL: soliloquy_tts-0.5.0-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0086d9c6e406d7338b7e634f0442a6fe37119d1c13dc547695052f5d1986e8b
|
|
| MD5 |
ac7b9883553f67be6fc23f6c7cf50a7a
|
|
| BLAKE2b-256 |
de035262bdd045fdb53e5b36d02b9c65b8f38506ff91ce19111266fd94c1dffa
|