Skip to main content
Glama

song_read

Read a Studio One .song file from disk to extract tempo, time signature, markers, tracks, clips, instrument notes, mixer levels, plug-in inserts, automation, notes, and media references.

Instructions

Read a Studio One song from its .song file: tempo, time signature, markers, arranger sections, tracks with takes/clips (bar, beat and seconds) and instrument notes, mixer channels with volume/pan/mute/solo, automation mode and plug-in inserts (with each plug-in's saved settings in its own units, for PreSonus plug-ins), automation envelopes that have points, the song notes and channel notes, and media files. Reflects the last save, not unsaved edits. Notes, settings and envelope points are in detail=full.

Input Schema

NameRequiredDescriptionDefault
songYesSong title, part of one (newest match wins), or absolute path to a .song file
trackNoWith detail=full, only include tracks whose name contains this
detailNosummary (default): one line per track. full: every take and clip.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the stale-by-design nature of the read, that plug-in settings are expressed in each plug-in's own units and only for PreSonus plug-ins, and that notes/settings/envelope points are gated behind detail=full. It omits risk/profile details such as behavior on ambiguous titles, missing files, or the likely size of a full read.

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 returned-content list is front-loaded and each item is concrete, and the two trailing sentences carry real caveats rather than filler. The first sentence is very long and dense, but little in it is expendable.

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

Completeness4/5

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

With no output schema and no annotations, the description is the sole source of truth and it covers returned data, freshness, and detail-level behavior adequately. It stops short of covering failure/ambiguity handling and output volume, which matter for a whole-song read.

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 the baseline is 3; the description earns a step above by clarifying that 'notes, settings and envelope points are in detail=full', which is broader than the schema's narrower 'full: every take and clip' and materially changes the choice of detail level. The 'track' filter parameter is not addressed in the description at all.

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 starts with a specific verb and resource — 'Read a Studio One song from its .song file' — then enumerates exactly what is returned (tempo, markers, tracks with takes/clips, mixer channels, inserts, automation envelopes, notes, media). 'Reflects the last save, not unsaved edits' implicitly separates it from the live_* siblings that act on the running session.

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 freshness caveat and the detail=full gating give an agent enough to infer when this is the right tool versus a live_* call, but no sibling is ever named and there is no explicit 'use song_list to resolve a title' or 'use live_song for current state' routing. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.