La mayoría de servidores MCP dan al agente acceso a algo remoto: una base de datos, una API, un gestor de tickets. El servidor MCP de voz de Vext hace lo contrario: da al agente acceso a tu micrófono, a tus transcripciones de reuniones y a tu historial de dictado, sin que nada salga de la máquina.

Viene desactivado. Activarlo permite que cualquier proceso de tu Mac que tenga el token controle la aplicación, así que es una decisión deliberada, no algo que decidamos por ti. Este artículo cubre qué expone el servidor, cómo conectar los clientes habituales y los pocos flujos de trabajo donde compensa de verdad.

Qué es

Vext levanta un servidor HTTP local que habla Streamable HTTP MCP. Tres hechos definen su postura de seguridad:

  • Solo loopback. Escucha en 127.0.0.1, así que nunca cruza una red.
  • Token bearer. Cada petición lleva una cabecera Authorization: Bearer. El token se genera la primera vez que se lee y puedes regenerarlo desde Ajustes.
  • Desactivado por defecto. Nada escucha hasta que tú lo habilitas.

El puerto por defecto es 58398, alto y sin asignar, elegido para no chocar con servidores de desarrollo ni con los puntos MCP de las otras apps de Muvon. La ruta es /mcp, de modo que el punto final completo es http://127.0.0.1:58398/mcp.

Es el mismo servidor con el que llegó la transcripción en vivo de Vext 1.4.0.

Añadir el servidor MCP a Claude Code y otros clientes

Ajustes muestra un fragmento copiable para cada cliente con tu token ya insertado. Estas son las formas:

Claude Code, un solo comando claude mcp add:

claude mcp add --transport http vext http://127.0.0.1:58398/mcp --header "Authorization: Bearer YOUR_TOKEN"

Cursor, Windsurf, Claude Desktop, el JSON estándar de mcpServers:

{
  "mcpServers": {
    "vext": {
      "url": "http://127.0.0.1:58398/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Codex, la configuración MCP de Codex va en ~/.codex/config.toml:

[mcp_servers.vext]
url = "http://127.0.0.1:58398/mcp"
http_headers = { Authorization = "Bearer YOUR_TOKEN" }

OpenCode, en opencode.json, del proyecto o en ~/.config/opencode/:

{
  "mcp": {
    "vext": {
      "type": "remote",
      "url": "http://127.0.0.1:58398/mcp",
      "enabled": true,
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Octomind es la excepción. Sus servidores HTTP no pueden enviar cabeceras personalizadas, así que el token viaja en la cadena de consulta, algo seguro aquí precisamente porque el punto final solo es accesible por loopback. Ajustes te da esa variante por separado.

Las 38 herramientas, agrupadas

En lugar de listar cada firma, esta es la forma de lo que un agente puede hacer.

Dictado en vivo. start_dictation, stop_dictation, cancel_dictation. El agente empieza a escuchar, tú hablas y él recoge después la transcripción, ya con la limpieza y el estilo activo aplicados. stop_dictation acepta paste=true para insertar el texto en tu cursor igual que un dictado normal.

Escribir en tu nombre. paste_text inserta texto en el cursor de la app en primer plano y restaura tu portapapeles después.

Transcripción de archivos. transcribe_file ejecuta el modelo de voz local sobre un wav, m4a, mp3 o aiff del disco y devuelve el texto en bruto y el limpio.

Reuniones. start_meeting, stop_meeting, list_meetings, get_meeting, rename_meeting, delete_meeting, summarize_meeting, export_meeting. Las reuniones graban micrófono y audio del sistema con etiquetas de hablante. La transcripción está disponible de inmediato; el refinado de hablantes y el resumen terminan en segundo plano, así que get_meeting es el punto donde consultar. La exportación escribe markdown, txt, srt o vtt y devuelve la ruta.

Hablantes. list_speakers, rename_speaker, merge_speakers, delete_speaker, label_meeting_speaker. Los perfiles de voz persisten entre reuniones, así que nombrar a alguien una vez sirve para siempre.

Notas e historial. start_note, stop_note, list_notes, get_note, delete_note, además de list_dictations, get_dictation, delete_dictation y retry_dictation. Las notas se graban y se guardan en lugar de pegarse.

Configuración. get_settings, set_settings, list_microphones, set_microphone, list_app_profiles, set_app_profile, remove_app_profile, list_vocabulary, add_vocabulary, remove_vocabulary, get_status.

Las herramientas de solo lectura están marcadas como tales, y las destructivas (delete_note, delete_dictation y compañía) se marcan como destructivas, de modo que un cliente bien hecho puede pedir confirmación antes de ejecutarlas.

Para qué sirve esto realmente

Los inventarios de herramientas son fáciles de escribir y difíciles de que importen. Tres flujos justifican la configuración:

1. Hablar con tu agente sin baile de atajos. Pide a Claude Code que inicie el dictado, habla dos minutos explicando tus requisitos y deja que él recoja la transcripción. No tocas el teclado, y el agente controla el momento: puede empezar a escuchar justo después de hacerte una pregunta. Es la extensión natural de la entrada de voz en Claude Code.

2. De la reunión al commit. Después de una llamada de planificación: «lee mi última reunión, extrae las tareas asignadas a mí y abre incidencias para ellas». get_meeting devuelve la transcripción con nombres de hablante y marcas de tiempo, más el resumen. El agente tiene contexto real sobre quién se comprometió a qué, y nada de ese audio salió de tu Mac.

3. Enseñar al reconocedor desde el código. add_vocabulary recibe un par de «se oye como» y «sustituir por». Pon a un agente a recorrer tu repositorio y que añada en bloque los nombres de módulos, los identificadores raros y las dependencias al vocabulario. La precisión del dictado con la jerga de tu proyecto mejora al instante, y no has escrito ni una entrada a mano.

Dónde no ayuda

Seamos realistas. El servidor no hará que un agente programe mejor, y dictar código carácter a carácter sigue siendo peor que teclearlo: la voz es para prosa, intención y comentarios de revisión, que es justo el argumento de nuestro artículo sobre programar por voz con agentes de IA.

Hay además una consideración de seguridad que conviene decir claramente: habilitar el servidor significa que cualquier proceso local con el token puede activar tu micrófono y pegar texto en la app que tengas delante. Eso es una capacidad importante. Por eso la función viene desactivada, por eso existe el token y por eso regenerarlo es un solo clic. Si compartes máquina o ejecutas herramientas locales en las que no confías, piénsalo antes de activarlo.

Empezar

Los ajustes de MCP están en Ajustes → General → MCP server for AI agents: un interruptor, el puerto, el token y los fragmentos por cliente con el token ya sustituido.

brew install muvon/tap/vext

Vext cuesta 49 $ una sola vez, con una prueba de 100 dictados, en macOS 14 o posterior con Apple Silicon. La transcripción y el pulido se ejecutan en local, y el servidor MCP también. Todo el ciclo —micrófono, modelo, transcripción, agente— se queda en tu máquina.