Skip to main content
Glama
LiveSession MCP
by Uri-Rosen

write_bassline

Destructive

Generate a bassline that follows the chords and writes it into a Session clip, respecting slash basses and supporting styles like walking, octaves, and arpeggios.

Instructions

Write a bass part that follows the chords (slash basses respected) into a Session clip. style: whole, root_fifth, pop8, ballad (root + passing note), walking, octaves, arp. low/high: MIDI range (28 = E1, the lowest bass string).

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>"
    },
    "name": "write_bassline"
  }
}

Input Schema

NameRequiredDescriptionDefault
keyNo
lowNo
highNo
seedNo
scaleNomajor
styleNoballad
chordsNo
numeralsNo
velocityNo
clip_indexYes
track_indexYes
beats_per_chordNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this mutates data. The description adds real behavioral context — the output follows the chords, slash basses are honored, and low/high define a MIDI register — but it never says whether existing notes in the clip are replaced or appended, nor how the seed parameter affects determinism, which matters for a destructive generative write.

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?

Three short lines, front-loaded with the core action, followed by two compact parameter notes. No filler, no restatement of the tool name, and the style enumeration is presented in a scannable list.

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

Completeness2/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 described, but with 12 parameters at 0% schema coverage the description is far too thin — the semantics of chords vs numerals, key/scale interaction, seed reproducibility, and beats_per_chord are all missing. For a destructive generative tool with this many knobs, an agent cannot reliably call it correctly from this definition alone.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden, yet it only explains style (listing all seven values) and low/high (with a concrete MIDI anchor of 28 = E1). Nine other parameters — key, scale, seed, chords, numerals, velocity, beats_per_chord, track_index, clip_index — get no explanation at all, leaving core generative controls like seed and numerals opaque.

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?

"Write a bass part that follows the chords ... into a Session clip" names a specific verb, a specific musical resource, and the target container, which cleanly separates it from siblings like write_melody, write_chords, and write_progression. The parenthetical "(slash basses respected)" further pins down the musical behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies the use case (generate a bassline that harmonizes with existing chords in a Session clip), but never states when to choose this over write_progression or write_melody, nor any precondition such as chords already existing in the clip. Usage is inferable but not guided.

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