Native macOS MCP server for voice I/O — Swift binary, SFSpeechRecognizer + ElevenLabs TTS.
A native macOS MCP server that gives Claude a voice.
Built in Swift. No Node.js. No Python. No Electron. Just a single binary.
{
"mcpServers": {
"vox": {
"command": "/path/to/vox"
}
}
}
Then just say: listen — and Claude hears you.
| Tool | What it does |
|---|---|
listen | Activates the mic, waits for you to speak, returns transcript + detected language when silence is detected |
speak | Speaks text aloud — ElevenLabs TTS with automatic fallback to macOS system voice |
ELEVENLABS_API_KEY in ~/.claude/.env for high-quality multilingual TTSCopy and paste this into Claude Code:
Install vox (native macOS voice input/output MCP server):
1. Download the code-signed binary to ~/vox:
curl -L https://github.com/boska/vox/releases/download/v1.1.0/vox-1.1.0-darwin-arm64 -o ~/vox && chmod +x ~/vox
2. Add to ~/.claude.json in the mcpServers section:
{
"mcpServers": {
"vox": {
"command": "/Users/$(whoami)/vox"
}
}
}
3. Restart Claude Code
4. Test it by saying: listen
Claude will handle the download, configuration, and restart.
curl -L https://github.com/boska/vox/releases/download/v1.1.0/vox-1.1.0-darwin-arm64 -o ~/vox && chmod +x ~/vox
Then add to ~/.claude.json:
{
"mcpServers": {
"vox": {
"command": "/Users/$(whoami)/vox"
}
}
}
Restart Claude Code.
git clone https://github.com/boska/vox
cd vox
swift build -c release --product vox
Add to ~/.claude.json:
{
"mcpServers": {
"vox": {
"command": "/path/to/vox/.build/release/vox"
}
}
}
Restart Claude Code.
Default TTS voice is Hana via ElevenLabs (eleven_multilingual_v2). Supports Chinese, English, Czech, Vietnamese, and 20+ languages in the same voice. Without an ElevenLabs key, falls back to macOS system voice automatically.
Claude Code
↓ JSON-RPC 2.0 over stdio
vox binary
↓ ↑
AVAudioEngine AVSpeechSynthesizer
SFSpeechRecognizer ElevenLabs API
NLLanguageRecognizer
No ports. No sockets. No daemon. Just stdin/stdout.
"No speech detected" — speak within ~1s of calling listen, VAD cuts off after 0.8s silence.
No default input device — Mac mini has no built-in mic. Connect USB/Bluetooth mic or iPhone via Continuity Camera, set default in System Settings → Sound → Input.
ElevenLabs silent — add ELEVENLABS_API_KEY=sk-... to ~/.claude/.env, or leave it out to use system voice.
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
https://github.com/boska/vox/releases/download/v1.0.0/vox-mcpotherio.github.boska/vox works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.