Tool Signature Alignment: VoiceMode Local vs VoiceMode Connect
Date: 2026-02-16 Source: Voice conversation between Mike and Wimo Status: Proposed
Goal
Align the tool names and function signatures between VoiceMode (local MCP) and VoiceMode Connect (cloud MCP) so that:
- A wake/call message to an agent can simply say "use
converseto speak with Mike" and it works regardless of which MCP server handles the call - The agent doesn't need to know whether it's using local audio or remote WebSocket transport — same interface, different transport
Current State
VoiceMode Local (voice_mode/tools/)
Default tools exposed:
converse(message, wait_for_response, voice, ...)— TTS + STT via local mic/speakersservice(service_name, action, lines)— manage Whisper/Kokoro services
Additional tools:
register_wakeable(team_name, agent_name, agent_platform)— register as wakeable via Connect- Various admin tools (devices, providers, diagnostics, etc.)
VoiceMode Connect (mcp__claude_ai_voicemode-connect__*)
converse(message, wait_for_response, voice, speed, ...)— TTS + STT via remote web/mobile clientstatus(include_voices)— list connected devices
Proposed Direction
Review both converse signatures and align them so that:
- Core parameters match (message, wait_for_response, voice, speed)
- The wake/call message sent from the dashboard can just say "use converse to speak with [user]" without specifying which MCP server
- Either server can handle the call transparently
- Consider adding optional
deviceparameter to local converse to route through WebSocket when a Connect device is available
Questions to Resolve
- Should local
conversegain adeviceparameter that routes through Connect's WebSocket? - Or should the message just work with whichever
conversetool the agent has available? - How do we handle the case where an agent has both local VoiceMode and VoiceMode Connect installed?
- Should
statusbe unified to show both local and remote devices?
Context
This emerged from discussing how the dashboard "call" button should work. Instead of a special "wake" message type, the call button sends a regular message telling the agent to use converse to respond. If the tool signatures are aligned, the message works regardless of which MCP server the agent has.