livechat-mcp
livechat-mcp
Un servidor de Model Context Protocol (MCP) que te permite mantener una conversación de voz continua con tu asistente de programación de IA. Tú hablas, tu voz se transcribe localmente con Whisper y cada enunciado se entrega al asistente como si lo hubieras escrito. Sin cambiar de pestaña, sin copiar/pegar, sin grabaciones por lotes.
Funciona con cualquier host MCP. Soporte de primera clase para:
Claude Code
Codex CLI
Gemini CLI
Requisitos
macOS, Linux o Windows (nativo mediante PowerShell, o bajo WSL2 / Git Bash).
Python 3.10+
Un host MCP instalado (Claude Code, Codex, Gemini, etc.)
Un micrófono funcional
~500 MB de disco para la caché del modelo Whisper + dependencias
uvpara la gestión del proyecto (recomendado)
Instalación rápida (recomendada)
Desde un clon del repositorio:
# macOS / Linux / Git Bash on Windows
./install.sh# Native Windows PowerShell
.\install.ps1El bootstrap detecta el sistema operativo, instala portaudio si es necesario (brew / apt / dnf / pacman / zypper — los wheels de Windows lo incluyen integrado), instala uv si falta, ejecuta uv sync, coloca el asistente en ~/.local/bin y lanza el asistente de configuración interactivo.
Windows: el bloqueo nativo utiliza
msvcrty la señalización de toma de control se basa en archivos, por lo que no hay dependencia defcntl. El asistente interactivo es un script de bash —install.ps1lo invoca a través de Git Bash, el cual ofrece instalar mediantewingetsi falta.
Configuración manual
Si prefieres instalar paso a paso, esto es lo que hace install.sh:
1. Instalar portaudio
sounddevice necesita portaudio.
macOS:
brew install portaudioDebian/Ubuntu:
sudo apt-get install libportaudio2 portaudio19-devFedora/RHEL:
sudo dnf install portaudio portaudio-develArch:
sudo pacman -S portaudio
2. Instalar uv si no lo tienes
curl -LsSf https://astral.sh/uv/install.sh | sh3. Clonar e instalar dependencias
cd livechat-mcp
uv syncEsto creará .venv/ e instalará mcp, faster-whisper, sounddevice, silero-vad, torch, etc.
4. Ejecutar el asistente de configuración
install -m 0755 bin/livechat-mcp ~/.local/bin/livechat-mcp
livechat-mcp setupEl asistente:
Preguntará para qué asistentes instalar (Claude Code / Codex / Gemini, cualquier combinación).
Copiará los comandos slash
/livechaty/endlivechata los hosts que admitan comandos slash personalizados. Para Codex, instala tanto archivos de prompt heredados como una skilllivechat, ya que las versiones actuales de Codex CLI no exponen prompts personalizados como/livechat.Registrará el servidor MCP en el archivo de configuración de cada host.
Te guiará a través de las variables de entorno ajustables (umbral de silencio, modelo Whisper, etc.) — presiona Enter para mantener los valores predeterminados.
Asegúrate de que ~/.local/bin esté en tu PATH (ya lo está si usaste el instalador oficial de uv).
Si prefieres configurar las cosas manualmente, los pasos para cada host se encuentran a continuación.
5. Conceder permiso de micrófono
macOS: la primera vez que el servidor intente capturar audio, macOS le pedirá a tu aplicación de terminal (Terminal, iTerm, Ghostty, Warp, etc.) acceso al micrófono. Si pierdes el aviso, habilítalo manualmente:
Ajustes del Sistema → Privacidad y seguridad → Micrófono → habilitar para tu terminal
Si omites esto, la captura de audio devolverá silencio silenciosamente y nada se transcribirá.
Windows: Configuración → Privacidad y seguridad → Micrófono → permitir que las aplicaciones de escritorio accedan al micrófono (y asegúrate de que tu terminal tenga permiso).
Linux: normalmente no hay aviso — solo asegúrate de que tu usuario tenga el acceso correcto a ALSA / PulseAudio / Pipewire (normalmente el grupo
audio).
6. Pre-descargar el modelo Whisper (opcional)
La primera ejecución descarga base.en (~150 MB). Puedes pre-cargarlo:
uv run python -c "from faster_whisper import WhisperModel; WhisperModel('base.en', device='cpu', compute_type='int8')"Instalación manual (omite si usaste livechat-mcp setup)
Claude Code
Copia los comandos slash:
mkdir -p ~/.claude/commands
cp commands/livechat.md ~/.claude/commands/
cp commands/endlivechat.md ~/.claude/commands/Registra el servidor MCP:
claude mcp add livechat -- uv --directory "$(pwd)" run livechat-mcpO edita ~/.claude.json directamente:
{
"mcpServers": {
"livechat": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/livechat-mcp", "run", "livechat-mcp"]
}
}
}Codex CLI
Instala la skill de Codex y los archivos de prompt heredados:
mkdir -p ~/.codex/skills/livechat
cp skills/livechat/SKILL.md ~/.codex/skills/livechat/
mkdir -p ~/.codex/prompts
cp commands/livechat.md ~/.codex/prompts/
cp commands/endlivechat.md ~/.codex/prompts/Registra el servidor MCP en ~/.codex/config.toml:
[mcp_servers.livechat]
command = "uv"
args = ["--directory", "/absolute/path/to/livechat-mcp", "run", "livechat-mcp"]Gemini CLI
Gemini usa TOML para comandos personalizados. El asistente los genera por ti; para hacerlo a mano, consulta commands/gemini/livechat.toml.template (creado al ejecutar livechat-mcp setup una vez).
Registra el servidor MCP en ~/.gemini/settings.json:
{
"mcpServers": {
"livechat": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/livechat-mcp", "run", "livechat-mcp"]
}
}
}Uso
Abre la CLI de tu asistente en cualquier terminal:
claude # or: codex or: geminiLuego, en el prompt del asistente:
/livechat # Claude Code, Gemini CLI
use livechat # Codex CLISe requiere reiniciar Codex. Codex solo carga skills y servidores MCP al inicio. Si ejecutaste el asistente mientras Codex estaba abierto, ciérralo y reinícialo antes de usar
use livechat.
Codex 0.128.0 no admite comandos slash /livechat definidos por el usuario; / está actualmente reservado para los comandos integrados de Codex. La configuración instala una skill livechat descubrible en su lugar, por lo que puedes escribir use livechat o abrir /skills y seleccionar livechat.
El asistente llamará a get_voice_input y comenzará a escuchar. Habla normalmente. Cuando haces una pausa de ~1.5 segundos, tu enunciado se finaliza, se transcribe y se envía como un prompt. El asistente responde y luego escucha inmediatamente el siguiente enunciado.
Mientras el asistente genera una respuesta, el micrófono sigue activo — cualquier cosa que digas durante ese tiempo se pone en cola y se entrega todo a la vez en la siguiente llamada a get_voice_input.
Finalizar una sesión
Tres formas:
/endlivechat— la más limpia, se ejecuta desde el prompt del asistente. (Primero deberás interrumpir el turno actual si está a mitad de respuesta).Frase de activación — di
terminate voice session now. La transcripción activa el apagado. La frase es intencionalmente incómoda para evitar colisiones con contenido de revisión real. Configurable medianteLIVECHAT_END_PHRASE.Ctrl+C — mata el servidor MCP. El asistente verá un error de herramienta en la siguiente llamada y detendrá el bucle.
Configuración
Todos los parámetros ajustables residen en livechat_mcp/config.py y pueden ser sobrescritos mediante variables de entorno:
Var | Predeterminado | Notas |
|
| Solo inglés: |
|
| Código de idioma ( |
|
|
|
|
|
|
|
| Silencio después del habla para finalizar un enunciado |
|
| Umbral de probabilidad de habla de Silero VAD |
|
| Longitud mínima del enunciado (filtra toses) |
|
| Corte forzado de enunciados descontrolados |
|
| Cuánto tiempo bloquea |
|
| Frase hablada para finalizar la sesión |
| sin establecer | Establecer en |
La forma fácil de establecer esto es livechat-mcp set CLAVE VALOR — edita el bloque env en cada configuración de host que encuentra (Claude / Codex / Gemini).
livechat-mcp show # print current env block(s)
livechat-mcp set LIVECHAT_SILENCE_SEC 1.5
livechat-mcp unset LIVECHAT_DEBUGReinicia la CLI de tu asistente después de cualquier cambio — las variables de entorno MCP son leídas por el servidor al inicio.
Para hacerlo manualmente, edita el campo env de la entrada MCP de livechat en la configuración de cada host. Ejemplo para Claude Code:
{
"mcpServers": {
"livechat": {
"command": "uv",
"args": ["--directory", "/abs/path", "run", "livechat-mcp"],
"env": {
"LIVECHAT_WHISPER_MODEL": "small.en",
"LIVECHAT_DEBUG": "1"
}
}
}
}Solución de problemas
No sucede nada cuando hablo.
Verifica (en orden): permiso de micrófono para tu aplicación de terminal, nivel de entrada de micrófono (Ajustes del Sistema → Sonido), establece LIVECHAT_DEBUG=1 y observa stderr para eventos VAD, reduce LIVECHAT_VAD_THRESHOLD a 0.3.
Las transcripciones son inexactas.
Actualiza el modelo: LIVECHAT_WHISPER_MODEL=small.en o medium.en. medium.en es notablemente más lento en CPU (aunque sigue siendo casi en tiempo real) pero mucho mejor para vocabulario técnico.
El enunciado termina demasiado rápido / demasiado lento.
Ajusta LIVECHAT_SILENCE_SEC (o ejecuta livechat-mcp set LIVECHAT_SILENCE_SEC 1.5). 1.0–4.5 es el rango útil — un valor más bajo se siente más ágil pero corre el riesgo de cortar pausas a mitad de pensamiento.
uv no encontrado.
Instala uv (recomendado) o cambia el command de la configuración MCP a una invocación directa de python -m livechat_mcp.server desde dentro de un venv activado.
El servidor inicia pero el asistente nunca llama a la herramienta.
Asegúrate de que se invocó /livechat. Sin el comando slash, el asistente no tiene instrucciones para entrar en el bucle.
Los registros del servidor van a la interfaz del asistente como basura / rompen el protocolo.
Esto no debería suceder — todo el registro del servidor va a stderr. Si lo ves, informa de un error. Asegúrate de no haber añadido ninguna declaración print(...) sin file=sys.stderr.
Errores de portaudio al iniciar.
Instálalo: brew install portaudio. Si está instalado y sigue fallando, intenta brew reinstall portaudio y reinstala sounddevice: uv sync --reinstall.
Cómo funciona (versión corta)
[mic] → [Silero VAD] → [Whisper] → [queue] ← [get_voice_input tool] ← [Assistant]
↑________background thread, always running________↑La tubería de audio está desacoplada de la herramienta MCP, por lo que el micrófono está siempre activo mientras el servidor está encendido. Los enunciados hablados mientras el asistente genera una respuesta se ponen en cola y se entregan en la siguiente llamada a la herramienta.
Licencia
MIT.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brunocramos/livechat-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server