Skip to main content

A text-to-speech MCP server powered by Kokoro — gives Claude Code a voice

Project description

Soliloquy

PyPI version Python License: MIT PyPI downloads

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 user registers 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://gitlab.com/bw-stovall/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soliloquy_tts-0.6.0.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soliloquy_tts-0.6.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file soliloquy_tts-0.6.0.tar.gz.

File metadata

  • Download URL: soliloquy_tts-0.6.0.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for soliloquy_tts-0.6.0.tar.gz
Algorithm Hash digest
SHA256 d5782081bddbd367a22f8602fcd1520fff7514a913a50a0e2b6ed704984a6ee9
MD5 3c41b245c2603f7bbae1459dcb05b410
BLAKE2b-256 546fd6cc6b36b9147dca6a4b12dce5f0511c986d26119fbb1fcdfd8dab5822b6

See more details on using hashes here.

File details

Details for the file soliloquy_tts-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: soliloquy_tts-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for soliloquy_tts-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 320390c6a7e76291e6a5250cf99727a562a2dc1b1acc9e5a863823922228fd2c
MD5 272a8ff566add2d5ff2f2e5d4e1944ab
BLAKE2b-256 63e0e604af3416836c7184d31a31582b6540a7bcfa366cda2d35fbf2840f465d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page