Skip to main content
Glama
runapi-ai

RunAPI Gemini TTS MCP Server

by runapi-ai

text_to_speech

Creates a Gemini TTS task on RunAPI to generate speech from text with speaker configurations and dialogue turns, returning task ID, status, and output URLs.

Instructions

Create a Gemini TTS task on RunAPI (text to speech). Returns a task id, status, and output URLs.

Input Schema

NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
sceneNoScene and recording environment. Declared type: string.
speakersYesNon-empty speaker configurations with unique Speaker N identifiers. Declared type: array.
timeout_msNo
temperatureNoSampling temperature. Declared type: number.
callback_urlNoWebhook URL for async notifications. Declared type: string.
dialogue_turnsYesNon-empty ordered dialogue turns whose speaker ids reference configured speakers. Declared type: array.
sample_contextNoOverall delivery context and tone. Declared type: string.
poll_interval_msNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed31 schema fields changedv0.2.1
    • changedInput schema / additionalProperties
      Previous value: -falseNew value: +{}
    • changedInput schema / properties / callback_url / description
      Previous value: -"Webhook URL for async notifications."New value: +"Webhook URL for async notifications. Declared type: string."
    • changedInput schema / properties / dialogue_turns / description
      Previous value: -"Non-empty ordered dialogue turns whose speaker ids reference configured speakers."New value: +"Non-empty ordered dialogue turns whose speaker ids reference configured speakers. Declared type: array."
    • changedInput schema / properties / dialogue_turns / items / additionalProperties
      Previous value: -falseNew value: +true
    • removedInput schema / properties / dialogue_turns / items / properties / speaker_id / description
      Removed value: -"Identifier matching a configured speakers[].speaker_id."
    • removedInput schema / properties / dialogue_turns / items / properties / text / description
      Removed value: -"Spoken text, up to 10,000 characters."
    • removedInput schema / properties / dialogue_turns / items / properties / text / maxLength
      Removed value: -10000
    • removedInput schema / properties / dialogue_turns / minItems
      Removed value: -1
    • removedInput schema / properties / model / enum
      Removed value: -[
      -  "gemini-2.5-pro-tts",
      -  "gemini-3.1-flash-tts"
      -]
    • addedInput schema / properties / poll_interval_ms / maximum
      Added value: +9007199254740991
    • changedInput schema / properties / sample_context / description
      Previous value: -"Overall delivery context and tone."New value: +"Overall delivery context and tone. Declared type: string."
    • changedInput schema / properties / scene / description
      Previous value: -"Scene and recording environment."New value: +"Scene and recording environment. Declared type: string."
    • changedInput schema / properties / speakers / description
      Previous value: -"Non-empty speaker configurations with unique Speaker N identifiers."New value: +"Non-empty speaker configurations with unique Speaker N identifiers. Declared type: array."
    • changedInput schema / properties / speakers / items / additionalProperties
      Previous value: -falseNew value: +true
    • removedInput schema / properties / speakers / items / properties / accent / description
      Removed value: -"Speaker accent."
    • removedInput schema / properties / speakers / items / properties / accent / enum
      Removed value: -[
      -  "Neutral",
      -  "American (Gen)",
      -  "American (Valley)",
      -  "American (South)",
      -  "British (RP)",
      -  "British (Brixton)",
      -  "Transatlantic",
      -  "Australian"
      -]
    • removedInput schema / properties / speakers / items / properties / audio_profile / description
      Removed value: -"Optional voice character guidance."
    • removedInput schema / properties / speakers / items / properties / pace / description
      Removed value: -"Speaker pace."
    • removedInput schema / properties / speakers / items / properties / pace / enum
      Removed value: -[
      -  "Natural",
      -  "Rapid Fire",
      -  "The Drift",
      -  "Staccato"
      -]
    • removedInput schema / properties / speakers / items / properties / speaker_id / description
      Removed value: -"Unique identifier in Speaker N format."
    • removedInput schema / properties / speakers / items / properties / speaker_id / pattern
      Removed value: -"^Speaker [1-9][0-9]*$"
    • removedInput schema / properties / speakers / items / properties / style / description
      Removed value: -"Speaker delivery style."
    • removedInput schema / properties / speakers / items / properties / style / enum
      Removed value: -[
      -  "Vocal Smile",
      -  "Newscaster",
      -  "Whisper",
      -  "Empathetic",
      -  "Promo/Hype",
      -  "Deadpan"
      -]
    • removedInput schema / properties / speakers / items / properties / voice_name / description
      Removed value: -"Preset voice name."
    • removedInput schema / properties / speakers / items / properties / voice_name / enum
      Removed value: -[
      -  "Achernar",
      -  "Achird",
      -  "Algenib",
      -  "Algieba",
      -  "Alnilam",
      -  "Aoede",
      -  "Autonoe",
      -  "Callirrhoe",
      -  "Charon",
      -  "Despina",
      -  "Enceladus",
      -  "Erinome",
      -  "Fenrir",
      -  "Gacrux",
      -  "Iapetus",
      -  "Kore",
      -  "Laomedeia",
      -  "Leda",
      -  "Orus",
      -  "Puck",
      -  "Pulcherrima",
      -  "Rasalgethi",
      -  "Sadachbia",
      -  "Sadaltager",
      -  "Schedar",
      -  "Sulafat",
      -  "Umbriel",
      -  "Vindemiatrix",
      -  "Zephyr",
      -  "Zubenelgenubi"
      -]
    • changedInput schema / properties / speakers / items / required
      Previous value: -[
      -  "pace",
      -  "style",
      -  "accent",
      -  "speaker_id",
      -  "voice_name"
      -]New value: +[
      +  "speaker_id",
      +  "voice_name"
      +]
    • removedInput schema / properties / speakers / minItems
      Removed value: -1
    • changedInput schema / properties / temperature / description
      Previous value: -"Sampling temperature."New value: +"Sampling temperature. Declared type: number."
    • removedInput schema / properties / temperature / maximum
      Removed value: -2
    • removedInput schema / properties / temperature / minimum
      Removed value: -0
    • addedInput schema / properties / timeout_ms / maximum
      Added value: +9007199254740991
  2. First observedv0.1.1

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, but it does disclose the async task model ('Returns a task id, status, and output URLs'), which helps the agent understand that results may not be immediate. It omits authentication requirements, cost implications (check_pricing is a sibling), rate limits, and what happens when wait=true blocks.

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 short sentences, front-loaded with the action and followed by the return shape. No redundant restatement of the name or filler of any kind.

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

Completeness2/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 nested speaker and dialogue-turn objects, no annotations, and no output schema, the description is far too thin. It never explains the multi-speaker dialogue model, what wait defaulting to true implies for latency, or how callback_url and poll_interval_ms interact, leaving meaningful risk of misuse.

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 80%, so the schema already documents most fields, including the required speakers and dialogue_turns arrays. The description adds nothing beyond that, so the baseline of 3 applies; the two required parameters and their relationship (turn speaker_ids referencing configured speakers) are only explained in the schema.

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?

The description states a specific verb and resource: 'Create a Gemini TTS task on RunAPI (text to speech).' That clearly distinguishes it from siblings like get_task, login, and check_pricing. It falls short of 5 only because it doesn't name a sibling as the alternative path for retrieving results.

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?

No when-to-use or when-not-to-use guidance is given. The description never mentions that get_task exists for retrieving results later, nor how wait=true versus callback_url changes the calling pattern. Usage must be inferred entirely from the tool name.

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

Deploy Server

Other Tools