Skip to main content
Glama

Add music

add_music

PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Mix music into the edit. The defaults are CONTEXT-AWARE: under speech the track sits low as a bed (-18dB, ducked); when NO speech survives under the window the music is the LEAD audio (-4dB, no ducking) so the user actually hears it. Pass gain_db/duck only to override that. storage_key is an exact key from list_assets(kind='music') — the user's own uploads or a track fetch_url just downloaded — never invent one. Agents never choose music: a library track is placed only by add_library_music after the user picks it. Choose from the user's direction, metadata, context and measured get_audio_analysis evidence. start/end are OUTPUT-timeline seconds and DEFAULT TO THE WHOLE VIDEO, so omit them for 'add some music'. Fades in/out by default. loop=true (the default) repeats a short track to fill the span; offset_s starts partway into the track, e.g. to skip a slow intro. Ducking is SMOOTH by default (a sidechain dip that follows the voice; set_music_fit(duck_mode='step') restores the legacy hard -12dB duck).

Input Schema

NameRequiredDescriptionDefault
endNo
duckNo
loopNo
startNo
gain_dbNo
purposeNoWhy this music belongs in this program/window, including the story turn or energy role it supports.
offset_sNo
fade_in_sNo
fade_out_sNo
project_idYesRequired immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess.
storage_keyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark this as a non-read-only, non-destructive, non-idempotent, closed-world tool. Beyond that, the description discloses context-aware audio defaults (-18dB bed with ducking vs -4dB lead with no ducking), default fades, default looping, default smooth sidechain ducking, and the set_music_fit alternative. These are meaningful behavioral traits an agent needs in order to predict the edit.

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?

The description is dense but appropriately sized for an 11-parameter editing tool with low schema coverage. It front-loads scope and purpose, then layers defaults, overrides, and routing constraints without wasting sentences. Every clause contributes to correct invocation.

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?

Given the tool's complexity, low schema description coverage, and lack of an output schema, the description supplies the missing scope, default behavior, override rules, prerequisite asset sourcing, and sibling routing. It even notes that the result includes project identity. An agent has enough context to call this correctly.

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?

Schema coverage is only 18%, so the description must carry parameter meaning, and it does. It explains start/end as output-timeline seconds defaulting to the whole video, loop and offset_s behavior, gain_db/duck override semantics, storage_key provenance, and default fades. It adds substantial meaning beyond the bare parameter names.

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 gives a specific verb and resource: 'Mix music into the edit.' It also clearly distinguishes add_music from the sibling add_library_music by stating that library tracks are placed only by add_library_music after the user picks them. The PROJECT-SCOPED framing further clarifies scope.

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?

It explicitly says when defaults apply, when to override with gain_db/duck, where storage_key must come from, and that agents must never choose music themselves. It also names add_library_music as the alternative for library selections. Omission guidance for start/end is given directly: omit them for 'add some music'.

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.