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.
Metadata
Release files for supertonic3-mcp 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| supertonic3_mcp-1.0.0.tar.gz | 130.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| supertonic3_mcp-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 140.4 kB
Release files / supertonic3_mcp-1.0.0.tar.gz
| Download URL | supertonic3_mcp-1.0.0.tar.gz |
|---|---|
| Size | 130.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aecd4893a9f730975a9b8cbd8efcd295b9f0708414c0ddd47109ad38720e7581
|
|
BLAKE2b-256 checksum How to use checksums |
a04e4be197e9e0fcac5b156d96e7ece9edbae4c804abd8bb22c1d85d1d543c06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / supertonic3_mcp-1.0.0-py3-none-any.whl
| Download URL | supertonic3_mcp-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3689a517c9c5d8a000c9783bdfc47bda8a2e00ac2dd177e736d91b719b299d4f
|
|
BLAKE2b-256 checksum How to use checksums |
6945515442727b94a4e150aca390dbb4c70a98085c90e49bec23007fabf03cb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for supertonic3-mcp 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.