MCP server for Supertonic 3 on-device text-to-speech
Project description
supertonic3-mcp
Local, on-device TTS for Claude & Cursor, powered by Supertonic 3. No API key. No cloud. An internal tool open-sourced by Halozen — we build AI compliance intelligence for construction.
Not affiliated with Supertone Inc.
Expose speak, list_voices, and list_expressions to Claude Desktop, Cursor, or any MCP client over STDIO.
Quick start (TTHW < 3 min)
git clone https://github.com/nextic-tech/supertonic3-mcp && cd supertonic3-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# Optional: pre-download model for offline use (~400MB)
supertonic3-mcp preload
# Run MCP server (STDIO)
supertonic3-mcp
Cursor MCP config
Add to .cursor/mcp.json (or Cursor Settings → MCP):
{
"mcpServers": {
"supertonic3": {
"command": "/absolute/path/to/supertonic-tts/.venv/bin/supertonic3-mcp",
"args": []
}
}
}
First server start downloads the Supertonic model into ~/.cache/supertonic3/ unless you ran preload first.
Tools
| Tool | Description |
|---|---|
speak |
Synthesize text to a WAV file; returns absolute path + metadata |
list_voices |
Built-in voices (voice_id, gender) |
list_expressions |
Inline tags (<laugh>, <breath>, …) with descriptions |
speak parameters
text— 1–5000 characters; expression tags allowedvoice_id— optional (M1,F1, …)language— ISO 639-1 (en,ko,ja, …). For non-English text, always setlanguage=. Defaults toen.speed—0.7to2.0(SDK range)play— iftrue, plays audio on this machine viaafplay(macOS) oraplay(Linux). Unsupported on Windows.
WAV files are written to /tmp/supertonic_*.wav (macOS/Linux). Windows is not supported for synthesis output paths in v1.0.
Example return:
Audio saved to /tmp/supertonic_abc123.wav (1.4s, voice: M1, lang: en)
Performance (this repo)
Measured on Apple M3, supertonic 1.3.1 — see benchmark/results.md.
| Scenario | Median FSL |
|---|---|
| Warm (model loaded) | ~0.82s |
Cold (new TTS() per call) |
~0.81s |
FSL = time from synthesize() through WAV written (no streaming, no play=True).
Re-run: python benchmark/run.py
Offline use
supertonic3-mcp preload
Downloads ONNX weights atomically to ~/.cache/supertonic3/ and prints SHA256 checksums. After preload, synthesis works without network access.
Development
pip install -e ".[dev]"
pytest
Tests mock the Supertonic SDK (no network in CI).
Coming in v1.1
listen()— Whisper speech-to-text (pip install supertonic3-mcp[stt])- SSE transport + Docker image for remote agents
- PyPI publish workflow
License
MIT (this package). Supertonic SDK is MIT; model weights use OpenRAIL-M.
Disclaimer
AI-generated speech is not a substitute for certified safety, legal, or medical guidance. For demonstration purposes only.
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 supertonic3_mcp-1.0.0.tar.gz.
File metadata
- Download URL: supertonic3_mcp-1.0.0.tar.gz
- Upload date:
- Size: 130.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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 |
aecd4893a9f730975a9b8cbd8efcd295b9f0708414c0ddd47109ad38720e7581
|
|
| MD5 |
1ce1cbd40364b6ccb60556df104e7cb8
|
|
| BLAKE2b-256 |
a04e4be197e9e0fcac5b156d96e7ece9edbae4c804abd8bb22c1d85d1d543c06
|
File details
Details for the file supertonic3_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: supertonic3_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","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 |
3689a517c9c5d8a000c9783bdfc47bda8a2e00ac2dd177e736d91b719b299d4f
|
|
| MD5 |
91539add9e504c20a9e133c86e041df4
|
|
| BLAKE2b-256 |
6945515442727b94a4e150aca390dbb4c70a98085c90e49bec23007fabf03cb0
|