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
40.8% over 69 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource/action: clone_voice_profile (non-idempotent clone from recording) vs ensure_voice_profile (idempotent preset creation) are clearly differentiated by their descriptions, as are speak (TTS) vs transcribe (STT) and get_generation vs list_captures. The two meta-tools (search_tools, execute_typescript) form a coherent pair rather than overlapping with the domain tools.

Naming Consistency4/5

Predominantly a consistent snake_case verb_noun pattern (clone_voice_profile, get_generation, list_captures, search_tools, execute_typescript). The two exceptions, speak and transcribe, are bare verbs without an explicit noun, a minor deviation from the otherwise predictable convention.

Tool Count5/5

Nine tools is well-scoped for a voice service covering cloning, TTS, STT, profile management, and polling. Each tool earns its place with no redundant entries.

Completeness3/5

Core workflows (create/list voices, speak+poll, transcribe, list captures) are covered, but there is no delete or update for voice profiles and no way to list generation history (only get by id). These are notable lifecycle gaps that could force agents into dead ends when cleanup or bulk retrieval is needed.

Available Tools

9 tools
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.

NameRequiredDescriptionDefault
nameYesThe name for the new cloned voice. Must not already exist on the account — call list_voice_profiles first if unsure; a duplicate is refused with INVALID_REQUEST.
audioUrlNoAn https:// URL the recording can be downloaded from (public host, no redirects, up to 10 MiB). Give exactly one of audioBase64 or audioUrl.
languageNoISO language code of the recording and the voice. Defaults to "en".
audioBase64NoThe recording inline as base64 (WAV, or any of mp3/m4a/ogg/flac/aac/webm/opus; up to 10 MiB decoded). 2–30 seconds of clear speech. Give exactly one of audioBase64 or audioUrl.
referenceTextYesThe exact words spoken in the recording (up to 1000 characters). The engine aligns the clone against this transcript, so it must match what is said.

Output Schema

NameRequiredDescription
idYes
nameYes
engineYes
languageYes
sampleIdYes
voiceTypeYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=false and destructiveHint=false, and the description adds real value on top: the specific refusal behavior (a second call with the same name), the 2–30 second audio constraint, and an ethical precondition around owner consent. It does not cover auth/permission requirements or rate limits, which keeps it out of the top band.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads the action and lists inputs before the non-idempotency warning. Efficient, though it repeats a couple of schema facts (2–30 seconds, the base64-vs-URL pair) that add length without new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be re-explained, and the description still flags the key returned id and its use with speak. Combined with the duplicate-name refusal, the consent rule, and the audio constraints, an agent has everything required to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including the audioBase64/audioUrl exclusivity, formats, size limits, and transcript requirements. The description restates those facts (name, language, referenceText, the two audio forms) without adding syntax or semantics the schema lacks, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a cloned voice ... from a recording') and enumerates the exact inputs, so it is clearly distinguishable from the sibling list_voice_profiles and ensure_voice_profile. It even notes the return payload and the follow-on tool (speak), which pins down what the tool is for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use guidance and a prerequisite: check list_voice_profiles first because a duplicate name is refused, and only clone a voice whose owner has consented. It does not explicitly contrast with the closest sibling, ensure_voice_profile, so an agent may still have to guess between the two.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
nameYesThe profile name to ensure exists. Matched EXACTLY against the account's existing profiles — the same uniqueness key the engine enforces — so a differently-cased name is a different profile.
engineNoWhich built-in voice catalogue to draw from. Defaults to "kokoro", VoiceLabs' fast general-purpose preset engine.
languageNoISO language code for the profile. Defaults to "en".
descriptionNoOptional human note stored on the profile. Ignored when the profile already exists.
builtinVoiceIdNoThe built-in voice to use. Defaults to "af_heart", the engine's own default Kokoro voice. The ids VoiceLabs publishes (case-sensitive) — kokoro: af_alloy, af_aoede, af_bella, af_heart, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky, am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa, bf_alice, bf_emma, bf_isabella, bf_lily, bm_daniel, bm_fable, bm_george, bm_lewis, ef_dora, em_alex, em_santa, ff_siwis, hf_alpha, hf_beta, hm_omega, hm_psi, if_sara, im_nicola, jf_alpha, jf_gongitsune, jf_nezumi, jf_tebukuro, jm_kumo, pf_dora, pm_alex, pm_santa, zf_xiaobei, zf_xiaoni, zf_xiaoxiao, zf_xiaoyi. qwen_custom_voice: Vivian, Serena, Uncle_Fu, Dylan, Eric, Ryan, Aiden, Ono_Anna, Sohee. Any other id is refused with INVALID_REQUEST.

Output Schema

NameRequiredDescription
idYes
nameYes
engineYes
createdYes
languageYes
voiceTypeYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, destructiveHint=false and readOnlyHint=false, but the description adds real value beyond them: the exact idempotent response shape (`created: false`), the fact that nothing is created on repeat calls, and the boundary that it cannot clone a real voice. It stops short of stating the auth scope this tool itself requires, which is the one behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool does, then idempotency semantics, then when to use it, then the boundary against clone_voice_profile. No sentence is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be restated, yet the description still flags the `created` field an agent will actually branch on. Triggers, alternatives, idempotency, and the returned id handoff are all covered for a 5-param tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name-matching, engine defaults, language, and the full builtinVoiceId list with the INVALID_REQUEST failure mode. The description adds only the framing that the name match is 'the same uniqueness key the engine enforces', so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('Make sure a voice profile with the given name exists'), explains the create-if-absent behavior, and explicitly contrasts itself with clone_voice_profile. An agent can distinguish it from every sibling without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions ('when list_voice_profiles comes back empty, or when speak reports NOT_FOUND'), names the alternative (clone_voice_profile) and its differing scope requirement, and tells the agent what to do with the result ('pass the returned id to speak').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
codeYesA TypeScript program body run in an isolated sandbox. Call the external_* functions search_tools declared; the program must `return` its result.

Output Schema

NameRequiredDescription
logsNo
errorNo
resultNo
successYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, openWorldHint=true, non-idempotent, and not read-only, so the risk profile is covered structurally. The description adds the meaningful detail that execution happens in an 'isolated sandbox' and that the program must return its result, but it does not say what constraints 'short' imposes (time, memory, tool-call budget) or what happens on sandbox failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no padding, with the core operation front-loaded. The closing pointer to server instructions is a necessary redirect for a tool whose full contract is large, though it does consume space without adding local information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value description is not required, and the sandbox/return contract is sketched. However, for a destructive, open-world code-execution tool the behavioral contract is deferred to 'server instructions', leaving resource limits and failure semantics unspecified in the definition itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, and the schema already explains that 'code' is a TypeScript body calling declared external_* functions that must return its result. The description only adds the vague 'short' qualifier, so the baseline of 3 for high coverage is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Run/Execute) and resource (a TypeScript program) and pins the domain: orchestrating VoiceLabs MCP tools in an isolated sandbox. It also names the sibling 'search_tools' as the discovery path, so an agent can place it relative to the other tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for multi-tool orchestration ('orchestrates VoiceLabs MCP tools') but never states when to prefer this over calling a sibling tool directly, nor any exclusions or limits. The explicit instruction is to consult server instructions, which is an out-of-band dependency rather than guidance in the definition itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
generationIdYesThe id returned by the speak tool.

Output Schema

NameRequiredDescription
errorYes
statusYes
profileYes
audioUrlYes
failureKindYes
generationIdYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered and the trailing 'Read-only' is largely redundant. The description does add real value beyond the annotations by disclosing the state machine (generating | completed | failed) and the failure payload (human-readable error plus failureKind), which helps an agent interpret polling results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb and purpose, followed by return semantics and a one-word safety note. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter polling tool with full annotations and an output schema, the description covers purpose, usage context, and the meaningful state values an agent needs. Nothing required to invoke or interpret it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is a single required parameter whose schema description already explains its origin ('The id returned by the speak tool'). The description adds only 'by id', so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up a VoiceLabs generation by id') plus the intended purpose ('to poll its status'), which clearly distinguishes it from siblings like speak (creates a generation) and list_captures. An agent can select this tool without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'to poll its status' establishes the context of use — checking on an asynchronously created generation — and the schema ties the id to the 'speak' tool. It does not explicitly state when not to use it or name alternatives, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
limitNo
offsetNo

Output Schema

NameRequiredDescription
limitYes
totalYes
offsetYes
capturesYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the trailing 'Read-only' is largely redundant. The description does add non-annotation behavior: result ordering (most-recent first) and the pagination contract. It says nothing about rate limits, maximum page depth, or what happens with a huge offset.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler, and the scope/ordering comes before the pagination mechanics. The final 'Read-only' clause is redundant with the readOnlyHint annotation, so it is the one phrase that does not fully earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations cover safety; what remains is scope, ordering and pagination, all of which are stated. The only shortfall is the undocumented offset semantics and defaults against a 0%-covered schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate: it supplies limit's bounds (1-200) and names offset for pagination, which is real added meaning. However it omits the defaults (50 and 0) and never explains what offset actually counts, leaving one of two parameters only half-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (List) plus resource (VoiceLabs captures) and scope (the user's recent ones), with the content types enumerated (dictations, recordings, uploads) and the payload described (transcripts). No sibling tool overlaps this resource, so an agent can select it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context ('the user's recent captures', 'most-recent first') and explains pagination, but never states when to reach for this tool versus another (e.g. search-style retrieval) or any exclusions. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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 the user creates their first voice, which is what to relay instead of reporting that the tool failed.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
totalYes
profilesYes
emptyStateNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds meaningful context beyond that: it discloses the empty-state response and instructs the agent to relay an `emptyState` explanation rather than reporting failure. This is substantive behavioral information not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then briefly reinforces read-only behavior, then covers the important empty-state edge case. All content is relevant and compact for a zero-parameter listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple listing complexity, rich annotations, no input parameters, and an existing output schema, the description is complete. It covers purpose, safety context, and the key edge case an agent might mishandle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema cannot document parameter semantics and the baseline is 4. The description does not need to add parameter details, and it appropriately adds none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('List the user's VoiceLabs voice profiles') and clarifies scope by naming both cloned voices and presets. It also lists returned fields (language, engine, usage counts), making it easy to distinguish from siblings like clone_voice_profile and ensure_voice_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the tool name and list purpose, and the description gives useful handling guidance for an empty account. However, it does not explicitly say when to choose this tool over alternatives such as ensure_voice_profile or clone_voice_profile, so alternative-selection guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
queryNoCase-insensitive substring matched against each tool's name, title and description. Omit to return every tool this connection can reach.

Output Schema

NameRequiredDescription
countYes
declarationsYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the return format (TypeScript declarations) and the fact that results are limited to this connection's reachable tools, but it pushes the 'full contract' off to server instructions rather than disclosing behavior directly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the discover-tools purpose, then the return format. No filler and no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description needn't explain return values, yet it usefully states the TypeScript-declaration form and the connection-scoped result set. The only weakness is leaning on external server instructions for the calling contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single 'query' parameter is fully documented as a case-insensitive substring match with omit-to-return-all semantics. The description adds nothing about the parameter, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Find the VoiceLabs MCP tools this connection can reach.' It also says what comes back (TypeScript declarations callable from execute_typescript), which distinguishes it from the action-oriented siblings. It stops short of explicitly contrasting itself with those siblings, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied via 'to call from execute_typescript' and the connection-scoping phrase; there is no explicit 'use this when you don't know which tool to call' or when-not guidance. It defers the contract to server instructions rather than stating the selection context itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

speakGenerate speechAInspect

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.

NameRequiredDescriptionDefault
textYesThe text to speak.
languageNoISO language code (defaults to the profile/engine default).
profileIdNoVoice profile id (takes precedence).
profileNameNoVoice profile name.

Output Schema

NameRequiredDescription
statusYes
profileYes
audioUrlYes
generationIdYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds the crucial non-obvious behavior that the call is asynchronous, returning a generationId with status 'generating' that must be polled, which the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no filler: the core action and the async follow-up step are front-loaded, and the optional voice-selection note comes last. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters, an output schema, and simple annotations, the description covers everything an agent needs: what it produces, that it is asynchronous, and how to retrieve the audio. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents text, language, profileId and profileName, including the note that profileId takes precedence. The description restates voice selection ('Pass profileId or profileName') without adding format, constraints, or default behavior beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate speech from text') and scopes it to the user's VoiceLabs voice profiles, which cleanly separates it from siblings like transcribe (the inverse direction) and clone_voice_profile (profile creation). An agent can identify this as the text-to-speech entry point without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context: it explains the asynchronous flow and names the follow-up tool ('poll get_generation with that id'), and tells the caller to supply profileId or profileName to pick a voice. It stops short of stating prerequisites (e.g. needing an existing profile from ensure_voice_profile) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
audioUrlNoA public https:// URL that serves the audio file itself (wav, mp3, m4a, aac, ogg, flac, aiff or webm; no redirects, up to 10 MiB). Give exactly one of audioBase64 or audioUrl.
languageNoISO language code (auto-detected when omitted).
audioBase64NoThe audio file's real bytes as base64 (≤10 MiB of base64 text; at least 1 KiB of audio). Only use this when you actually hold the file's bytes — a made-up or placeholder payload is refused. Give exactly one of audioBase64 or audioUrl.

Output Schema

NameRequiredDescription
languageYes
captureIdYes
durationMsYes
transcriptYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark this as a non-read-only, open-world, non-idempotent call; the description goes further by disclosing refusal behavior for non-audio payloads (under 1 KiB, bare header, placeholder bytes), the 10 MiB ceiling, and the side effect that a capture is created (implied by 'the created capture id'). That is meaningful context beyond the structured safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then progressively narrower detail (input modes, size limits, refusal cases, fallback). Every sentence carries information, though the format/size enumerations echo the property descriptions, adding mild redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a 3-parameter schema at full coverage, an output schema, and annotations covering safety, the description supplies everything else an agent needs: which input form to pick, format and size constraints, failure semantics, and the recovery path when the agent lacks file bytes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds rationale the schema lacks — why base64 must be real bytes (placeholder payloads are refused) and the mutual-exclusion rule restated as 'exactly one way'. The format list and size limits largely duplicate the schema, which caps the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Transcribe an audio file to text') plus the underlying engine, which cleanly separates it from sibling speak (synthesis) and the capture/listing tools. An agent can identify the operation without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit invocation conditions ('Give the audio exactly one way: audioUrl ... or audioBase64') and a concrete fallback when the bytes aren't readable (ask for a public link or upload via the studio page). It does not name a sibling alternative, so it stops short of a full when/when-not routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 9 tool updates
    • First observedclone_voice_profile
    • First observedensure_voice_profile
    • First observedexecute_typescript
    • First observedget_generation
    • First observedlist_captures
    • First observedlist_voice_profiles
    • First observedsearch_tools
    • First observedspeak
    • First observedtranscribe

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.

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources