Skip to main content
Glama

OffStereo

Prepare a Spotify episode

prepare_episode
Idempotent

Prepare one finished OffStereo story to become a private Spotify episode after the listener explicitly asks. OffStereo packages its completed intro, ordered narration, sign-off, branded title, show notes, OffStereo cover, chapters, and song timeline, then returns an honest handoff: the episode is not in Spotify until the listener finishes with Spotify's Save to Spotify helper on their own computer. Use the active or selected story's sessionId. This is for a narrated story, not a playlist or an unfinished build.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sessionIdYesThe completed OffStereo story id from the active player or the listener's library.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
showNoThe finished episode: id, title, description, coverUrl, episodeAudioUrl, durationMs, and audio metadata.
objectYesAlways 'spotify_episode'.
statusYesAlways 'prepared'.
chaptersNoFinal reconciled chapter markers.
requiresNoExternal dependencies the caller provides: the save-to-spotify CLI and network access, with install and source details.
timelineNoOrdered timeline items plus completeness and chapter status.
howToPublishNoEditorial, audio, safety, and step-by-step publish guidance.
publishStateNoIdempotent publish receipt location and resume rules.
omittedTracksNoSongs disclosed as omitted from the timeline.
spotifyTargetNoTarget Spotify show identity and settings.
desktopHandoffNoA ready-to-forward request for a desktop agent to finish the private save.
includedTracksNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false, so the description doesn't repeat those. It adds crucial context that the episode is not in Spotify immediately and that the listener must complete the save on their own computer, which is a non-obvious behavioral trait. It also states that the tool returns an 'honest handoff,' providing expected output behavior beyond the schema.

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?

The description is concise, three sentences that front-load the core action and immediately specify the key prerequisite and the non-obvious outcome. It avoids repetition of the schema and annotations, with each sentence providing new information. The structure is logical: action, key constraint, then clarification of an alternative use case.

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 (a multi-step packaging process) and the single parameter, the description covers the essential aspects: what it does, the precondition (explicit request), the non-blocking handoff, and the exclusion of playlists or unfinished builds. The output schema exists, so the return structure is handled separately. Minor gaps include not specifying what 'honest handoff' returns in detail, but the output schema covers that.

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

Parameters3/5

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

The schema covers 100% of a single parameter (sessionId) with a minimal but clear description. The tool description adds context that the sessionId should be from the active or selected story, which is slightly more specific than the schema's 'from the active player or the listener's library.' However, since the schema is fully covered and the parameter is simple, the description adds only marginal value.

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 states the verb (prepare), the resource (a finished OffStereo story to become a private Spotify episode), and the context (after the listener explicitly asks). It distinguishes itself from related actions like 'make_playable' by emphasizing the handoff to Spotify's helper and the condition of a narrated story, not a playlist or unfinished build.

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 explicitly says when to use this tool: 'after the listener explicitly asks' and 'for a narrated story, not a playlist or an unfinished build.' It also implies that the listener must finish the process with Spotify's own helper, setting a clear boundary. No alternative tools are named, but the context signals are strong enough to guide selection.

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