Voice conversation for Claude Desktop (Cowork) — handles 60s timeout limit
From voicemodenpx claudepluginhub harshav167/ava --plugin voicemodemessageVoice conversation optimized for Claude Desktop / Cowork which has a hardcoded 60-second MCP timeout.
CRITICAL: Claude Desktop kills MCP tool calls after 60 seconds regardless of the timeout parameter you pass. You MUST split speak and listen into two separate tool calls.
converse(message="Your message here", wait_for_response=false, speed=1.2)
This speaks the message and returns immediately. Takes 5-30 seconds depending on message length.
converse(message="", skip_tts=true, wait_for_response=true, speed=1.2, listen_duration_min=5, listen_duration_max=50, timeout=55)
This skips TTS and only listens for the user's response. Keep listen_duration_max under 50 seconds to stay within the 60s timeout with buffer.
Claude Desktop enforces a 60-second hard timeout on ALL MCP tool calls. A single converse call that speaks (10-30s) + listens (up to 60s) will always exceed 60s and get killed. Splitting into two calls keeps each under the limit.
// Step 1: Speak
converse(message="What would you like to work on today?", wait_for_response=false, speed=1.2)
// Step 2: Listen
converse(message="", skip_tts=true, wait_for_response=true, listen_duration_min=5, listen_duration_max=50, timeout=55)
For dictation or detailed instructions, call listen multiple times:
// Speak first
converse(message="Go ahead, I'm listening.", wait_for_response=false, speed=1.2)
// Listen round 1
result1 = converse(message="", skip_tts=true, wait_for_response=true, listen_duration_max=50, timeout=55)
// If user is still talking (result ends mid-sentence), listen again
result2 = converse(message="", skip_tts=true, wait_for_response=true, listen_duration_max=50, timeout=55)
timeout parameter is ignored by Claude Desktop — it always uses 60s. Set it anyway for documentation.skip_tts=true parameter tells converse to skip text-to-speech and go straight to listening.In claude_desktop_config.json:
{
"mcpServers": {
"voicemode": {
"type": "http",
"url": "http://127.0.0.1:8765/mcp"
}
}
}