Skip to main content
Glama

OffStereo

Steer the listening session

steer_session

Control and contextual follow-ups for the active player: pause, resume, skip, play the next song, append one exact next song, adjust the music level, explain why a song is present, open an explicitly requested documented sample lineage, or return to the story. The result updates the mounted card in place. For an AI-DJ transition to a newly chosen record, pass queueTrack with exact artist and title; OffStereo resolves it and appends it to this same widget so the current song can finish and auto-advance. Keeping the transition in this queue avoids a second make_playable call. Use instruction='Queue this as the next song without interrupting the current song' to queue ahead, or 'Play this next now' to append and immediately advance. A why-this-song question preserves the queue. sessionId identifies the active session, and activeItemId plus positionMs preserve exact continuity when the card supplies them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sessionIdNo
positionMsNo
queueTrackNoOne exact new record to append to the active widget queue. Use this instead of opening another one-song widget when the listener asks the AI DJ to choose what comes next.
instructionYes
activeItemIdNo
playbackStateNo
acknowledgeDirectiveIdNoMounted-card acknowledgement for the exact one-shot playback directive it has finished applying. Periodic cursor syncs omit this field.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesStable session id, reused for get_session and steer_session.
modeNo
queueNoOrdered narration and track items.
titleYes
objectYesplayable_session, lineage, or lineage_show.
statusYesLifecycle: building, partial, ready, failed, and similar.
thesisNo
webUrlNo
actionsNo
chaptersNo
progressNoCurrent build stage and message.
warningsNo
webLabelNo
citationsNo
storyScopeNoCount-level result assessment.
descriptionNo
queueUpdateNoMost recent model-authored queue change.
resumeStackNo
activeBranchNo
nowPlayingContextNo
playbackDirectiveNoOne-shot transport request the mounted card applies.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses key behaviors: it updates the mounted card in place, appends queueTrack to the same widget so the current song can finish and auto-advance, and explains the difference between queueing ahead and immediate interruption. It also mentions that periodic cursor syncs omit acknowledgeDirectiveId. It stops short of describing failure modes or permission requirements, but the disclosed behavior is substantive.

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 description is a single dense paragraph that front-loads the core purpose ('Control and contextual follow-ups for the active player') and then covers queueing specifics. While long, every sentence adds a distinct piece of information (card update behavior, queueTrack resolution, instruction variants, queue preservation). It could be more scannable with bullets, but it is not redundant.

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?

Given the tool's complexity (7 parameters, nested queueTrack object, and an output schema), the description addresses the main workflows: queueing ahead vs playing now, why-this-song behavior, lineage opening, and story return. It mentions the result updates the mounted card, and since an output schema exists, it need not detail the return format. It covers the essential scenarios for correct invocation.

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?

With only 29% schema description coverage, the description carries significant parameter meaning. It explains sessionId identifies the active session, activeItemId and positionMs preserve exact continuity, and queueTrack must include exact artist and title for AI-DJ transitions. It also gives two valid instruction values. It does not explicitly address playbackState or acknowledgeDirectiveId, but the schema provides descriptions for those.

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 clearly identifies the tool as controlling the active listening session with a specific verb 'Control' and resource 'active player', followed by a concrete list of actions (pause, resume, skip, play next, append, adjust level, explain, open lineage, return to story). It distinguishes itself from sibling make_playable by explicitly stating that using queueTrack 'avoids a second make_playable call' and by calling out the difference from 'opening another one-song widget'.

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?

The description provides explicit usage guidance: for AI-DJ transitions it instructs to pass queueTrack with exact artist and title, and gives two concrete instruction strings ('Queue this as the next song without interrupting the current song' vs 'Play this next now') with their behavioral consequences. It also notes that a why-this-song question preserves the queue, helping the agent decide when to use this tool versus alternatives like make_playable.

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