VoiceMode MCP Server for Claude Voice Conversations
Enable Claude voice conversations using the VoiceMode MCP server with any OpenAI-compatible STT/TTS service at getvoicemode.com.
Overview
VoiceMode is an MCP (Model Context Protocol) server that enables natural voice conversations with Claude (including Claude Code) by providing an OpenAI-compatible STT/TTS interface. It acts as a bridge between Claude (or any MCP-capable agent) and speech services — locally hosted engines (Whisper.cpp for ASR, Kokoro for TTS) or cloud providers following OpenAI-compatible APIs — so you can speak to and hear responses from Claude with low latency and optional local-only privacy.
For developers, VoiceMode simplifies adding voice to a conversational agent: it implements the STT/TTS endpoints Claude expects, handles recording/silence detection, and can fall back to cloud APIs when local models are not available. This is useful when typing is inconvenient (walking, cooking, accessibility scenarios) or when you need quick spoken feedback integrated into development or automation workflows.
Features
- OpenAI-compatible STT/TTS API surface (acts like OpenAI speech endpoints)
- Works with Claude Code and other MCP-capable agents via the MCP server
- Optional local speech services (Whisper.cpp for ASR, Kokoro for TTS)
- Fast response times and low-latency audio streaming
- Smart silence detection to stop recording automatically
- Privacy-first mode: run entirely locally, or use cloud fallbacks
- Save audio for debugging via environment variable
- Cross-platform support: Linux, macOS, Windows (WSL), NixOS
- Python 3.10–3.14 compatible
Installation / Configuration
Quick-start commands for common setups.
- Claude Code plugin (recommended)
# Add VoiceMode marketplace and install plugin
# Install command-line/local services (runs installer)
# From inside Claude plugin UI or CLI:
# Start a conversation
- Python installer package (manual / CLI)
# If you need the uv package manager
|
# Run the installer that sets up dependencies and local voice services
# Add VoiceMode to Claude via MCP
# Optionally set an OpenAI API key for cloud fallbacks
# Start a conversation through Claude/CLI
- From source
Configuration
# Edit the VoiceMode configuration (CLI helper)
# Enable saving recorded audio for debugging
# Files stored under: ~/.voicemode/audio/YYYY/MM/
Permissions (optional)
# Add to ~/.claude/settings.json to avoid permission prompts
System dependencies (examples)
| Platform | Example packages |
|---|---|
| Ubuntu/Debian | ffmpeg, gcc, libasound2-dev, portaudio19-dev, pulseaudio |
| Fedora/RHEL | alsa-lib-devel, ffmpeg, gcc, portaudio |
| macOS | ffmpeg, node, portaudio (brew) |
| NixOS | use nix develop github:mbailey/voicemode or install via flake |
Available Resources
- Repository: https://github.com/mbailey/voicemode
- Website / project: https://getvoicemode.com
- Documentation site: https://voice-mode.readthedocs.io
- PyPI package: https://pypi.org/project/voice-mode/
- Demo video: YouTube (search “VoiceMode Demo”)
Local service guides:
- Whisper (local ASR) setup guide
- Kokoro (local TTS) setup guide
Use Cases
- Hands-free coding/debugging: ask Claude to explain or modify code while you type or read elsewhere.
- Accessibility: provide spoken interaction for users who prefer audio or have limited dexterity.
- On-the-go workflows: get briefings, run quick queries, or debug while walking between meetings.
- Embedded demos: integrate voice into demos or user tests without reimplementing STT/TTS APIs.
- Privacy-first deployments: run ASR/TTS locally behind a private network with optional cloud fallback.
Concrete example — add voice to a Claude conversation:
- Install VoiceMode and local services.
- Set OPENAI_API_KEY if you want cloud fallbacks.
- Run the MCP server through the Claude plugin or the local CLI.
- Start a conversation and speak; VoiceMode will record, transcribe, send text to Claude, and play TTS responses.
Troubleshooting / Tips
- No microphone: verify OS/app permissions, and on WSL2 install pulseaudio packages.
- No audio out: check system audio devices and default sink settings.
- UV not found: install via curl command shown above.
- OpenAI API errors: confirm OPENAI_API_KEY is set and valid.
- Debugging audio: set VOICEMODE_SAVE_AUDIO=true to save recordings for inspection.
For full setup, advanced configuration, and contribution guidelines, see the repository documentation at the GitHub link above.