Skip to main content
Glama

Create a voiceover line

create_speech
Destructive

Use this when someone wants new narration or voiceover in a project. Returns the new line's id, language, voice and audio URL. Without url the audio is synthesized from the text with the project's voice provider, spending the organization's synthesis credits; with url it records audio you already have. Not for fixing an existing line.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic https URL of audio you already produced. Supplying it records the segment without synthesizing anything.
textYesWords to speak, up to 5000 characters
voiceNoOptional voice id; defaults to the project's default voice
languageYesLanguage code of the narration, e.g. en or pt-BR
projectIdYesProject the voiceover line belongs to
translatedTextNoOptional translation spoken instead of the source text

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
speechYes
statusYes
synthesizedYesTrue when audio was synthesized and synthesis credits were spent; false when a url was recorded

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Language code of the narration, for example en or pt-BR"New value: +"Language code of the narration, e.g. en or pt-BR"
    • changedInput schema / properties / projectId / description
      Previous value: -"Project id that will own the voiceover segment"New value: +"Project the voiceover line belongs to"
    • changedInput schema / properties / text / description
      Previous value: -"Narration text to speak"New value: +"Words to speak, up to 5000 characters"
    • addedOutput schema / properties / synthesized / description
      Added value: +"True when audio was synthesized and synthesis credits were spent; false when a url was recorded"
  2. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructive=true, non-idempotent, non-readonly, but the description adds a genuinely non-obvious trait beyond them: synthesis spends the organization's credits when no url is given, whereas url records existing audio without synthesizing. It does not, however, address reversibility or cleanup of created segments.

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?

Four tight sentences, front-loaded with purpose then the url branch then the exclusion. The return-value sentence ('id, language, voice and audio URL') is largely redundant given an output schema exists, a minor waste.

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 detailed, and the description covers the material decisions an agent faces (whether to pass url, credit cost, when not to use it). Complete for a 6-param creation tool.

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, but the description adds meaning the schema lacks: the url/no-url branch maps to synthesis-vs-record and to credit expenditure, which is more than the schema's field-level text conveys. It is still silent on the optional translatedText/voice interplay.

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+resource ('new narration or voiceover in a project') that distinguishes it from siblings like create_video/create_tutorial. The exclusion 'Not for fixing an existing line' further pins it apart from update_speech. An agent can identify the operation 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 Guidelines5/5

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

Gives an explicit trigger ('when someone wants new narration or voiceover') and an explicit anti-trigger ('Not for fixing an existing line'), the latter routing the agent away toward an update-style sibling. Nothing about selection is left to inference.

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