Skip to main content
Glama
LiveSession MCP
by Uri-Rosen

add_notes_to_clip

Add MIDI notes to a specified clip using track and clip indexes, with pitch, start time, duration, velocity, and mute for each note.

Instructions

Add MIDI notes to a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

  • notes: List of note dictionaries, each with pitch, start_time, duration, velocity, and mute

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "track_index": "<track_index>",
      "clip_index": "<clip_index>",
      "notes": "<notes>"
    },
    "name": "add_notes_to_clip"
  }
}

Input Schema

NameRequiredDescriptionDefault
notesYes
clip_indexYes
track_indexYes
user_promptNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond that — critically, it never says whether notes are appended to existing notes or replace them, whether the clip must already exist, or what happens on invalid pitches.

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 one-line purpose is front-loaded and followed by a tight per-parameter list. The user_prompt line is arguably telemetry noise but is short and clearly labeled.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all parameters are documented. However, for a mutation tool on an existing clip, the missing statement about append-versus-overwrite semantics and prerequisite clip existence leaves a meaningful gap.

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 description coverage is 0% and the notes array is untyped (additionalProperties with anyOf), so the description carries real weight by documenting track_index, clip_index, notes, and user_prompt. It also enumerates the note dictionary keys (pitch, start_time, duration, velocity, mute), which the schema does not.

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 opens with a specific verb and resource ('Add MIDI notes to a clip'), which distinguishes it from siblings like get_clip_notes and clear_notes_from_clip. It stops short of explicitly naming those siblings or restating the scope difference.

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?

There is no when-to-use guidance at all: nothing says when to add notes versus using create_clip, write_melody, or clear_notes_from_clip first. The agent must infer usage purely from the name and parameters.

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