local-tts-mcp

SmartLittleApps/local-tts-mcp

3.2

If you are the rightful owner of local-tts-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A local text-to-speech MCP server providing high-quality, privacy-first TTS synthesis using macOS Say and Kokoro TTS engines.

Tools
  1. synthesize_text

    Convert text to speech with customizable options.

  2. list_voices

    List available voices with filtering options.

  3. health_check

    Check engine availability and system health.

  4. play_audio

    Play generated audio files with control options.

TextToSpeech-MCP Server

A local text-to-speech MCP server providing high-quality, privacy-first TTS synthesis using macOS Say and Kokoro TTS engines.

Features

  • Local Processing: All TTS synthesis happens locally - no data sent to external services
  • Multiple Engines:
    • macOS Say (fast, built-in, 23 voices, multiple languages)
    • Kokoro TTS (high-quality neural synthesis, 21 voices, 8 languages)
  • MCP Integration: Works with Claude Desktop and other MCP-compatible clients
  • Multi-language Support: 43 languages including English, Spanish, French, Japanese, Chinese, and more

Quick Start

1. Install Dependencies

npm install

2. Build the Project

npm run build

3. Test the Server

npm start

4. Configure Claude Desktop

Add this configuration to your Claude Desktop settings:

{
  "mcpServers": {
    "local-tts": {
      "command": "node",
      "args": ["./dist/server.js"],
      "cwd": "/path/to/your/TextToSpeech-MCP"
    }
  }
}

Available Tools

synthesize_text

Convert text to speech with customizable options.

Parameters:

  • text (required): Text to convert (max 50,000 characters)
  • voice (optional): Voice name (e.g., "Alex", "Samantha", "Daniel")
  • engine (optional): "macos", "kokoro", or "auto" (default: "auto")
  • outputFormat (optional): "aiff", "wav", "mp3", "m4a" (default: "aiff")
  • speed (optional): Speed multiplier 0.1-3.0 (default: 1.0)
  • quality (optional): "fast", "balanced", "high" (default: "balanced")

list_voices

List available voices with filtering options.

Parameters:

  • engine (optional): "macos", "kokoro", "all" (default: "all")
  • language (optional): Language filter (e.g., "en-us", "es", "fr")
  • gender (optional): "male", "female", "neutral"

health_check

Check engine availability and system health.

play_audio

Play generated audio files with control options.

Parameters:

  • audioPath (optional): Path to audio file (defaults to most recent)
  • action (optional): "play", "pause", "stop", "resume" (default: "play")

Example Usage

Basic Synthesis

Use the synthesize_text tool to say "Hello, world!" using the default voice.

Voice Selection

List all English female voices, then use one to synthesize a greeting.

Multi-language

Synthesize "Bonjour le monde" using a French voice.

Development

Available Scripts

  • npm run build - Build TypeScript
  • npm run dev - Build with watch mode
  • npm start - Start the server
  • npm test - Run tests (coming soon)
  • npm run lint - Run ESLint
  • npm run format - Format code with Prettier

Environment Variables

  • TTS_OUTPUT_DIR - Audio output directory (default: ./output)
  • TTS_TEMP_DIR - Temporary files directory (default: ./temp)
  • TTS_ENGINE - Default engine: "macos", "kokoro", "auto" (default: "auto")
  • TTS_QUALITY - Default quality: "fast", "balanced", "high" (default: "balanced")

Status

āœ… Phase 1 Complete: macOS Say engine with 23 voices āœ… Phase 2 Complete: Kokoro TTS integration with 21 voices šŸ“‹ Phase 3 Planned: Batch audio playback and advanced features

Testing with MCP Inspector

npx @modelcontextprotocol/inspector node dist/server.js

Then open http://localhost:5173 to test the server interactively.

Requirements

  • macOS (for macOS Say engine)
  • Node.js 18+
  • TypeScript

License

MIT