Labsco
MCP SERVER

TTS MCP

by leo9iota

Have the assistant speak its answers aloud through your machine's own speakers.

Speech Synthesis & Transcription
Summary
Speech out of the model and into the room, with one binary.

The useful design choice is aggregation: you configure whichever providers you have keys for, and each becomes a tool, with personas sitting on top so the model picks a voice by name rather than by id. Keys live in a config file outside the repo, so the same binary serves every client on the machine without pasting secrets into each one.

What it is

A Go MCP server that takes text from the model, synthesizes it with a remote or local text-to-speech provider, and pipes the audio straight to the host system's native audio driver.

What you get
  • Playback on the host itself, not a file you have to open afterwards
  • A command tool exposed automatically for each provider you have configured
  • Persona routing — map a semantic name to a provider and voice so the model calls `speak_as_persona` instead of juggling voice ids
  • Generated audio cached to an XDG cache directory, so a repeated line does not cost a second synthesis
  • Provider choice across FishAudio, ElevenLabs, Neets AI, PlayHT, Cartesia, OpenAI, Azure and local APIs
Requirements

Download the prebuilt binary for your OS from the releases page, or build from source with Go 1.22+. The server reads an .env file from your OS configuration directory — %APPDATA%\tts-mcp\.env on Windows, ~/.config/tts-mcp/.env on Linux, ~/Library/Application Support/tts-mcp/.env on macOS — holding a key per provider, such as `FISHAUDIO_API_KEY` or `ELEVENLABS_API_KEY`. The bundled `tts-mcp-config` CLI writes that file for you.