MCP TTS VOICEVOX

Un servidor de texto a voz que se integra con un motor externo de VOICEVOX.

Documentación

VOICEVOX TTS MCP

Inglés | 日本語

Un servidor MCP de texto a voz que utiliza VOICEVOX

🎮 Prueba la Demo en el Navegador — Prueba VoicevoxClient directamente en tu navegador

Lo que puedes hacer

  • Haz que tu asistente de IA hable — Texto a voz desde clientes MCP como Claude Desktop
  • Reproductor de audio en la interfaz (aplicaciones MCP) — Reproduce audio directamente en el chat con un reproductor interactivo (ChatGPT / Claude Desktop / Claude Web, etc.)
  • Conversaciones con múltiples personajes — Cambia de hablante por segmento en una sola llamada
  • Reproducción fluida — Gestión de cola, reproducción inmediata, precarga, transmisión
  • Multiplataforma — Funciona en Windows, macOS, Linux (incluido WSL)

Reproductor de audio en la interfaz (aplicaciones MCP)

UI Audio Player

La herramienta voicevox_speak_player utiliza aplicaciones MCP para mostrar un reproductor de audio interactivo directamente en el chat. A diferencia de la herramienta estándar voicevox_speak que reproduce audio en el servidor, el audio se reproduce en el lado del cliente (en el navegador/aplicación) — no se necesita un dispositivo de audio en el servidor.

Características

  • Reproducción en el lado del cliente — El audio se reproduce en el chat de Claude Desktop, no en el servidor. Funciona incluso en conexiones remotas.
  • Controles de reproducción/pausa — Controles completos de reproducción integrados en la conversación
  • Diálogo con múltiples hablantes — Reproducción secuencial de varios hablantes en un solo reproductor con navegación entre pistas
  • Cambio de hablante — Cambia la voz de cualquier segmento directamente desde la interfaz del reproductor
  • Edición de segmentos — Ajusta velocidad, volumen, entonación, duración de pausas y silencio previo/posterior por segmento
  • Edición de frases de acento — Edita posiciones de acento y tono de moras directamente en la interfaz
  • Agregar / eliminar / reordenar segmentos — Reordenamiento de pistas con arrastrar y soltar; agrega nuevos segmentos en línea
  • Exportación WAV — Guarda todas las pistas como archivos WAV numerados y abre la carpeta de salida automáticamente
  • Administrador de diccionario de usuario — Agrega, edita y elimina palabras del diccionario de usuario de VOICEVOX con vista previa de reproducción
  • Restauración de estado entre sesiones — El estado del reproductor se guarda en el servidor; al reabrir el chat se restauran las pistas anteriores

Comportamiento de exportación según el entorno:

  • Save and open siempre exporta archivos WAV. Si no se admite abrir el explorador de archivos, la exportación aún se realiza correctamente y la ruta de guardado se muestra en la interfaz.
  • Choose output folder utiliza un selector de directorio nativo en Windows/macOS. En entornos no compatibles, esta acción recurre al directorio de exportación predeterminado.
Reproducción con múltiples hablantesLista de pistasEdición de segmentos
Multi-speaker playerTrack listSegment editing
Selección de hablanteAdministrador de diccionarioExportación WAV
Speaker selectionDictionary managerWAV export

Clientes compatibles

ClienteConexiónNotas
ChatGPTHTTP (remoto)Requiere VOICEVOX_PLAYER_DOMAIN
Claude Desktopstdio (local)Funciona de inmediato
Claude DesktopHTTP (a través de mcp-remote)No configurar VOICEVOX_PLAYER_DOMAIN

Nota: speak_player requiere un host que admita aplicaciones MCP. En hosts sin soporte de aplicaciones MCP, la herramienta no está disponible y se puede usar speak (reproducción en el lado del servidor) en su lugar.

Herramientas MCP del reproductor

HerramientaDescripción
voicevox_speak_playerCrea una nueva sesión de reproductor y muestra la interfaz. Devuelve viewUUID.
voicevox_resynthesize_playerActualiza todos los segmentos de un reproductor existente (nuevo viewUUID en cada llamada).
voicevox_get_player_stateLee el estado actual del reproductor (paginado) para ajustes de IA.
voicevox_open_dictionary_uiAbre la interfaz del administrador de diccionario de usuario.

Inicio rápido

Requisitos

  • Node.js 20.0.0 o superior (o Bun) o Docker
  • Motor VOICEVOX (debe estar en ejecución; incluido en Docker Compose)
  • ffplay (opcional, recomendado — no necesario con Docker)

Instalación de FFplay

ffplay es un reproductor ligero incluido con FFmpeg que admite reproducción desde stdin. Cuando está disponible, habilita automáticamente la reproducción de transmisión de baja latencia.

💡 FFplay es opcional. Sin él, la reproducción recurre a la reproducción basada en archivos temporales (Windows: PowerShell, macOS: afplay, Linux: aplay, etc.).

  • Configuración fácil: Instalación en una línea para cada sistema operativo (consulta los pasos a continuación)
  • Requerido: ffplay debe estar en PATH (reinicia la terminal/aplicaciones después de la instalación)
Instalación de FFplay y configuración de PATH

Ejemplos de instalación:

  • Windows (cualquiera de estos)

  • macOS

    • Homebrew: brew install ffmpeg
  • Linux

    • Debian/Ubuntu: sudo apt-get update && sudo apt-get install -y ffmpeg
    • Fedora: sudo dnf install -y ffmpeg
    • Arch: sudo pacman -S ffmpeg

Configuración de PATH:

  • Windows: Agrega ...\ffmpeg\bin a las variables de entorno, luego reinicia PowerShell/terminal y el editor (Claude/VS Code, etc.)
    • Verificación: powershell -c "$env:Path" debe incluir la ruta de ffmpeg
  • macOS/Linux: Generalmente se detecta automáticamente. Verifica con echo $PATH si es necesario, reinicia el shell.
  • Clientes MCP (Claude Desktop/Code): Reinicia la aplicación para recargar PATH.

Verificación:

ffplay -version

Si se muestra la información de versión, la instalación está completa. CLI/MCP detectará automáticamente ffplay y usará reproducción de transmisión desde stdin.

3 pasos para comenzar

1. Inicia el motor VOICEVOX

2. Agrega al archivo de configuración de Claude Desktop

Ubicación del archivo de configuración:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "tts-mcp": {
      "command": "npx",
      "args": ["-y", "@kajidog/mcp-tts-voicevox"]
    }
  }
}

💡 Si usas Bun, simplemente reemplaza npx con bunx:

"command": "bunx", "args": ["@kajidog/mcp-tts-voicevox"]

3. Reinicia Claude Desktop

¡Eso es todo! ¡Pídele a Claude que "diga hola" y hablará!

Inicio rápido con Docker

Puedes ejecutar tanto el servidor MCP como el motor VOICEVOX con un solo comando usando Docker Compose. No se requiere instalación de Node.js ni VOICEVOX.

1. Inicia los contenedores

docker compose up -d

Esto inicia el motor VOICEVOX y el servidor MCP (modo HTTP en el puerto 3000).

2. Agrega al archivo de configuración de Claude Desktop (usando mcp-remote)

{
  "mcpServers": {
    "tts-mcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}

3. Reinicia Claude Desktop

Seguridad (Docker): docker-compose.yml publica el puerto 3000 sin autenticación. MCP_ALLOWED_HOSTS no es una defensa aquí — los clientes que no son navegadores pueden enviar cualquier encabezado Host que deseen — por lo que cualquiera que pueda alcanzar el puerto puede usar el servidor. Configura MCP_API_KEY (y envíalo como X-API-Key), o mantén el puerto vinculado a una red confiable / solo localhost. Considera también configurar VOICEVOX_ALLOWED_OUTPUT_DIRS para limitar dónde pueden escribir las herramientas de escritura de archivos.

Limitaciones (Docker): El contenedor Docker no tiene dispositivo de audio, por lo que la herramienta voicevox_speak (reproducción en el lado del servidor) está deshabilitada por defecto. Usa voicevox_speak_player en su lugar — reproduce audio en el lado del cliente (en Claude Desktop) y funciona sin ningún dispositivo de audio en el servidor. Consulta Reproductor de audio en la interfaz para más detalles.


Herramientas MCP

voicevox_speak — Texto a voz

La característica principal invocable desde Claude.

ParámetroDescripciónPredeterminado
textTexto a hablar (múltiples segmentos separados por saltos de línea)Requerido
phrasesNotación de acento en línea (tiene prioridad sobre text)(sin configurar)
speakerID del hablante1
speedScaleVelocidad de reproducción1.0
immediateReproducción inmediata (limpia la cola)true
waitForStartEsperar a que comience la reproducciónfalse
waitForEndEsperar a que termine la reproducciónfalse

immediate / waitForStart / waitForEnd desaparecen del esquema de la herramienta cuando se configura la opción --restrict-* correspondiente.

Ejemplos:

// Simple text
{ "text": "Hello" }

// Specify speaker
{ "text": "Hello", "speaker": 3 }

// Different speakers per segment
{ "text": "1:Hello\n3:Nice weather today" }

// Wait for completion (synchronous processing)
{ "text": "Wait for this to finish before continuing", "waitForEnd": true }

// Control the accent with inline notation (`,` separates phrases, `[` marks the accent)
{ "text": "こんにちは世界", "phrases": "コン[ニ]チワ,セ[カ]イ" }

Notación de acento en línea

phrases (y el campo de pronunciación de las herramientas de diccionario de usuario) acepta katakana con un marcador de acento en línea:

  • , separa frases de acento — コン[ニ]チワ,セ[カ]イ
  • [ marca dónde cae el tono después; コン[ニ]チワ significa que el acento cae en ニ
  • Omitir los corchetes para una frase mantiene la estimación de acento propia de VOICEVOX

text sigue siendo obligatorio incluso cuando se proporciona phrases — pasa el texto plano allí y la notación es lo que se habla.

voicevox_get_accent_phrases devuelve la misma notación para un texto dado, para que puedas leer el acento estimado, ajustar el corchete y devolverlo a phrases.

Otras herramientas
HerramientaDescripción
voicevox_speak_playerHablar con reproductor de audio en la interfaz (consulta Herramientas MCP del reproductor)
voicevox_pingVerificar conexión con el motor VOICEVOX
voicevox_get_speakersObtener lista de hablantes disponibles
voicevox_stop_speakerDetener reproducción y limpiar cola
voicevox_synthesize_fileGenerar archivo de audio

Herramientas de diccionario de usuario (grupo dictionary):

HerramientaDescripción
voicevox_get_accent_phrasesObtener lectura y posiciones de acento de un texto como notación en línea
voicevox_get_user_dictionaryListar palabras del diccionario de usuario (filtro + paginación)
voicevox_add_user_dictionary_wordAgregar una palabra (la pronunciación acepta notación de acento en línea)
voicevox_update_user_dictionary_wordActualizar una palabra (los campos omitidos conservan su valor)
voicevox_delete_user_dictionary_wordEliminar una palabra por UUID
voicevox_add_user_dictionary_wordsAgregar múltiples palabras a la vez
voicevox_update_user_dictionary_wordsActualizar múltiples palabras a la vez

Cualquier herramienta se puede desactivar individualmente con --disable-tools / VOICEVOX_DISABLED_TOOLS, o por grupo con --disable-groups / VOICEVOX_DISABLED_GROUPS.


Configuración

Variables de entorno

Configuración de VOICEVOX

VariableDescripciónPredeterminado
VOICEVOX_URLURL del motorhttp://localhost:50021
VOICEVOX_DEFAULT_SPEAKERID de hablante predeterminado1
VOICEVOX_DEFAULT_SPEED_SCALEVelocidad de reproducción1.0
VOICEVOX_RETRY_COUNTReintentos para solicitudes API fallidas (0 desactiva)2
VOICEVOX_RETRY_DELAY_MSRetraso inicial de reintento en ms (retroceso exponencial)250
VOICEVOX_TIMEOUT_MSTiempo de espera para una sola solicitud API de VOICEVOX en ms. Auméntalo para texto largo o motor lento30000

Opciones de reproducción

VariableDescripciónPredeterminado
VOICEVOX_USE_STREAMINGReproducción de transmisión (requiere ffplay)false
VOICEVOX_DEFAULT_POST_PHONEME_LENGTHSilencio final por segmento en segundos. Auméntalo para una pausa más larga entre segmentos en cola (también protege el final del habla de cortarse con reproducción de transmisión)predeterminado del motor
VOICEVOX_DEFAULT_IMMEDIATEReproducción inmediatatrue
VOICEVOX_DEFAULT_WAIT_FOR_STARTEsperar inicio de reproducciónfalse
VOICEVOX_DEFAULT_WAIT_FOR_ENDEsperar fin de reproducciónfalse

Configuración de restricciones

Restringe a la IA de especificar ciertas opciones.

VariableDescripción
VOICEVOX_RESTRICT_IMMEDIATERestringir opción immediate
VOICEVOX_RESTRICT_WAIT_FOR_STARTRestringir opción waitForStart
VOICEVOX_RESTRICT_WAIT_FOR_ENDRestringir opción waitForEnd

Desactivar herramientas

# Disable individual tools
export VOICEVOX_DISABLED_TOOLS=speak_player,synthesize_file

# Disable a built-in group of tools
export VOICEVOX_DISABLED_GROUPS=player

# Combine groups and individual tools
export VOICEVOX_DISABLED_GROUPS=dictionary
export VOICEVOX_DISABLED_TOOLS=synthesize_file

Grupos integrados para VOICEVOX_DISABLED_GROUPS / --disable-groups:

GrupoHerramientas
playerspeak_player, resynthesize_player, get_player_state, open_dictionary_ui
dictionaryget_accent_phrases, get_user_dictionary, add_user_dictionary_word, update_user_dictionary_word, delete_user_dictionary_word, add_user_dictionary_words, update_user_dictionary_words
filesynthesize_file
appsspeak_player, resynthesize_player, open_dictionary_ui (herramientas de interfaz de aplicaciones MCP)

Configuración del reproductor en la interfaz

VariableDescripciónValor por defecto
VOICEVOX_PLAYER_DOMAINDominio del widget para el reproductor de UI (requerido para ChatGPT, p. ej. https://your-app.onrender.com)(sin definir)
VOICEVOX_AUTO_PLAYReproducción automática de audio en el reproductor de UItrue
VOICEVOX_PLAYER_EXPORT_ENABLEDHabilitar exportación de pistas (descarga) desde el reproductor de UI (false para deshabilitar)true
VOICEVOX_PLAYER_EXPORT_DIRDirectorio de salida predeterminado para pistas exportadas (también se usa como respaldo cuando el selector de carpetas no está disponible)./voicevox-player-exports
VOICEVOX_PLAYER_CACHE_DIRDirectorio para archivos de caché del reproductor (*.txt) y archivo de estado del reproductor predeterminado./.voicevox-player-cache
VOICEVOX_PLAYER_AUDIO_CACHE_ENABLEDHabilitar caché de audio persistente en disco (false deshabilita lecturas/escrituras de caché en disco)true
VOICEVOX_PLAYER_AUDIO_CACHE_TTL_DAYSRetención de caché de audio en días (0: deshabilitar caché en disco, -1: sin limpieza TTL)30
VOICEVOX_PLAYER_AUDIO_CACHE_MAX_MBLímite de tamaño de caché de audio en MB (0: deshabilitar caché en disco, -1: ilimitado)512
VOICEVOX_PLAYER_STATE_FILERuta del JSON de estado del reproductor persistido<VOICEVOX_PLAYER_CACHE_DIR>/player-state.json

Configuración de salida de archivos

VariableDescripciónValor por defecto
VOICEVOX_ALLOWED_OUTPUT_DIRSDirectorios separados por comas en los que las herramientas de escritura de archivos (voicevox_synthesize_file, exportación de pistas del reproductor) pueden escribir. Las rutas fuera de ellos se rechazan con un error. Sin definir significa sin restricción — se recomienda configurarlo cuando el servidor está expuesto por HTTP(sin definir)

Configuración del servidor

VariableDescripciónValor por defecto
MCP_HTTP_MODEHabilitar modo HTTPfalse
MCP_HTTP_PORTPuerto HTTP3000
MCP_HTTP_HOSTHost HTTP0.0.0.0
MCP_ALLOWED_HOSTSHosts permitidos (separados por comas)localhost,127.0.0.1,[::1]
MCP_ALLOWED_ORIGINSOrígenes permitidos (separados por comas)http://localhost,http://127.0.0.1,...
MCP_API_KEYClave API requerida para /mcp (enviada mediante X-API-Key o Authorization: Bearer)(sin definir)
Argumentos de línea de comandos

Los argumentos de línea de comandos tienen prioridad sobre las variables de entorno. La lista completa y actualizada de opciones siempre está disponible mediante npx @kajidog/mcp-tts-voicevox --help.

# Basic settings
npx @kajidog/mcp-tts-voicevox --url http://192.168.1.100:50021 --speaker 3 --speed 1.2

# HTTP mode
npx @kajidog/mcp-tts-voicevox --http --port 8080

# With restrictions
npx @kajidog/mcp-tts-voicevox --restrict-immediate --restrict-wait-for-end

# Disable individual tools
npx @kajidog/mcp-tts-voicevox --disable-tools speak_player,synthesize_file

# Disable a tool group
npx @kajidog/mcp-tts-voicevox --disable-groups player
ArgumentoDescripción
--help, -hMostrar ayuda
--version, -vMostrar versión
--initGenerar .voicevoxrc.json con configuración predeterminada
--config <path>Ruta al archivo de configuración
--url <value>URL del motor VOICEVOX
--speaker <value>ID de hablante predeterminado
--speed <value>Velocidad de reproducción
--use-streaming / --no-use-streamingReproducción en streaming
--post-phoneme-length <sec>Silencio final por segmento (pausa entre segmentos en cola)
--immediate / --no-immediateReproducción inmediata
--wait-for-start / --no-wait-for-startEsperar inicio
--wait-for-end / --no-wait-for-endEsperar fin
--restrict-immediateRestringir inmediato
--restrict-wait-for-startRestringir waitForStart
--restrict-wait-for-endRestringir waitForEnd
--allowed-output-dirs <dirs>Directorios en los que las herramientas de escritura de archivos pueden escribir (separados por comas; sin definir = sin restricción)
--disable-tools <tools>Deshabilitar herramientas (nombres de herramientas separados por comas)
--disable-groups <groups>Deshabilitar grupos de herramientas: player, dictionary, file, apps
--auto-play / --no-auto-playReproducción automática en el reproductor de UI
--player-export / --no-player-exportHabilitar/deshabilitar exportación de pistas (descarga) en el reproductor de UI
--player-export-dir <dir>Directorio de salida predeterminado para pistas exportadas
--player-cache-dir <dir>Directorio de caché del reproductor
--player-state-file <path>Ruta del archivo de estado del reproductor persistido
--player-audio-cache / --no-player-audio-cacheHabilitar/deshabilitar caché de audio en disco para el reproductor
--player-audio-cache-ttl-days <days>Días de retención de caché de audio (0: deshabilitar, -1: sin limpieza TTL)
--player-audio-cache-max-mb <mb>Límite de tamaño de caché de audio en MB (0: deshabilitar, -1: ilimitado)
--httpModo HTTP
--port <value>Puerto HTTP
--host <value>Host HTTP
--allowed-hosts <hosts>Hosts permitidos (separados por comas)
--allowed-origins <origins>Orígenes permitidos (separados por comas)
--api-key <key>Clave API requerida para /mcp
Archivo de configuración (.voicevoxrc.json)

Puedes usar un archivo de configuración JSON en lugar de (o además de) las variables de entorno y los argumentos de CLI. Esto es útil cuando tienes muchas configuraciones que ajustar.

Orden de prioridad: Argumentos de CLI > Variables de entorno > Archivo de configuración > Valores predeterminados

Generar un archivo de configuración

npx @kajidog/mcp-tts-voicevox --init

Esto crea .voicevoxrc.json en el directorio actual con toda la configuración predeterminada. Edítalo según sea necesario.

Usar una ruta de archivo de configuración personalizada

npx @kajidog/mcp-tts-voicevox --config ./my-config.json

O mediante variable de entorno:

VOICEVOX_CONFIG=./my-config.json npx @kajidog/mcp-tts-voicevox

Ejemplo de .voicevoxrc.json

{
  "url": "http://192.168.1.50:50021",
  "speaker": 3,
  "speed": 1.2,
  "http": true,
  "port": 8080,
  "disable-tools": ["synthesize_file"],
  "disable-groups": ["dictionary"]
}

Las claves pueden escribirse en kebab-case (use-streaming), camelCase (useStreaming) o nombres de clave internos (defaultSpeaker). Si .voicevoxrc.json existe en el directorio actual, se carga automáticamente.

Modo HTTP

Para conexiones remotas:

Iniciar servidor:

# Linux/macOS
MCP_HTTP_MODE=true MCP_HTTP_PORT=3000 npx @kajidog/mcp-tts-voicevox

# Windows PowerShell
$env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; npx @kajidog/mcp-tts-voicevox

Configuración de Claude Desktop (usando mcp-remote):

{
  "mcpServers": {
    "tts-mcp-proxy": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}

Configuración de hablante por proyecto

Con Claude Code, puedes configurar diferentes hablantes predeterminados por proyecto usando encabezados personalizados en .mcp.json:

EncabezadoDescripción
X-Voicevox-SpeakerID de hablante predeterminado para este proyecto
X-API-KeyClave API cuando MCP_API_KEY está configurado

Ejemplo de .mcp.json:

{
  "mcpServers": {
    "tts": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "headers": {
        "X-Voicevox-Speaker": "113",
        "X-API-Key": "your-api-key"
      }
    }
  }
}

Esto permite que cada proyecto use automáticamente un personaje de voz diferente.

Orden de prioridad:

  1. Parámetro explícito speaker en la llamada a la herramienta (mayor prioridad)
  2. Valor predeterminado del proyecto desde el encabezado X-Voicevox-Speaker
  3. Configuración global VOICEVOX_DEFAULT_SPEAKER (menor prioridad)
Conexión de WSL al host de Windows

Conexión desde WSL a un servidor MCP que se ejecuta en Windows:

1. Obtener la IP del host de Windows desde WSL

# Method 1: From default gateway
ip route show | grep -oP 'default via \K[\d.]+'
# Usually in the format 172.x.x.1

# Method 2: From /etc/resolv.conf (WSL2)
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'

2. Iniciar el servidor en Windows

Agrega la IP de puerta de enlace de WSL a MCP_ALLOWED_HOSTS para permitir el acceso desde WSL:

$env:MCP_HTTP_MODE='true'
$env:MCP_ALLOWED_HOSTS='localhost,127.0.0.1,172.29.176.1'
npx @kajidog/mcp-tts-voicevox

O con argumentos de CLI:

npx @kajidog/mcp-tts-voicevox --http --allowed-hosts "localhost,127.0.0.1,172.29.176.1"

3. Configuración de WSL (.mcp.json)

{
  "mcpServers": {
    "tts": {
      "type": "http",
      "url": "http://172.29.176.1:3000/mcp"
    }
  }
}

⚠️ Dentro de WSL, localhost se refiere al propio WSL. Usa la IP de puerta de enlace de WSL para acceder al host de Windows.

Uso con ChatGPT

Para usar con ChatGPT, implementa el servidor MCP en modo HTTP en la nube con acceso a un motor VOICEVOX.

1. Implementar en la nube

Implementa con Docker en Render, Railway, etc. (se incluye Dockerfile).

2. Configurar el motor VOICEVOX

Ejecuta el motor VOICEVOX localmente y exponlo mediante ngrok, o impleméntalo junto con el servidor MCP.

3. Configurar variables de entorno

VariableEjemploDescripción
VOICEVOX_URLhttps://xxxx.ngrok-free.appURL del motor VOICEVOX
MCP_HTTP_MODEtrueHabilitar modo HTTP
MCP_ALLOWED_HOSTSyour-app.onrender.comNombre de host implementado
VOICEVOX_PLAYER_DOMAINhttps://your-app.onrender.comDominio del widget para el reproductor de UI (requerido para ChatGPT)
VOICEVOX_DISABLED_TOOLSspeakDeshabilitar reproducción del lado del servidor (sin dispositivo de audio)
VOICEVOX_PLAYER_EXPORT_ENABLEDfalseDeshabilitar función de exportación (los archivos no se pueden descargar desde la nube)

4. Agregar conector en ChatGPT

Ve a Configuración de ChatGPT → Conectores → Agregar URL del servidor MCP (https://your-app.onrender.com/mcp).

Uso con Claude Web

Los pasos básicos son los mismos que para ChatGPT, pero el valor de VOICEVOX_PLAYER_DOMAIN es diferente.

Claude Web requiere que ui.domain sea un dominio dedicado basado en hash. Calcúlalo con el siguiente comando:

node -e "console.log(require('crypto').createHash('sha256').update('Your MCP server URL').digest('hex').slice(0,32)+'.claudemcpcontent.com')"

Ejemplo: Si la URL de tu servidor MCP es https://your-app.onrender.com/mcp:

node -e "console.log(require('crypto').createHash('sha256').update('https://your-app.onrender.com/mcp').digest('hex').slice(0,32)+'.claudemcpcontent.com')"
# Example output: 48fb73a6...claudemcpcontent.com

Establece este valor de salida como VOICEVOX_PLAYER_DOMAIN.

Nota: Dado que ChatGPT y Claude Web requieren valores diferentes de VOICEVOX_PLAYER_DOMAIN, una sola instancia no puede atender a ambos clientes simultáneamente. Implementa instancias separadas para cada uno, o cambia la variable de entorno según el cliente objetivo.


Solución de problemas

El audio no se reproduce

1. Verifica si el motor VOICEVOX está en ejecución

curl http://localhost:50021/speakers

2. Verifica las herramientas de reproducción específicas de la plataforma

SOHerramienta requerida
LinuxUna de aplay, paplay, play, ffplay
macOSafplay (preinstalado)
WindowsPowerShell (preinstalado)
No reconocido por el cliente MCP
  • Verifica la instalación del paquete: npm list -g @kajidog/mcp-tts-voicevox
  • Verifica la sintaxis JSON en el archivo de configuración
  • Reinicia el cliente

Estructura del paquete

PaqueteDescripción
@kajidog/mcp-tts-voicevoxServidor MCP (apps/mcp-tts)
@kajidog/voicevox-clientBiblioteca cliente VOICEVOX de propósito general (se puede usar de forma independiente)
@kajidog/mcp-coreInfraestructura MCP compartida (esquema de configuración, lanzador HTTP/stdio). No se publica — se incluye en el servidor
@kajidog/player-uiInterfaz de usuario del reproductor de audio basada en React, empaquetada en un solo archivo HTML. No se publica

Información para desarrolladores

Configuración

git clone https://github.com/kajidog/mcp-tts-voicevox.git
cd mcp-tts-voicevox
pnpm install

Comandos

El administrador de paquetes es pnpm (npm / yarn no son compatibles).

ComandoDescripción
pnpm buildCompilar todos los paquetes
pnpm testEjecutar pruebas
pnpm lintEjecutar lint (una sola pasada de Biome sobre todo el espacio de trabajo)
pnpm typecheckVerificación de tipos en cada paquete
pnpm changesetAgregar un changeset para un cambio visible para el usuario

Los servidores de desarrollo viven en el paquete del servidor, así que ejecútalos con un filtro:

ComandoDescripción
pnpm --filter @kajidog/mcp-tts-voicevox devIniciar servidor de desarrollo (stdio)
pnpm --filter @kajidog/mcp-tts-voicevox dev:httpIniciar servidor de desarrollo en modo HTTP
pnpm --filter @kajidog/mcp-tts-voicevox dev:bunIniciar servidor de desarrollo con Bun
pnpm --filter @kajidog/mcp-tts-voicevox dev:bun:httpIniciar servidor de desarrollo HTTP con Bun

Licencia

ISC