MCP TTS VOICEVOX

Um servidor de Texto-para-Fala que se integra com um motor externo VOICEVOX.

Documentação

VOICEVOX TTS MCP

Inglês | 日本語

Um servidor MCP de texto-para-fala usando VOICEVOX

🎮 Experimente a Demonstração no Navegador — Teste o VoicevoxClient diretamente no seu navegador

O Que Você Pode Fazer

  • Faça seu assistente de IA falar — Texto-para-fala a partir de clientes MCP como Claude Desktop
  • Player de Áudio na Interface (Apps MCP) — Reproduza áudio diretamente no chat com um player interativo (ChatGPT / Claude Desktop / Claude Web etc.)
  • Conversas com múltiplos personagens — Alterne os falantes por segmento em uma única chamada
  • Reprodução suave — Gerenciamento de fila, reprodução imediata, pré-carregamento, streaming
  • Multiplataforma — Funciona em Windows, macOS, Linux (incluindo WSL)

Player de Áudio na Interface (Apps MCP)

UI Audio Player

A ferramenta voicevox_speak_player usa Apps MCP para renderizar um player de áudio interativo diretamente no chat. Diferente da ferramenta padrão voicevox_speak que reproduz áudio no servidor, o áudio é reproduzido no lado do cliente (no navegador/app) — nenhum dispositivo de áudio é necessário no servidor.

Recursos

  • Reprodução no lado do cliente — O áudio é reproduzido no chat do Claude Desktop, não no servidor. Funciona até mesmo em conexões remotas.
  • Controles de reprodução/pausa — Controles completos de reprodução incorporados na conversa
  • Diálogo com múltiplos falantes — Reprodução sequencial de vários falantes em um único player com navegação entre faixas
  • Alternância de falantes — Mude a voz de qualquer segmento diretamente na interface do player
  • Edição de segmentos — Ajuste velocidade, volume, entonação, duração de pausa e silêncio antes/depois por segmento
  • Edição de frases de acento — Edite posições de acento e tom de mora diretamente na interface
  • Adicionar / excluir / reordenar segmentos — Reordenação de faixas por arrastar e soltar; adicione novos segmentos inline
  • Exportação WAV — Salve todas as faixas como arquivos WAV numerados e abra a pasta de saída automaticamente
  • Gerenciador de dicionário do usuário — Adicione, edite e exclua palavras do dicionário do usuário VOICEVOX com reprodução de pré-visualização
  • Restauração de estado entre sessões — O estado do player é persistido no servidor; reabrir o chat restaura as faixas anteriores

Comportamento de exportação por ambiente:

  • Save and open sempre exporta arquivos WAV. Se abrir o explorador de arquivos não for suportado, a exportação ainda é bem-sucedida e o caminho de salvamento é mostrado na interface.
  • Choose output folder usa um seletor de diretório nativo no Windows/macOS. Em ambientes não suportados, esta ação usa o diretório de exportação padrão.
Reprodução com múltiplos falantesLista de faixasEdição de segmentos
Multi-speaker playerTrack listSegment editing
Seleção de falanteGerenciador de dicionárioExportação WAV
Speaker selectionDictionary managerWAV export

Clientes Suportados

ClienteConexãoObservações
ChatGPTHTTP (remoto)Requer VOICEVOX_PLAYER_DOMAIN
Claude Desktopstdio (local)Funciona imediatamente
Claude DesktopHTTP (via mcp-remote)Não defina VOICEVOX_PLAYER_DOMAIN

Observação: speak_player requer um host que suporte Apps MCP. Em hosts sem suporte a Apps MCP, a ferramenta não está disponível e speak (reprodução no lado do servidor) pode ser usada como alternativa.

Ferramentas MCP do Player

FerramentaDescrição
voicevox_speak_playerCria uma nova sessão de player e exibe a interface. Retorna viewUUID.
voicevox_resynthesize_playerAtualiza todos os segmentos de um player existente (novo viewUUID a cada chamada).
voicevox_get_player_stateLê o estado atual do player (paginado) para ajuste pela IA.
voicevox_open_dictionary_uiAbre a interface do gerenciador de dicionário do usuário.

Início Rápido

Requisitos

  • Node.js 20.0.0 ou superior (ou Bun) ou Docker
  • VOICEVOX Engine (deve estar em execução; incluído no Docker Compose)
  • ffplay (opcional, recomendado — não necessário com Docker)

Instalando o FFplay

ffplay é um player leve incluído com FFmpeg que suporta reprodução a partir de stdin. Quando disponível, ele ativa automaticamente a reprodução em streaming de baixa latência.

💡 FFplay é opcional. Sem ele, a reprodução usa arquivos temporários como alternativa (Windows: PowerShell, macOS: afplay, Linux: aplay, etc.).

  • Configuração fácil: Instalação em uma linha para cada sistema operacional (veja os passos abaixo)
  • Necessário: ffplay deve estar no PATH (reinicie o terminal/apps após a instalação)
Instalação do FFplay e Configuração do PATH

Exemplos de instalação:

  • Windows (qualquer um destes)

  • 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

Configuração do PATH:

  • Windows: Adicione ...\ffmpeg\bin às variáveis de ambiente e reinicie o PowerShell/terminal e o editor (Claude/VS Code, etc.)
    • Verifique: powershell -c "$env:Path" deve incluir o caminho do ffmpeg
  • macOS/Linux: Geralmente detectado automaticamente. Verifique com echo $PATH se necessário, reinicie o shell.
  • Clientes MCP (Claude Desktop/Code): Reinicie o app para recarregar o PATH.

Verificação:

ffplay -version

Se as informações de versão forem exibidas, a instalação está concluída. CLI/MCP detectarão automaticamente o ffplay e usarão reprodução em streaming via stdin.

3 Passos para Começar

1. Inicie o VOICEVOX Engine

2. Adicione ao arquivo de configuração do Claude Desktop

Localização do arquivo de configuração:

  • 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"]
    }
  }
}

💡 Se estiver usando Bun, basta substituir npx por bunx:

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

3. Reinicie o Claude Desktop

É isso! Peça ao Claude para "dizer olá" e ele falará!

Início Rápido com Docker

Você pode executar tanto o servidor MCP quanto o VOICEVOX Engine com um único comando usando Docker Compose. Não é necessária instalação de Node.js ou VOICEVOX.

1. Inicie os contêineres

docker compose up -d

Isso inicia o VOICEVOX Engine e o servidor MCP (modo HTTP na porta 3000).

2. Adicione ao arquivo de configuração do Claude Desktop (usando mcp-remote)

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

3. Reinicie o Claude Desktop

Segurança (Docker): docker-compose.yml publica a porta 3000 sem autenticação. MCP_ALLOWED_HOSTS não é uma defesa aqui — clientes que não sejam navegadores podem enviar qualquer cabeçalho Host que desejarem — então qualquer pessoa que possa alcançar a porta pode usar o servidor. Defina MCP_API_KEY (e envie como X-API-Key), ou mantenha a porta vinculada a uma rede confiável / somente localhost. Considere também definir VOICEVOX_ALLOWED_OUTPUT_DIRS para limitar onde as ferramentas de escrita de arquivos podem gravar.

Limitações (Docker): O contêiner Docker não possui dispositivo de áudio, então a ferramenta voicevox_speak (reprodução no lado do servidor) está desabilitada por padrão. Use voicevox_speak_player em vez disso — ela reproduz áudio no lado do cliente (no Claude Desktop) e funciona sem nenhum dispositivo de áudio no servidor. Veja Player de Áudio na Interface para detalhes.


Ferramentas MCP

voicevox_speak — Texto-para-Fala

O principal recurso chamável a partir do Claude.

ParâmetroDescriçãoPadrão
textTexto para falar (vários segmentos separados por novas linhas)Obrigatório
phrasesNotação de acento inline (tem prioridade sobre text)(não definido)
speakerID do falante1
speedScaleVelocidade de reprodução1.0
immediateReprodução imediata (limpa a fila)true
waitForStartAguardar o início da reproduçãofalse
waitForEndAguardar a conclusão da reproduçãofalse

immediate / waitForStart / waitForEnd desaparecem do esquema da ferramenta quando a opção --restrict-* correspondente está definida.

Exemplos:

// 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": "コン[ニ]チワ,セ[カ]イ" }

Notação de Acento Inline

phrases (e o campo de pronúncia das ferramentas de dicionário do usuário) aceita katakana com um marcador de acento inline:

  • , separa frases de acento — コン[ニ]チワ,セ[カ]イ
  • [ marca onde o tom cai depois; コン[ニ]チワ significa que o acento cai em ニ
  • Omitir os colchetes para uma frase mantém a estimativa de acento do próprio VOICEVOX

text permanece obrigatório mesmo quando phrases é fornecido — passe o texto simples ali e a notação é o que será falado.

voicevox_get_accent_phrases retorna a mesma notação para um texto fornecido, então você pode ler o acento estimado, ajustar o colchete e alimentá-lo de volta em phrases.

Outras Ferramentas
FerramentaDescrição
voicevox_speak_playerFale com o player de áudio da interface (veja Ferramentas MCP do Player)
voicevox_pingVerifique a conexão com o VOICEVOX Engine
voicevox_get_speakersObtenha a lista de falantes disponíveis
voicevox_stop_speakerPare a reprodução e limpe a fila
voicevox_synthesize_fileGere arquivo de áudio

Ferramentas de dicionário do usuário (grupo dictionary):

FerramentaDescrição
voicevox_get_accent_phrasesObtenha leitura e posições de acento de um texto como notação inline
voicevox_get_user_dictionaryListe palavras do dicionário do usuário (filtro + paginação)
voicevox_add_user_dictionary_wordAdicione uma palavra (a pronúncia aceita notação de acento inline)
voicevox_update_user_dictionary_wordAtualize uma palavra (campos omitidos mantêm seu valor)
voicevox_delete_user_dictionary_wordExclua uma palavra por UUID
voicevox_add_user_dictionary_wordsAdicione várias palavras de uma vez
voicevox_update_user_dictionary_wordsAtualize várias palavras de uma vez

Qualquer ferramenta pode ser desativada individualmente com --disable-tools / VOICEVOX_DISABLED_TOOLS, ou por grupo com --disable-groups / VOICEVOX_DISABLED_GROUPS.


Configuração

Variáveis de Ambiente

Configurações do VOICEVOX

VariávelDescriçãoPadrão
VOICEVOX_URLURL do Enginehttp://localhost:50021
VOICEVOX_DEFAULT_SPEAKERID do falante padrão1
VOICEVOX_DEFAULT_SPEED_SCALEVelocidade de reprodução1.0
VOICEVOX_RETRY_COUNTTentativas para requisições de API com falha (0 desativa)2
VOICEVOX_RETRY_DELAY_MSAtraso inicial de tentativa em ms (backoff exponencial)250
VOICEVOX_TIMEOUT_MSTimeout para uma única requisição de API do VOICEVOX em ms. Aumente para textos longos ou engine lento30000

Opções de Reprodução

VariávelDescriçãoPadrão
VOICEVOX_USE_STREAMINGReprodução em streaming (requer ffplay)false
VOICEVOX_DEFAULT_POST_PHONEME_LENGTHSilêncio final por segmento em segundos. Aumente para uma pausa mais longa entre segmentos na fila (também protege o final da fala de ser cortado com reprodução em streaming)padrão do engine
VOICEVOX_DEFAULT_IMMEDIATEReprodução imediatatrue
VOICEVOX_DEFAULT_WAIT_FOR_STARTAguardar início da reproduçãofalse
VOICEVOX_DEFAULT_WAIT_FOR_ENDAguardar fim da reproduçãofalse

Configurações de Restrição

Restrinja a IA de especificar certas opções.

VariávelDescrição
VOICEVOX_RESTRICT_IMMEDIATERestringir opção immediate
VOICEVOX_RESTRICT_WAIT_FOR_STARTRestringir opção waitForStart
VOICEVOX_RESTRICT_WAIT_FOR_ENDRestringir opção waitForEnd

Desativar Ferramentas

# 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:

GrupoFerramentas
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 (ferramentas de interface de Apps MCP)

Configurações do Player na Interface

VariávelDescriçãoPadrão
VOICEVOX_PLAYER_DOMAINDomínio do widget para o player de UI (obrigatório para ChatGPT, ex.: https://your-app.onrender.com)(não definido)
VOICEVOX_AUTO_PLAYReproduzir áudio automaticamente no player de UItrue
VOICEVOX_PLAYER_EXPORT_ENABLEDHabilitar exportação de faixas (download) no player de UI (false para desabilitar)true
VOICEVOX_PLAYER_EXPORT_DIRDiretório de saída padrão para faixas exportadas (também usado como fallback quando o seletor de pasta não está disponível)./voicevox-player-exports
VOICEVOX_PLAYER_CACHE_DIRDiretório para arquivos de cache do player (*.txt) e arquivo de estado padrão do player./.voicevox-player-cache
VOICEVOX_PLAYER_AUDIO_CACHE_ENABLEDHabilitar cache de áudio persistente em disco (false desabilita leituras/gravações de cache em disco)true
VOICEVOX_PLAYER_AUDIO_CACHE_TTL_DAYSRetenção do cache de áudio em dias (0: desabilita cache em disco, -1: sem limpeza por TTL)30
VOICEVOX_PLAYER_AUDIO_CACHE_MAX_MBLimite de tamanho do cache de áudio em MB (0: desabilita cache em disco, -1: ilimitado)512
VOICEVOX_PLAYER_STATE_FILECaminho do JSON de estado persistido do player<VOICEVOX_PLAYER_CACHE_DIR>/player-state.json

Configurações de Saída de Arquivos

VariávelDescriçãoPadrão
VOICEVOX_ALLOWED_OUTPUT_DIRSDiretórios separados por vírgula nos quais as ferramentas de escrita de arquivos (voicevox_synthesize_file, exportação de faixas do player) podem gravar. Caminhos fora deles são rejeitados com erro. Não definido significa sem restrição — recomendado definir quando o servidor está exposto via HTTP(não definido)

Configurações do Servidor

VariávelDescriçãoPadrão
MCP_HTTP_MODEHabilitar modo HTTPfalse
MCP_HTTP_PORTPorta HTTP3000
MCP_HTTP_HOSTHost HTTP0.0.0.0
MCP_ALLOWED_HOSTSHosts permitidos (separados por vírgula)localhost,127.0.0.1,[::1]
MCP_ALLOWED_ORIGINSOrigens permitidas (separadas por vírgula)http://localhost,http://127.0.0.1,...
MCP_API_KEYChave de API obrigatória para /mcp (enviada via X-API-Key ou Authorization: Bearer)(não definido)
Argumentos de Linha de Comando

Os argumentos de linha de comando têm prioridade sobre as variáveis de ambiente. A lista completa e atualizada de opções está sempre disponível via 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
ArgumentoDescrição
--help, -hMostrar ajuda
--version, -vMostrar versão
--initGerar .voicevoxrc.json com configurações padrão
--config <path>Caminho para o arquivo de configuração
--url <value>URL do VOICEVOX Engine
--speaker <value>ID do locutor padrão
--speed <value>Velocidade de reprodução
--use-streaming / --no-use-streamingReprodução em streaming
--post-phoneme-length <sec>Silêncio final por segmento (pausa entre segmentos enfileirados)
--immediate / --no-immediateReprodução imediata
--wait-for-start / --no-wait-for-startAguardar início
--wait-for-end / --no-wait-for-endAguardar fim
--restrict-immediateRestringir imediato
--restrict-wait-for-startRestringir waitForStart
--restrict-wait-for-endRestringir waitForEnd
--allowed-output-dirs <dirs>Diretórios nos quais as ferramentas de escrita de arquivos podem gravar (separados por vírgula; não definido = sem restrição)
--disable-tools <tools>Desabilitar ferramentas (nomes de ferramentas separados por vírgula)
--disable-groups <groups>Desabilitar grupos de ferramentas: player, dictionary, file, apps
--auto-play / --no-auto-playReprodução automática no player de UI
--player-export / --no-player-exportHabilitar/desabilitar exportação de faixas (download) no player de UI
--player-export-dir <dir>Diretório de saída padrão para faixas exportadas
--player-cache-dir <dir>Diretório de cache do player
--player-state-file <path>Caminho do arquivo de estado persistido do player
--player-audio-cache / --no-player-audio-cacheHabilitar/desabilitar cache de áudio em disco para o player
--player-audio-cache-ttl-days <days>Dias de retenção do cache de áudio (0: desabilitar, -1: sem limpeza por TTL)
--player-audio-cache-max-mb <mb>Limite de tamanho do cache de áudio em MB (0: desabilitar, -1: ilimitado)
--httpModo HTTP
--port <value>Porta HTTP
--host <value>Host HTTP
--allowed-hosts <hosts>Hosts permitidos (separados por vírgula)
--allowed-origins <origins>Origens permitidas (separadas por vírgula)
--api-key <key>Chave de API obrigatória para /mcp
Arquivo de Configuração (.voicevoxrc.json)

Você pode usar um arquivo de configuração JSON em vez de (ou em adição a) variáveis de ambiente e argumentos de CLI. Isso é útil quando você tem muitas configurações para definir.

Ordem de prioridade: Argumentos de CLI > Variáveis de ambiente > Arquivo de configuração > Padrões

Gerar um arquivo de configuração

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

Isso cria .voicevoxrc.json no diretório atual com todas as configurações padrão. Edite conforme necessário.

Usar um caminho personalizado para o arquivo de configuração

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

Ou via variável de ambiente:

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

Exemplo 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"]
}

As chaves podem ser escritas em kebab-case (use-streaming), camelCase (useStreaming) ou nomes internos de chaves (defaultSpeaker). Se .voicevoxrc.json existir no diretório atual, ele é carregado automaticamente.

Modo HTTP

Para conexões 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

Configuração do Claude Desktop (usando mcp-remote):

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

Configurações de Locutor por Projeto

Com o Claude Code, você pode configurar diferentes locutores padrão por projeto usando cabeçalhos personalizados em .mcp.json:

CabeçalhoDescrição
X-Voicevox-SpeakerID do locutor padrão para este projeto
X-API-KeyChave de API quando MCP_API_KEY está configurado

Exemplo de .mcp.json:

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

Isso permite que cada projeto use um personagem de voz diferente automaticamente.

Ordem de prioridade:

  1. Parâmetro explícito speaker na chamada da ferramenta (maior)
  2. Padrão do projeto do cabeçalho X-Voicevox-Speaker
  3. Configuração global VOICEVOX_DEFAULT_SPEAKER (menor)
Conexão WSL para Host Windows

Conectando do WSL a um servidor MCP em execução no Windows:

1. Obter o IP do Host Windows a partir do 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 o Servidor no Windows

Adicione o IP do gateway WSL a MCP_ALLOWED_HOSTS para permitir acesso a partir do WSL:

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

Ou com argumentos de CLI:

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

3. Configuração do WSL (.mcp.json)

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

⚠️ Dentro do WSL, localhost refere-se ao próprio WSL. Use o IP do gateway WSL para acessar o host Windows.

Usando com ChatGPT

Para usar com o ChatGPT, implante o servidor MCP em modo HTTP na nuvem com acesso a um VOICEVOX Engine.

1. Implantar na Nuvem

Implante com Docker no Render, Railway, etc. (Dockerfile incluído).

2. Configurar o VOICEVOX Engine

Execute o VOICEVOX Engine localmente e exponha-o via ngrok, ou implante-o junto com o servidor MCP.

3. Configurar Variáveis de Ambiente

VariávelExemploDescrição
VOICEVOX_URLhttps://xxxx.ngrok-free.appURL do VOICEVOX Engine
MCP_HTTP_MODEtrueHabilitar modo HTTP
MCP_ALLOWED_HOSTSyour-app.onrender.comHostname implantado
VOICEVOX_PLAYER_DOMAINhttps://your-app.onrender.comDomínio do widget para o player de UI (obrigatório para ChatGPT)
VOICEVOX_DISABLED_TOOLSspeakDesabilitar reprodução no servidor (sem dispositivo de áudio)
VOICEVOX_PLAYER_EXPORT_ENABLEDfalseDesabilitar recurso de exportação (arquivos não podem ser baixados da nuvem)

4. Adicionar Conector no ChatGPT

Vá para Configurações do ChatGPT → Conectores → Adicionar URL do servidor MCP (https://your-app.onrender.com/mcp).

Usando com Claude Web

Os passos básicos são os mesmos do ChatGPT, mas o valor de VOICEVOX_PLAYER_DOMAIN é diferente.

O Claude Web exige que ui.domain seja um domínio dedicado baseado em hash. Calcule-o com o seguinte comando:

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

Exemplo: Se a URL do seu servidor MCP é 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

Defina esse valor de saída como VOICEVOX_PLAYER_DOMAIN.

Nota: Como o ChatGPT e o Claude Web exigem valores diferentes de VOICEVOX_PLAYER_DOMAIN, uma única instância não pode atender ambos os clientes simultaneamente. Implante instâncias separadas para cada um, ou alterne a variável de ambiente dependendo do cliente alvo.


Solução de Problemas

O áudio não está reproduzindo

1. Verifique se o VOICEVOX Engine está em execução

curl http://localhost:50021/speakers

2. Verifique as ferramentas de reprodução específicas da plataforma

SOFerramenta Necessária
LinuxUma de aplay, paplay, play, ffplay
macOSafplay (pré-instalado)
WindowsPowerShell (pré-instalado)
Não reconhecido pelo cliente MCP
  • Verifique a instalação do pacote: npm list -g @kajidog/mcp-tts-voicevox
  • Verifique a sintaxe JSON no arquivo de configuração
  • Reinicie o cliente

Estrutura do Pacote

PacoteDescrição
@kajidog/mcp-tts-voicevoxServidor MCP (apps/mcp-tts)
@kajidog/voicevox-clientBiblioteca cliente VOICEVOX de uso geral (pode ser usada de forma independente)
@kajidog/mcp-coreInfraestrutura MCP compartilhada (esquema de configuração, inicializador HTTP/stdio). Não publicada — empacotada no servidor
@kajidog/player-uiInterface de player de áudio baseada em React, empacotada em um único arquivo HTML. Não publicada

Informações para Desenvolvedores

Configuração

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

Comandos

O gerenciador de pacotes é pnpm (npm / yarn não são suportados).

ComandoDescrição
pnpm buildCompilar todos os pacotes
pnpm testExecutar testes
pnpm lintExecutar lint (uma única passada do Biome em todo o workspace)
pnpm typecheckVerificação de tipos em todos os pacotes
pnpm changesetAdicionar um changeset para uma alteração visível ao usuário

Os servidores de desenvolvimento ficam no pacote do servidor, então execute-os com um filtro:

ComandoDescrição
pnpm --filter @kajidog/mcp-tts-voicevox devIniciar servidor de desenvolvimento (stdio)
pnpm --filter @kajidog/mcp-tts-voicevox dev:httpIniciar servidor de desenvolvimento em modo HTTP
pnpm --filter @kajidog/mcp-tts-voicevox dev:bunIniciar servidor de desenvolvimento com Bun
pnpm --filter @kajidog/mcp-tts-voicevox dev:bun:httpIniciar servidor de desenvolvimento HTTP com Bun

Licença

ISC