Skip to main content
Glama

Generate Text-to-Speech

clipform_generate_tts

Generate narration audio from text with word-level captions. Use this for quiz question narration, survey introductions, form instructions, or any node that benefits from a human voice. Proactively suggest narration for quizzes and content-rich forms - it significantly improves engagement.

Available voices: ryan (British male, clear), sonia (British female, warm), andrew (American male, smooth), ava (American female, vibrant), guy (American male, deep). Pick ONE voice that fits the topic - e.g. a London quiz gets ryan or sonia, a US sports quiz gets andrew or guy - and reuse that SAME voice for every item and every call across the whole form. Never mix voices within one form unless the user explicitly asks for multiple voices.

Use the tone parameter to direct HOW the voice speaks. Always set a tone that matches the form's mood - e.g. quizzes: "Energetic and playful, like a quiz show host teasing the audience", surveys: "Professional but warm, encouraging honest answers", personality quizzes: "Curious and reflective". This dramatically improves the narration quality.

Pass one item or many (max 10) - multiple items run in parallel. Returns audio_url and caption_ref per item - pass caption_ref downstream to clipform_render_composition / clipform_render_video_template / clipform_upload_media_asset to attach this run's word-level captions instead of hand-copying the captions array.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesOne or more TTS items to generate
contextYesDescribe the user's underlying goal in one sentence - not the tool you're calling.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYesOne result per item, in order

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / results / items / properties / caption_ref
      Added value: +{
      +  "description": "Pass this as the caption_ref param on clipform_render_composition / clipform_render_video_template / clipform_upload_media_asset to attach this run's word-level captions - never hand-copy the captions array.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / results / items / properties / captions / description
      Previous value: -"Pass as the captions param to upload_media_asset"New value: +"Word-level captions, for reference only - prefer passing caption_ref downstream instead of copying this array."
  2. Changed2 schema fields changed
    • addedOutput schema / properties / results / items / properties / captions / items / properties / words / minItems
      Added value: +1
    • changedOutput schema / properties / results / items / properties / captions / items / required
      Previous value: -[
      -  "start",
      -  "end",
      -  "text"
      -]New value: +[
      +  "start",
      +  "end",
      +  "text",
      +  "words"
      +]
  3. Changed3 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Describe the user's underlying goal in one sentence - not the tool you're calling.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "items"
      -]New value: +[
      +  "items",
      +  "context"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / items / items / properties / voice / description
      Previous value: -"Voice: ryan (British male, clear/articulate), sonia (British female, warm/bright), andrew (American male, smooth/neutral), ava (American female, vibrant/friendly), guy (American male, deep/authoritative). Pick based on the form's topic and audience."New value: +"Voice: ryan (British male, clear/articulate), sonia (British female, warm/bright), andrew (American male, smooth/neutral), ava (American female, vibrant/friendly), guy (American male, deep/authoritative). Pick ONE voice for the whole form based on its topic and audience, then reuse that same voice on every item and every call - never mix voices within a form unless the user explicitly asks for more than one."
  5. Changed1 schema field changed
    • changedOutput schema / properties / results / items / properties / captions / description
      Previous value: -"Pass as the captions param to upload_node_media"New value: +"Pass as the captions param to upload_media_asset"
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "results": {
      +      "description": "One result per item, in order",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "audio_url": {
      +            "type": "string"
      +          },
      +          "captions": {
      +            "description": "Pass as the captions param to upload_node_media",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "end": {
      +                  "type": "number"
      +                },
      +                "start": {
      +                  "type": "number"
      +                },
      +                "text": {
      +                  "type": "string"
      +                },
      +                "words": {
      +                  "items": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "end": {
      +                        "type": "number"
      +                      },
      +                      "start": {
      +                        "type": "number"
      +                      },
      +                      "word": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "word",
      +                      "start",
      +                      "end"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                }
      +              },
      +              "required": [
      +                "start",
      +                "end",
      +                "text"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "error": {
      +            "type": "string"
      +          },
      +          "ok": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "ok"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "results"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false), the description adds valuable behavioral context: it explains parallel execution for multiple items, returns audio_url and caption_ref per item, and instructs passing caption_ref downstream. It does not mention side effects like cost or rate limits, but this is not required and the existing detail is sufficient.

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?

The description is well-organized into distinct paragraphs (overview, voice guidance, tone guidance, batch handling) and each section adds unique information. It is slightly verbose with repeated emphasis on voice selection, but remains structured and focused.

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 tool with only two parameters and no visible output schema, the description provides comprehensive context: it explains what the tool returns, how to chain the caption_ref downstream, and the batching behavior. Nothing needed to successfully invoke the tool is missing.

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

Parameters5/5

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

The schema already provides rich descriptions for each parameter (e.g., voice details, tone suggestions). The description augments this with practical rules (reuse the same voice across the form, infer tone from context) that go beyond the schema's static descriptions, making parameter usage fully clear.

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 clearly states the tool generates narration audio with word-level captions and gives explicit use cases (quiz narration, survey introductions, form instructions). It also distinguishes itself from sibling tools by mentioning caption_ref downstream, making its purpose unmistakable.

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 description provides strong when-to-use guidance (e.g., 'use this for...') and even contrasts with hand-copying captions. However, it does not explicitly compare with alternative sibling tools (like clipform_generate_video) or state when not to use it, so it falls slightly short of fully explicit usage instructions.

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.