Speech MCP Server

Integrations

  • Uses the ONNX runtime to run the Kokoro TTS model, enabling high-quality text-to-speech conversion without requiring an API key.

Servidor MCP de voz

Un servidor de protocolo de contexto de modelo que proporciona capacidades de conversión de texto a voz utilizando el modelo Kokoro TTS.

Configuración

El servidor se puede configurar utilizando las siguientes variables de entorno:

VariableDescripciónPor defectoRango válido
MCP_DEFAULT_SPEECH_SPEEDMultiplicador de velocidad predeterminado para texto a voz1.10,5 a 2,0

En el cursor:

{ "mcpServers": { "speech": { "command": "npx", "args": [ "-y", "speech-mcp-server" ], "env": { MCP_DEFAULT_SPEECH_SPEED: 1.3 } } } }

Características

  • 🎯 Texto a voz de alta calidad con el modelo Kokoro TTS
  • 🗣️ Múltiples opciones de voz disponibles
  • 🎛️ Parámetros de voz personalizables (voz, velocidad)
  • 🔌 Interfaz compatible con MCP
  • 📦 Fácil instalación y configuración
  • 🚀 No se requiere clave API

Instalación

# Using npm npm install speech-mcp-server # Using pnpm (recommended) pnpm add speech-mcp-server # Using yarn yarn add speech-mcp-server

Uso

Ejecutar el servidor:

# Using default configuration npm start # With custom speech speed MCP_DEFAULT_SPEECH_SPEED=1.5 npm start

El servidor proporciona las siguientes herramientas MCP:

  • text_to_speech : Conversión básica de texto a voz
  • text_to_speech_with_options : Conversión de texto a voz con velocidad personalizable
  • list_voices : Lista todas las voces disponibles
  • get_model_status : verifica el estado de inicialización del modelo TTS

Desarrollo

# Clone the repository git clone <your-repo-url> cd speech-mcp-server # Install dependencies pnpm install # Start development server with auto-reload pnpm dev # Build the project pnpm build # Run linting pnpm lint # Format code pnpm format # Test with MCP Inspector pnpm inspector

Herramientas disponibles

1. texto a voz

Convierte texto en voz utilizando la configuración predeterminada.

{ "type": "request", "id": "1", "method": "call_tool", "params": { "name": "text_to_speech", "arguments": { "text": "Hello world", "voice": "af_bella" // optional } } }

2. texto a voz con opciones

Convierte texto en voz con parámetros personalizables.

{ "type": "request", "id": "1", "method": "call_tool", "params": { "name": "text_to_speech_with_options", "arguments": { "text": "Hello world", "voice": "af_bella", // optional "speed": 1.0, // optional (0.5 to 2.0) } } }

3. lista_voces

Enumera todas las voces disponibles para la conversión de texto a voz.

{ "type": "request", "id": "1", "method": "list_voices", "params": {} }

4. obtener_estado_del_modelo

Verifique el estado actual de la inicialización del modelo TTS. Esto es especialmente útil al iniciar el servidor por primera vez, ya que es necesario descargar e inicializar el modelo.

{ "type": "request", "id": "1", "method": "call_tool", "params": { "name": "get_model_status", "arguments": {} } }

Ejemplo de respuesta:

{ "content": [{ "type": "text", "text": "Model status: initializing (5s elapsed)" }] }

Posibles valores de estado:

  • uninitialized : la inicialización del modelo no ha comenzado
  • initializing : el modelo se está descargando e inicializando
  • ready : El modelo está listo para usar.
  • error : Se produjo un error durante la inicialización

Pruebas

Puede probar el servidor utilizando el Inspector MCP o enviando mensajes JSON sin procesar:

# List available tools echo '{"type":"request","id":"1","method":"list_tools","params":{}}' | node dist/index.js # List available voices echo '{"type":"request","id":"2","method":"list_voices","params":{}}' | node dist/index.js # Convert text to speech echo '{"type":"request","id":"3","method":"call_tool","params":{"name":"text_to_speech","arguments":{"text":"Hello world","voice":"af_bella"}}}' | node dist/index.js

Integración con Claude Desktop

Para utilizar este servidor con Claude Desktop, agregue lo siguiente a su archivo de configuración de Claude Desktop ( ~/Library/Application Support/Claude/claude_desktop_config.json ):

{ "servers": { "speech": { "command": "npx", "args": ["@decodershq/speech-mcp-server"] } } }

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Licencia MIT: consulte el archivo LICENCIA para obtener más detalles.

Solución de problemas

Problemas de inicialización del modelo

El servidor intenta descargar e inicializar automáticamente el modelo TTS al iniciarse. Si se producen errores de inicialización:

  1. El servidor lo intentará nuevamente automáticamente hasta 3 veces con una limpieza entre intentos.
  2. Utilice la herramienta get_model_status para supervisar el progreso de la inicialización y cualquier error
  3. Si la inicialización falla después de todos los reintentos, intente eliminar manualmente los archivos del modelo:
# Remove model files (MacOS/Linux) rm -rf ~/.npm/_npx/**/node_modules/@huggingface/transformers/.cache/onnx-community/Kokoro-82M-v1.0-ONNX/onnx/model_quantized.onnx rm -rf ~/.cache/huggingface/transformers/onnx-community/Kokoro-82M-v1.0-ONNX/onnx/model_quantized.onnx # Then restart the server npm start

La herramienta get_model_status ahora incluirá información de reintento en su respuesta:

{ "content": [{ "type": "text", "text": "Model status: initializing (5s elapsed, retry 1/3)" }] }
-
security - not tested
F
license - not found
-
quality - not tested

Un servidor de protocolo de contexto de modelo que proporciona capacidades de conversión de texto a voz utilizando el modelo Kokoro TTS, ofreciendo múltiples opciones de voz y parámetros de voz personalizables.

  1. Configuration
    1. Features
      1. Installation
        1. Usage
          1. Development
        2. Available Tools
          1. 1. text_to_speech
          2. 2. text_to_speech_with_options
          3. 3. list_voices
          4. 4. get_model_status
        3. Testing
          1. Integration with Claude Desktop
            1. Contributing
              1. License
                1. Troubleshooting
                  1. Model Initialization Issues
                ID: 3spevr7dss