Die meisten MCP-Server geben einem Agenten Zugriff auf etwas Entferntes — eine Datenbank, eine API, ein Ticketsystem. Der Sprach-MCP-Server von Vext macht das Gegenteil: Er gibt einem Agenten Zugriff auf dein Mikrofon, deine Meeting-Transkripte und deinen Diktatverlauf, ohne dass irgendetwas den Rechner verlässt.

Er ist standardmäßig aus. Ihn einzuschalten erlaubt jedem Prozess auf deinem Mac, der das Token besitzt, die App zu steuern — das ist also eine bewusste Entscheidung, die wir dir nicht abnehmen. Dieser Beitrag zeigt, was der Server bereitstellt, wie du die gängigen Clients verbindest und in welchen wenigen Abläufen sich das wirklich auszahlt.

Was es ist

Vext betreibt einen lokalen HTTP-Server, der Streamable HTTP MCP spricht. Drei Punkte bestimmen die Sicherheitslage:

  • Nur Loopback. Er bindet an 127.0.0.1 und verlässt damit nie das Netzwerkinterface deines Rechners.
  • Bearer-Token. Jede Anfrage trägt einen Authorization: Bearer-Header. Das Token wird beim ersten Lesen erzeugt und lässt sich in den Einstellungen neu generieren.
  • Standardmäßig aus. Nichts lauscht, bis du es aktivierst.

Der Standardport ist 58398 — hoch und nicht vergeben, damit er nicht mit Dev-Servern oder den MCP-Endpunkten der anderen Muvon-Apps kollidiert. Der Pfad ist /mcp, der vollständige Endpunkt also http://127.0.0.1:58398/mcp.

Es ist derselbe Server, der die Arbeit am laufenden Transkript in Vext 1.4.0 ausgeliefert hat.

Den MCP-Server zu Claude Code und anderen Clients hinzufügen

Die Einstellungen zeigen für jeden Client ein kopierbares Snippet mit deinem echten Token. Die Formen sind:

Claude Code — ein claude mcp add-Befehl:

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

Cursor, Windsurf, Claude Desktop — das übliche mcpServers-JSON:

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

Codex — der Eintrag für den Codex-MCP-Server kommt in ~/.codex/config.toml:

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

OpenCode — opencode.json, im Projekt oder unter ~/.config/opencode/:

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

Octomind ist die eine Ausnahme. Seine HTTP-Server können keine eigenen Header senden, deshalb reist das Token in der Query-String mit — hier unbedenklich, gerade weil der Endpunkt nur über Loopback erreichbar ist. Die Einstellungen liefern dir diese Variante separat.

Die 38 Werkzeuge, gruppiert

Statt jede Signatur aufzuzählen, hier der Umriss dessen, was ein Agent tun kann.

Live-Diktat. start_dictation, stop_dictation, cancel_dictation. Der Agent beginnt zuzuhören, du sprichst, er holt anschließend das Transkript ab — nach Bereinigung und deinem aktiven Stil. stop_dictation nimmt paste=true entgegen und fügt den Text an deiner Cursorposition ein, genau wie ein normales Diktat.

Tippen in deinem Namen. paste_text fügt Text an der Cursorposition der vordersten App ein und stellt danach deine Zwischenablage wieder her.

Dateitranskription. transcribe_file lässt das lokale Sprachmodell über eine wav-, m4a-, mp3- oder aiff-Datei laufen und liefert Roh- und bereinigten Text.

Meetings. start_meeting, stop_meeting, list_meetings, get_meeting, rename_meeting, delete_meeting, summarize_meeting, export_meeting. Meetings zeichnen Mikrofon und Systemaudio mit Sprecherkennzeichnung auf. Das Transkript liegt sofort vor; Sprecherverfeinerung und Zusammenfassung laufen im Hintergrund weiter, get_meeting ist also der Ort zum Nachfragen. Der Export schreibt Markdown, txt, srt oder vtt und gibt den Pfad zurück.

Sprecher. list_speakers, rename_speaker, merge_speakers, delete_speaker, label_meeting_speaker. Stimmprofile bleiben über Meetings hinweg erhalten, wer einmal benannt wurde, bleibt also benannt.

Notizen und Verlauf. start_note, stop_note, list_notes, get_note, delete_note, dazu list_dictations, get_dictation, delete_dictation, retry_dictation. Notizen werden aufgezeichnet und gespeichert statt eingefügt.

Konfiguration. 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.

Nur lesende Werkzeuge sind als solche gekennzeichnet, löschende (delete_note, delete_dictation und Verwandte) als destruktiv — gut gebaute Clients können sie also hinter einer Rückfrage absichern.

Wofür das wirklich gut ist

Werkzeuglisten schreiben sich leicht und interessieren selten. Drei Abläufe rechtfertigen den Aufwand:

1. Mit deinem Agenten reden, ohne Tastenkombinations-Tanz. Bitte Claude Code, das Diktat zu starten, sprich zwei Minuten lang deine Anforderungen, und lass ihn das Transkript selbst abholen. Du fasst die Tastatur nicht an, und der Agent bestimmt den Zeitpunkt — er kann zuhören, nachdem er dir eine Frage gestellt hat. Das ist die natürliche Erweiterung der Spracheingabe für Claude Code.

2. Vom Meeting zum Commit. Nach einem Planungsgespräch: „Lies mein letztes Meeting, zieh die mir zugewiesenen Aufgaben heraus und leg Issues dafür an.“ get_meeting liefert das Transkript mit Sprechernamen und Zeitstempeln plus Zusammenfassung. Der Agent hat echten Kontext darüber, wer was zugesagt hat — und nichts davon hat je deinen Mac verlassen.

3. Der Erkennung aus dem Code beibringen. add_vocabulary nimmt ein Paar aus Gehört-als und Ersetzen-durch. Lass einen Agenten dein Repository durchgehen und Modulnamen, ungewöhnliche Bezeichner und Abhängigkeiten gesammelt ins Vokabular eintragen. Die Diktiergenauigkeit auf dem Jargon deines Projekts steigt sofort, und du hast keinen einzigen Eintrag von Hand getippt.

Wo es nicht hilft

Bleiben wir realistisch. Der Server macht einen Agenten nicht zum besseren Programmierer, und Code Zeichen für Zeichen zu diktieren bleibt schlechter als tippen — Sprache ist für Prosa, Absicht und Review-Kommentare da, genau das Argument aus Voice Coding mit KI-Agenten.

Und es gibt einen echten Sicherheitspunkt, den man klar sagen sollte: Den Server zu aktivieren heißt, dass jeder lokale Prozess mit dem Token dein Mikrofon starten und Text in deine vorderste App einfügen kann. Das ist eine erhebliche Fähigkeit. Deshalb ist die Funktion ausgeliefert deaktiviert, deshalb gibt es das Token, und deshalb ist das Neuerzeugen ein Klick. Wenn du dir eine Maschine teilst oder nicht vertrauenswürdige lokale Werkzeuge betreibst, denk vorher nach.

Loslegen

Die MCP-Einstellungen liegen in Vext unter Einstellungen → General → MCP server for AI agents: ein Schalter, der Port, das Token und Snippets pro Client mit bereits eingesetztem Token.

brew install muvon/tap/vext

Vext kostet einmalig 49 $, mit einer Testphase über 100 Diktate, auf macOS 14+ mit Apple Silicon. Transkription und Überarbeitung laufen lokal, der MCP-Server ebenfalls. Die gesamte Schleife — Mikrofon, Modell, Transkript, Agent — bleibt auf deinem Rechner.