From 89901040814ceecf40a7a34b8fc272079a37d185 Mon Sep 17 00:00:00 2001 From: Jashwanth Date: Sun, 28 Jun 2026 10:34:50 +0530 Subject: [PATCH] fix: use underscore-separated MCP tool names so Claude Desktop accepts them Claude Desktop validates tool names against ^[a-zA-Z0-9_-]{1,64}$ and rejects the whole tool list when any name contains a dot, so the Voicebox MCP server was unusable there. Rename voicebox.speak, voicebox.transcribe, voicebox.list_captures and voicebox.list_profiles to voicebox_speak, voicebox_transcribe, voicebox_list_captures and voicebox_list_profiles. Fixes #790 --- backend/mcp_server/tools.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/mcp_server/tools.py b/backend/mcp_server/tools.py index 61003f11..fae79e48 100644 --- a/backend/mcp_server/tools.py +++ b/backend/mcp_server/tools.py @@ -36,7 +36,7 @@ def register_tools(mcp: FastMCP) -> None: """Attach all Voicebox tools to the given FastMCP instance.""" @mcp.tool( - name="voicebox.speak", + name="voicebox_speak", description=( "Speak text in a Voicebox voice profile. Returns a generation id " "the caller can poll at /generate/{id}/status. Audio plays on the " @@ -113,7 +113,7 @@ def register_tools(mcp: FastMCP) -> None: db.close() @mcp.tool( - name="voicebox.transcribe", + name="voicebox_transcribe", description=( "Transcribe an audio clip to text using Voicebox's local Whisper. " "Pass exactly one of `audio_base64` (bytes as base64) or " @@ -171,7 +171,7 @@ def register_tools(mcp: FastMCP) -> None: tmp_path.unlink(missing_ok=True) @mcp.tool( - name="voicebox.list_captures", + name="voicebox_list_captures", description=( "List recent voice captures (dictations, recordings, uploads) " "with their transcripts. Most-recent first." @@ -199,7 +199,7 @@ def register_tools(mcp: FastMCP) -> None: db.close() @mcp.tool( - name="voicebox.list_profiles", + name="voicebox_list_profiles", description=( "List available voice profiles (both cloned voices and presets). " "Use the returned `name` with voicebox.speak(profile=...)."