Skip to main content
Glama

Generate a voice-over line

generate_voiceover

Speak ONE line (one sentence, up to 400 characters) and return a WAV file URL with its exact duration. For reels: one call per beat, the same voice for the whole video, so every scene can be cut to its line. Two kinds of voice:

  • An Ignix voice (voice + language): 3 AI credits per started 100 characters (a one-sentence reel line is usually 3). Voices: stock_ava (female, warm, friendly narrator); stock_mia (female, young, upbeat, casual); stock_nora (female, calm, clear); stock_leo (male, young, upbeat, casual); stock_max (male, warm, confident narrator); stock_sam (male, calm, informative); stock_zoe (female, breezy, light, easy-going); stock_vera (female, mature, calm, trustworthy); stock_kira (female, firm, confident); stock_teo (male, casual, laid-back); stock_nico (male, excitable, high energy); stock_hugo (male, firm, authoritative). The user can hear every voice at https://ignix.social/voices — link it when they choose one.

  • The user's OWN voice (myVoiceId from list_my_voices; it speaks the language of the text): quality "normal" costs 3 credits per started 100 characters, "cinema" 10 and also takes per-word tags in the text (…, …, …) and [break] for a pause. direction says how to say it in a few English words ("smiling, telling a secret"). Directions count as characters. The line is also kept in the user's Ignix audio library. When the user has their own voice, offer it first. SPENDS AI CREDITS ONLY WITH confirm: true. Call it first without confirm: nothing runs and nothing is charged, you get the quote (what it will do and the credits). Tell the user, in your own words, exactly that — including the options you chose, so they can change them — and wait for a clear yes before calling again with the same arguments and confirm: true. One yes covers the plan they approved (e.g. every line of an approved voice-over with the chosen voice); anything new or different needs a new yes.

Input Schema

NameRequiredDescriptionDefault
textYesExactly what to say. One sentence, written the way a person talks. To fix where a word is stressed (names, brands), mark its stressed vowel with U+0301 after it (Сухи́н) or a + before it (Сух+ин): the mark is not read aloud. With quality "cinema", per-word tags as described above.
voiceNoIgnix voice id (not with myVoiceId). Keep the same one for a whole video.
confirmNotrue ONLY after the user said yes to the quote (what it does and the credits). Without it nothing runs and nothing is charged.
qualityNoOwn voice only: "normal" (default) or "cinema" (directed per word).
deliveryNo"hook" for the opening line, "cta" for the closing ask, "narration" for the rest, "calm" for a relaxed read.
languageNoIgnix voices only: any language the user wants, as its ISO code with optional region: es-ES, en-US, en-GB, pt-PT, pt-BR, fr, de, it, ru, nl, pl, ja, ar… (more than 120). If it is not available the call says so: tell the user. Spanish always sounds from Spain; Portuguese from Portugal unless pt-BR (Brazil).
directionNoOwn voice only, optional: how to say it, a few English words (max 120 characters). Without it, `delivery` sets the tone.
myVoiceIdNoThe user's own voice, an id from list_my_voices (instead of voice + language).
workspaceIdNoWorkspace to work on (an id from list_workspaces). Not needed when this connection is tied to one workspace, or when you pass an account: the account's workspace is used.
idempotencyKeyNoOptional. A unique id for this action (16-128 chars: letters, digits, _ : . -). If you are unsure whether a call went through (timeout, network error), repeat it with the SAME idempotencyKey and the same arguments: you get the original result and nothing is done twice.

Output Schema

NameRequiredDescriptionDefault
urlNoPublic URL of the WAV file. It expires after 7 days: download it into the project.
mediaTypeNo
durationSecNoExact length of the audio, in seconds.
confirmTokenNo
creditsChargedNo
creditsRemainingNoCredits left this month. null = this organization has no monthly credit cap.
estimatedCreditsNo
needsConfirmationNotrue = this is only the quote: nothing was done or charged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / direction
      Added value: +{
      +  "description": "Own voice only, optional: how to say it, a few English words (max 120 characters). Without it, `delivery` sets the tone.",
      +  "type": "string"
      +}
    • changedInput schema / properties / language / description
      Previous value: -"Any language the user wants, as its ISO code with optional region: es-ES, en-US, en-GB, pt-PT, pt-BR, fr, de, it, ru, nl, pl, ja, ar… (more than 120). If it is not available the call says so: tell the user. Spanish always sounds from Spain; Portuguese from Portugal unless pt-BR (Brazil)."New value: +"Ignix voices only: any language the user wants, as its ISO code with optional region: es-ES, en-US, en-GB, pt-PT, pt-BR, fr, de, it, ru, nl, pl, ja, ar… (more than 120). If it is not available the call says so: tell the user. Spanish always sounds from Spain; Portuguese from Portugal unless pt-BR (Brazil)."
    • addedInput schema / properties / myVoiceId
      Added value: +{
      +  "description": "The user's own voice, an id from list_my_voices (instead of voice + language).",
      +  "type": "string"
      +}
    • addedInput schema / properties / quality
      Added value: +{
      +  "description": "Own voice only: \"normal\" (default) or \"cinema\" (directed per word).",
      +  "enum": [
      +    "normal",
      +    "cinema"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"Exactly what to say. One sentence, written the way a person talks. To fix where a word is stressed (names, brands), mark its stressed vowel with U+0301 after it (Сухи́н) or a + before it (Сух+ин): the mark is not read aloud."New value: +"Exactly what to say. One sentence, written the way a person talks. To fix where a word is stressed (names, brands), mark its stressed vowel with U+0301 after it (Сухи́н) or a + before it (Сух+ин): the mark is not read aloud. With quality \"cinema\", per-word tags as described above."
    • changedInput schema / properties / voice / description
      Previous value: -"Voice id. Keep the same one for a whole video."New value: +"Ignix voice id (not with myVoiceId). Keep the same one for a whole video."
    • changedInput schema / required
      Previous value: -[
      -  "text",
      -  "voice",
      -  "language"
      -]New value: +[
      +  "text"
      +]
  2. Changed4 schema fields changed
    • addedOutput schema / properties / confirmToken
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / estimatedCredits
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / needsConfirmation
      Added value: +{
      +  "description": "true = this is only the quote: nothing was done or charged.",
      +  "type": "boolean"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "url",
      -  "durationSec"
      -]
  3. Changed2 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Language with optional region: es-ES, en-US, en-GB, pt-PT, fr, de, it… Spanish always sounds from Spain and Portuguese from Portugal."New value: +"Any language the user wants, as its ISO code with optional region: es-ES, en-US, en-GB, pt-PT, pt-BR, fr, de, it, ru, nl, pl, ja, ar… (more than 120). If it is not available the call says so: tell the user. Spanish always sounds from Spain; Portuguese from Portugal unless pt-BR (Brazil)."
    • changedInput schema / properties / text / description
      Previous value: -"Exactly what to say. One sentence, written the way a person talks."New value: +"Exactly what to say. One sentence, written the way a person talks. To fix where a word is stressed (names, brands), mark its stressed vowel with U+0301 after it (Сухи́н) or a + before it (Сух+ин): the mark is not read aloud."
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and openWorldHint=true; the description adds the crucial behavioral layers: credit pricing per 100 characters for both voice paths, that cinema quality costs 10 and enables per-word tags, that the line is saved to the user's audio library, and that nothing runs or charges without confirm: true. This is beyond what any structured field conveys.

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?

Well front-loaded with the core action and line-length limit first, then the two voice paths as bullets. It is long, and the confirm/credit rule is stated twice ('SPENDS AI CREDITS ONLY WITH confirm: true' plus a full paragraph), which is mild redundancy justified by the spending risk.

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 10-parameter tool with an output schema, everything an agent needs is present: cost model, approval gate, voice selection, own-voice path, fallback behavior, and idempotency guidance. Nothing material is missing.

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 schema carries the baseline. The description still adds real meaning the enum cannot: the personality/character of each stock voice, the per-tier credit cost of quality, the language fallback behavior (unavailable language reports back), and that direction text counts as characters.

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 concrete verb and resource — 'Speak ONE line (one sentence, up to 400 characters) and return a WAV file URL with its exact duration' — with explicit scope limits. It is clearly distinguishable from generate_sound_effect and generate_video among the siblings.

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 usage patterns ('one call per beat, the same voice for the whole video'), a preference rule ('When the user has their own voice, offer it first'), and the exact confirm/quote handshake. It also spells out when a new approval is needed versus when the existing one covers the plan.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources