How to Code with Voice in Cursor IDE
Cursor is already the fastest way to code. By adding a local, push-to-talk voice Model Context Protocol (MCP) server, you can command your codebase completely hands-free—without paying for per-minute audio APIs.
Why Local Voice?
Unlike built-in dictate features that might send your voice to a cloud provider, this setup uses Apple MLX Whisper and Kokoro TTS directly on your Mac. It's 100% private, free, and features a hardware-level "Push-to-Talk" lock (the Shift key) so it never accidentally picks up keyboard typing.
Prerequisites
- A Mac with Apple Silicon (M1, M2, M3, or M4).
- Cursor IDE installed.
- Node.js (v18+) installed.
Step 1: Install System Dependencies
Open your terminal and install the required audio libraries using Homebrew:
brew install portaudio espeak-ngStep 2: Install Voice MCP Server
Install the server globally via NPM so Cursor can easily locate it:
npm install -g voice-mcp-serverStep 3: Connect to Cursor
We need to tell Cursor to use this new capability.
- Open Cursor and navigate to Settings > Cursor Settings > MCP.
- Click + Add New MCP Server.
- Configure it with the following details:
- Name: voice-mcp-server
- Type: command
- Command: voice-mcp-server
- Click Save. Cursor will connect to the server.
Step 4: Grant Input Monitoring Permissions
To use the Push-to-Talk feature (Shift key) globally, macOS requires permission. Go to System Settings > Privacy & Security > Input Monitoring and toggle Cursor to ON.
Bonus: Need Time to Think?
The Voice MCP Server features an intelligent Standby Mode. If you need a moment, just tell the AI something like "give me a minute" or "let me think." It will gracefully suspend itself, turning off the microphone (and the orange macOS privacy dot) indefinitely. When you are ready to resume, simply press and hold Shift to start talking again!
You're Ready to Code!
Open a chat with Claude 3.5 Sonnet inside Cursor, and say: "Please use the voice_converse tool to introduce yourself." Press Shift to talk!