Skip to main content
Glama

Add Sound To Video

add_sound_to_video

Lay one of your saved sounds (a sound effect you saved, by its id from list_my_audio) or a sound in this chat onto your video at a given second, keeping the video's own sound under it unless keep_original is false. For many sounds (an effect for every movement on a timeline), pass cues instead: every sound with its second, mixed in one pass into one finished video. The picture is not changed; the finished video comes into the chat. Free.

Input Schema

NameRequiredDescriptionDefault
cuesNoMany sounds in one pass, instead of sound_id or sound_url: each { sound_id (a saved sound) or sound_url (a sound in this chat, or the audio_url find_library_sound returned), at_seconds, volume (0 to 4, default 1) }.
volumeNo0 to 4; 1 is the sound as saved. Default 1.
sound_idNoYour saved sound's id (list_my_audio).
sound_urlNoOr a sound in this chat by its file id or name, or an https link.
video_urlYesYour video in this chat by its file id or name, or an https link.
at_secondsNoWhere the sound starts in the video, in seconds. Default 0.
keep_originalNoKeep the video's own sound under it (default true).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / cues
      Added value: +{
      +  "description": "Many sounds in one pass, instead of sound_id or sound_url: each { sound_id (a saved sound) or sound_url (a sound in this chat, or the audio_url find_library_sound returned), at_seconds, volume (0 to 4, default 1) }.",
      +  "items": {
      +    "properties": {
      +      "at_seconds": {
      +        "type": "number"
      +      },
      +      "sound_id": {
      +        "type": "string"
      +      },
      +      "sound_url": {
      +        "type": "string"
      +      },
      +      "volume": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "at_seconds"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare openWorld/write/non-destructive; the description adds real substance beyond that: "The picture is not changed" (scope of mutation), "keeping the video's own sound under it unless keep_original is false" (mixing behavior), "the finished video comes into the chat" (where output lands), and "Free" (cost). It does not cover failure cases or duration/mix limits.

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 sentences, front-loaded with the primary single-sound path before the batch alternative, with no filler. The cues sentence is dense but the parenthetical example keeps it readable; "Free." is terse but informative.

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 7-parameter write tool with no output schema and non-destructive annotations, the description covers input sourcing, the two operating modes, original-audio behavior, output destination, and cost — everything an agent needs before calling it.

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 baseline is 3; the description earns above that by clarifying the mutual exclusivity of cues versus sound_id/sound_url and by naming list_my_audio as the source of valid sound ids, which the schema itself does not cross-reference.

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?

"Lay one of your saved sounds ... or a sound in this chat onto your video at a given second" names a specific verb (lay/overlay), both sound sources, the target resource (video), and the placement mechanism. This is clearly distinct from siblings like generate_sound, extract_sound_effect, or stitch_videos.

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?

Explicitly routes between two modes: single sound via sound_id/sound_url, or "For many sounds ... pass cues instead." It also points to list_my_audio for obtaining sound ids. It stops short of naming a competing sibling tool for video audio work, so a 4 rather than a 5.

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