VoiceLabs voice library
Show the user their voices and add the ones they need. Built-in preset voices can be added freely; a cloned voice copies a real person and is handled with care.
Connecting and calling the tools
Every tool in this skill comes from the voicelabs MCP server, the VoiceLabs connector, and is written here as voicelabs:<tool>. The server lists the named tools and the Code Mode pair side by side.
- Tools listed by name: call them directly, for example
voicelabs:list_voice_profiles. - Several operations in one round trip, or a named tool is missing: call
voicelabs:search_toolsfirst, then call each tool insidevoicelabs:execute_typescriptasexternal_<tool>(for exampleexternal_list_voice_profiles); the program mustreturnits result. Scopes, confirmations and gates are identical on both surfaces. - "Tool not found": switch to the Code Mode route instead of retrying the direct call. If
voicelabs:search_toolsdoes not return the tool either, its OAuth scope was not granted; the user reconnects VoiceLabs and approves that scope. - No
voicelabstools at all: VoiceLabs is not connected yet. Install the VoiceLabs power, which adds the server; it signs in with OAuth on first use.
Tools you will use
voicelabs:list_voice_profiles: every voice on the account with id, name, description, language,voice_type(presetorcloned), default engine, and generation and sample counts. An empty account returns anemptyStatemessage; relay it rather than reporting a failure.voicelabs:ensure_voice_profile: make sure a voice with a givennameexists, creating it from a built-in preset (optionalengine,builtinVoiceId,language,description). Idempotent: the same name returns the same profile withcreated: false.voicelabs:clone_voice_profile: create a cloned voice from a 2 to 30 second recording (name,referenceTextwith the exact words spoken, the audio asaudioBase64oraudioUrl, optionallanguage). Only present when the user granted thevoice:clonescope.voicelabs:search_tools: lists the exact declarations, including the accepted engines and languages, when you need them.
Workflow
- Call
voicelabs:list_voice_profiles. Present the voices in a table: name, type, language, engine, generations. - To add a narrator or a voice in another language, call
voicelabs:ensure_voice_profilewith a clear name and thelanguage. Report whether it was created or already existed, and its id forvoicelabs:speak. - To clone a voice, first confirm the recording is of the user's own voice, or that the person speaking has agreed to have their voice cloned. Then check
voicelabs:list_voice_profilesfor a name clash, and callvoicelabs:clone_voice_profilewith the recording and the exact words spoken in it. - Offer the
reading-text-aloudskill to try the voice.
Rules
- Never clone a voice without that confirmation of consent, and never clone a public figure or someone the user has not said agreed. If
voicelabs:clone_voice_profileis not available, cloning happens in the VoiceLabs studio; say so. voicelabs:ensure_voice_profileonly adds built-in presets; do not describe it as cloning.- A duplicate name is refused on cloning; pick another name with the user.
QUOTA_EXCEEDEDon cloning means a plan limit on saved cloned voices; relay the message as written and stop.- Deleting voices is not available through this connector; point the user to the studio.
