Skip to main content
Glama

Server Details

AI voice generation: text-to-speech and voice cloning from any MCP client.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
VoiceLabs
Claude
–

TDQS

A3.8/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target clearly distinct resources (billing, captures, profiles, connections, plans, tickets) and the two voice-profile creators are explicitly cross-referenced so clone vs ensure is understandable. A few at-a-glance pairs (clone_voice_profile vs ensure_voice_profile, search_tools vs execute_typescript, get_profile vs billing_status) require reading descriptions to separate.

Naming Consistency4/5

Dominated by a clean verb_noun pattern: clone_voice_profile, list_api_keys, get_generation, request_scopes, search_tools, etc. Minor deviations exist — noun-only billing_status and bare imperatives speak/transcribe — but nothing confusing.

Tool Count4/5

18 tools is on the heavier side but the surface is a legitimate multi-domain voice platform (TTS, STT, cloning, billing, referrals, support, connections, meta-tools), so each has a plausible purpose. Slightly above the ideal comfort zone for a single server.

Completeness3/5

Core speech lifecycle (speak + get_generation polling, transcribe, clone) is covered, but there are notable dead ends: list_connections references disconnect/reverify tools that don't exist, and there's no delete/update for voice profiles or captures, nor a create_support_ticket despite the list tool. Agents will hit gaps in object management.

Publisher details

Operator
Devino Solutions
Operator website
https://devino.ca
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a VoiceLabs account. Sign in with OAuth when your client asks.

Available Tools

18 tools
billing_statusBilling statusA
Read-onlyIdempotent
Inspect

The account's plan, trial or renewal state and this month's generated-audio usage against its allowance. Read-only.

Inputs: no named parameters. Returns: usage, entitled, subscription, freeAllowanceMinutes

clone_voice_profileClone a voice from a recordingAInspect

Create a cloned voice on the user's VoiceLabs account from a recording the caller provides: a name, the language, the exact text spoken in the recording, and the audio either inline as base64 (audioBase64) or as an https:// URL (audioUrl). The recording must be 2–30 seconds of clear speech. Returns the new profile's id, name, voice type and engine; pass the id to speak. Not idempotent: a second call with the same name is refused, so check list_voice_profiles first. Only clone a voice whose owner has agreed to it.

Inputs: name (required), referenceText (required), audioUrl, language, +1 more. Returns: id, name, engine, language, +2 more

ensure_voice_profileEnsure a voice profile existsA
Idempotent
Inspect

Make sure a voice profile with the given name exists on the user's VoiceLabs account, creating it from one of VoiceLabs' built-in (preset) voices if it does not. Idempotent: calling it again with the same name returns the same profile with created: false and creates nothing. Use this when list_voice_profiles comes back empty, or when speak reports NOT_FOUND for a voice, then pass the returned id to speak. It cannot clone a real person's voice — that is clone_voice_profile, which needs the voice:clone scope and a recording.

Inputs: name (required), engine, language, description, +1 more. Returns: id, name, engine, created, +2 more

execute_typescriptExecute TypeScriptB
Destructive
Inspect

Run a short TypeScript program that orchestrates VoiceLabs MCP tools (found via search_tools) in an isolated sandbox. See the server instructions for the full contract.

Inputs: code (required). Returns: logs, error, result, success

get_generationCheck a generationA
Read-onlyIdempotent
Inspect

Look up a VoiceLabs generation by id to poll its status. Returns status (generating | completed | failed) and, once completed, the audio URL; a failed one carries a short human-readable error and a failureKind. Read-only.

Inputs: generationId (required). Returns: error, status, profile, audioUrl, +2 more

get_profileGet profileA
Read-onlyIdempotent
Inspect

The signed-in account's name, email, avatar, creation date and plan status. Read-only.

Inputs: no named parameters. Returns: id, name, email, image, +3 more

get_referral_summaryGet Refer & Earn summaryA
Read-onlyIdempotent
Inspect

The account's Refer & Earn link with its click, sign-up and paying-customer counts and its upcoming and paid earnings. offered is false when the program is not available on this deployment. Read-only.

Inputs: no named parameters. Returns: offered, summary

list_api_keysList API keysA
Read-onlyIdempotent
Inspect

The account's API keys: name, first characters, scopes, enabled, last use and monthly ceiling. Never the secret. Read-only.

Inputs: no named parameters. Returns: keys

list_capturesList capturesA
Read-onlyIdempotent
Inspect

List the user's recent VoiceLabs captures (dictations, recordings, uploads) with their transcripts, most-recent first. Paginated via limit (1-200) and offset. Read-only.

Inputs: limit, offset. Returns: limit, total, offset, captures

list_connectionsList connectionsA
Read-onlyIdempotent
Inspect

Connected AI apps, Slack workspaces linked to this account and browser extensions, each with the id to pass to disconnect or reverify. Read-only.

Inputs: no named parameters. Returns: connections

list_granted_scopesList granted permissionsB
Read-onlyIdempotent
Inspect

The permission tiers and scopes this connection holds, and the tiers it does not. Read-only.

Inputs: no named parameters. Returns: tiers, client, scopes, notGranted

list_plansList plansA
Read-onlyIdempotent
Inspect

The plans VoiceLabs offers with list prices in USD cents (checkout shows the local price) and what each includes. Read-only.

Inputs: no named parameters. Returns: plans

list_support_ticketsList my support ticketsA
Read-onlyIdempotent
Inspect

The support messages this account has sent (newest first, up to 50): id, type, subject, where it was sent from and when. Read-only.

Inputs: no named parameters. Returns: tickets

list_voice_profilesList voice profilesA
Read-onlyIdempotent
Inspect

List the user's VoiceLabs voice profiles — both cloned voices and presets — with language, engine, and usage counts. Read-only. A brand-new account has none yet: an empty list comes back with an emptyState explaining how to create a first voice, which is what to relay instead of reporting that the tool failed.

Inputs: no named parameters. Returns: total, profiles, emptyState

request_scopesRequest more permissionsA
Read-onlyIdempotent
Inspect

Get a one-time link where the user reconnects this app with more permission tiers pre-selected. After they approve, the app reconnects and the new tools appear. Ask the user which tiers first.

Inputs: tiers (required). Returns: url, what, expires_in

search_toolsSearch ToolsA
Read-onlyIdempotent
Inspect

Find the VoiceLabs MCP tools this connection can reach, returned as TypeScript declarations to call from execute_typescript. See the server instructions for the full contract.

Inputs: query. Returns: count, declarations

speakGenerate speechAInspect

Text to speech: turn any text into spoken audio the user can play or download, such as a voiceover for a video, a narration, a podcast intro or an article read aloud. Generate speech from text in one of the user's VoiceLabs voice profiles. Returns a generationId with status "generating"; poll get_generation with that id to retrieve the audio URL once it completes. Pass profileId or profileName to choose the voice.

Inputs: text (required), language, profileId, profileName, +1 more. Returns: status, profile, audioUrl, generationId

transcribeTranscribe audioAInspect

Transcribe an audio file to text using VoiceLabs' Whisper. Give the audio exactly one way: audioUrl, a public https:// URL serving the file itself (wav, mp3, m4a, aac, ogg, flac, aiff or webm; up to 10 MiB), or audioBase64, the file's real bytes (≤10 MiB of base64 text). A payload that is not real audio — under 1 KiB, a bare header, or made-up placeholder bytes — is refused without being transcribed. If the user has an audio file you cannot read the bytes of, ask them for a public link, or to upload it on the Captures page of the VoiceLabs studio (https://app.voicelabs.now/studio). Returns the transcript and the created capture id.

Inputs: audioUrl, language, audioBase64. Returns: language, captureId, durationMs, transcript

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources