Kokoro TTS

Un servidor que proporciona capacidades de texto a voz utilizando el motor Kokoro TTS.

Documentación

Servidor MCP Kokoro TTS

Un servidor de Model Context Protocol (MCP) que proporciona capacidades de texto a voz utilizando el motor Kokoro TTS. Este servidor expone la funcionalidad TTS a través de herramientas MCP, lo que facilita la integración de síntesis de voz en tus aplicaciones.

Requisitos previos

  • Python 3.10 o superior
  • Gestor de paquetes uv

Instalación

  1. Primero, instala el gestor de paquetes uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Clona este repositorio e instala las dependencias:
uv venv
source .venv/bin/activate  # On Windows, use: .venv\Scripts\activate
uv pip install .

Características

  • Síntesis de texto a voz con voces personalizables
  • Velocidad de habla ajustable
  • Soporte para guardar audio en archivos o reproducción directa
  • Soporte de reproducción de audio multiplataforma (Windows, macOS, Linux)
  • Backend remoto opcional compatible con OpenAI (p. ej. kokoro-fastapi) para descargar la síntesis a una máquina con GPU

Uso

El servidor proporciona una única herramienta MCP generate_speech con los siguientes parámetros:

  • text (obligatorio): El texto a convertir en voz
  • voice (opcional): Voz a utilizar para la síntesis (por defecto: "af_heart")
  • speed (opcional): Multiplicador de velocidad del habla (por defecto: 1.0)
  • save_path (opcional): Directorio para guardar archivos de audio
  • play_audio (opcional): Si se debe reproducir el audio inmediatamente (por defecto: False)

Ejemplo de uso

from mcp.client import Client

async with Client() as client:
    await client.connect("kokoro-tts")
    
    # Generate and play speech
    result = await client.call_tool(
        "generate_speech",
        {
            "text": "Hello, world!",
            "voice": "af_heart",
            "speed": 1.0,
            "play_audio": True
        }
    )

Backend remoto (compatible con OpenAI)

Por defecto, el servidor ejecuta Kokoro localmente. Si ya ejecutas un endpoint TTS compatible con OpenAI, como kokoro-fastapi (útil para ejecutarlo en una GPU), apunta el servidor a él con variables de entorno — no se necesitan torch/kokoro locales:

VariablePor defectoDescripción
KOKORO_BASE_URL(sin definir)URL base compatible con OpenAI, p. ej. http://localhost:8880/v1. Cuando se define, la síntesis se envía aquí en lugar de ejecutarse localmente.
KOKORO_API_KEYnot-neededToken Bearer, si tu endpoint lo requiere.
KOKORO_MODELkokoroNombre del modelo enviado al endpoint.

Internamente, esto llama a POST {KOKORO_BASE_URL}/audio/speech con el payload estándar de OpenAI (model, input, voice, speed, response_format: wav).

Docker

docker build -t kokoro-tts-mcp .
docker run --rm -i kokoro-tts-mcp

Para usar un backend remoto en lugar de incluir Kokoro:

docker run --rm -i -e KOKORO_BASE_URL=http://host.docker.internal:8880/v1 kokoro-tts-mcp

Dependencias

  • kokoro >= 0.8.4
  • mcp[cli] >= 1.3.0
  • soundfile >= 0.13.1
  • httpx >= 0.27.0

Soporte de plataformas

La reproducción de audio es compatible con:

  • Windows (usando start)
  • macOS (usando afplay)
  • Linux (usando aplay)

Configuración de MCP

Añade la siguiente configuración a tu archivo de configuración de MCP:

{
  "mcpServers": {
    "kokoro-tts": {
      "command": "/Users/giannisan/pinokio/bin/miniconda/bin/uv",
      "args": [
        "--directory",
        "/Users/giannisan/Documents/Cline/MCP/kokoro-tts-mcp",
        "run",
        "tts-mcp.py"
      ]
    }
  }
}

Licencia

MIT © Gianni Sanrochman