From mcp-tts
Configure TTS voice — first-time setup, toggle categories, set provider/voices, adjust thresholds
How this skill is triggered — by the user, by Claude, or both
Slash command
/mcp-tts:ttsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interactive control panel for the TTS voice system.
Interactive control panel for the TTS voice system.
get_voice_config to read current settingsneedsSetup is true: run the Setup flow (below) firstTTS Voice Config
─────────────────
Provider: [piper] Enabled: [yes]
Threshold: [500 chars]
Piper voice: [en_US-norman-medium] Speed: [1.0]
Categories:
completions ✓ voice: jessica
errors ✓ voice: rob
questions ✓ voice: edward
status ✓ voice: daniel
summaries ✓ voice: daniel
plans ✓ voice: edward
Default voice: edward
AskUserQuestion call. Include current values in each question text so the user knows what they're changing from:{
"questions": [
{
"question": "TTS Provider? (currently: elevenlabs)",
"header": "Provider",
"multiSelect": false,
"options": [
{ "label": "elevenlabs", "description": "Cloud TTS via ElevenLabs API (requires API key)" },
{ "label": "piper", "description": "Local TTS via piper-rs — free, offline, no API key needed" }
]
},
{
"question": "Which categories should be enabled? (Other for: summaries, plans)",
"header": "Categories",
"multiSelect": true,
"options": [
{ "label": "completions", "description": "Task completions" },
{ "label": "errors", "description": "Build/test failures" },
{ "label": "questions", "description": "Blocking questions" },
{ "label": "status", "description": "Progress updates" }
]
},
{
"question": "Default voice? (currently: edward) — ElevenLabs voices only; Piper voice set separately. Other for: archer, donovan, juniper, mark-casual, mark-natural, cassidy, spuds, rob, adam",
"header": "Voice",
"multiSelect": false,
"options": [
{ "label": "edward", "description": "British, deep, composed (default)" },
{ "label": "jessica", "description": "Eloquent, dramatic" },
{ "label": "daniel", "description": "Steady broadcaster" },
{ "label": "austin", "description": "Deep, raspy, authentic" }
]
}
]
}
If the user selected piper as provider, additionally ask:
{
"questions": [
{
"question": "Piper voice? (currently: en_US-norman-medium)",
"header": "Piper Voice",
"multiSelect": false,
"options": [
{ "label": "en_US-norman-medium", "description": "Norman — direct, clear (61 MB)" },
{ "label": "en_US-l2arctic-medium", "description": "L2Arctic — calm, steady (73 MB)" },
{ "label": "en_US-kusal-medium", "description": "Kusal — alternative (60 MB)" }
]
}
]
}
set_voice_config callspeak("TTS settings updated.", category: "status")When get_voice_config returns needsSetup: true:
AskUserQuestion to ask them to paste their key:
setup_tts with the key (ElevenLabs only)speak("Voice setup complete. Welcome to TTS mode.", category: "completions") to test itedward, daniel, jessica, austin, archer, donovan, juniper, mark-casual, mark-natural, cassidy, spuds, rob, adam
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub stitts-dev/mcp-tts