Skip to main content
Glama

Save to OffStereo

save_to_offstereo
Idempotent

Save the exact existing playlist preview or listening selection privately to OffStereo, without creating an Apple Music playlist, researching, rematching, or starting playback. Pass playlistId from create_playlist(previewOnly=true), or sessionId from the active player. Repeated saves of the same selection return the same saved item. The result offers Continue to Apple Music on the website, where the listener explicitly saves using their browser's Apple session. Preserve videos and other media on OffStereo; only matched songs are eligible for Apple export. Call only after the listener asks to save.

Input Schema

NameRequiredDescriptionDefault
requestIdNoOptional application correlation id for the save receipt. It does not change retry identity.
sessionIdNoExact id of the listening selection already open in the player.
playlistIdNoExact draft id from the playlist preview.

Output Schema

NameRequiredDescriptionDefault
idNo
titleNo
objectYesAlways 'playlist'.
statusYespreview, preview_partial, saved_offstereo, created, partial, auth_required, or failed.
tracksNo
webUrlNo
actionsNo
messageNo
privacyNoRequested vs. confirmed privacy state.
serviceNo
spotifyNo
warningsNo
retryToolNo
appleMusicNo
authReasonNo
connectUrlNoSign-in URL when status is auth_required.
unresolvedNoSongs that could not be confidently matched.
connectionsNo
pendingActionIdNoRetry token for a safe re-call after sign-in.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, idempotent=true, destructive=false, openWorld=false), the description discloses idempotent identity ('Repeated saves of the same selection return the same saved item'), that the saved artifact is private and web-hosted, and that Apple export is a separate browser-authenticated step ('Continue to Apple Music on the website'). It also discloses a fidelity limit: videos are preserved on OffStereo and only matched songs are eligible for export — exactly the kind of non-obvious behavior an agent needs.

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?

Front-loaded with verb, resource, and the key negative scope, and every later sentence carries actionable content (identifier source, idempotency, export boundary, consent precondition). It runs to seven sentences, and the 'Continue to Apple Music' sentence is the least essential given that an output schema exists, so it is slightly longer than strictly necessary but not padded.

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?

For a mutating, idempotent save tool with an output schema and four annotations, the description covers the gaps the structured fields cannot: consent precondition, identifier provenance, repeat-save semantics, media fidelity limits, and the downstream handoff. Nothing an agent needs to invoke it safely is missing.

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 baseline is 3; the description earns an extra point by explaining the provenance and mutual exclusivity of the two identifier parameters (playlistId from a previewOnly playlist, sessionId from the active player), which the schema only weakly conveys as 'exact draft id' and 'exact id of the listening selection.' It adds nothing for requestId, but that is a minor omission.

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?

Specific verb and resource ('Save the exact existing playlist preview or listening selection privately to OffStereo') plus an explicit negative scope: no Apple Music playlist creation, no researching, rematching, or playback. That negative clause cleanly separates it from siblings like create_playlist and save_session, so an agent can route correctly without opening schemas.

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 states exactly which identifier to supply and where it comes from ('Pass playlistId from create_playlist(previewOnly=true), or sessionId from the active player'), which resolves the oneOf choice in the schema. It also sets a hard precondition: 'Call only after the listener asks to save.' This is explicit when-to-use guidance with a named upstream tool.

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