Skip to main content
Glama

Play music or a story

make_playable

Create one playable OffStereo card for a recording, video, or narrated story. experience=media plays YouTube, SoundCloud, or Internet Archive directly using a source link or provider-specific search fields. Discovery and Music Today already play their songs, so keep those results in their original card unless the listener asks for dedicated controls. experience=single_track returns exactly one recording with no narration or library save; pass artist plus track. experience=story progressively creates a sourced story; mode=fresh starts a new build. Pass artist plus album for an exact record and trackCount for an exact requested length. Spotify, Apple Music, and SoundCloud URLs are story seeds unless the listener requests only the recording. Playlist requests use create_playlist with previewOnly=true; saving to OffStereo uses save_to_offstereo. existingSessionId opens a selected library story; get_session is reserved for card polling. The mounted card owns live progress and playback. Assistant prose should avoid restating transient stages such as building, recording, or still working because they become stale as the card updates, and should wait for Ready before stating final counts. A tool call opens the card without starting playback.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "make_playable"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNofresh starts an explicitly new story; auto may reuse an exact strong match.
albumNoExact album or EP title, paired with artist when the listener names or shows a specific record.
titleNoShort canonical artist, track, album, or subject title for the card, especially useful for an identified image or a prompt that also contains workflow instructions.
trackNoExact song title, paired with artist for reliable single_track matching.
artistNoExact artist, paired with track for a one-song card or with album for an album-focused story.
lengthNoshort fits an explicitly quick, brief, or concise narrated story and targets three narration-and-record chapters; standard keeps the full editorial arc.
promptNoWhat the listening experience should explain.
tracksNoOptional: exact records the story should always include as playable tracks — e.g. every song a paired video names. They are pinned into the show in this order and curation fills the remaining slots up to trackCount, so a companion keeps the records the video discusses. Leave unset for normal curation.
requestIdNoOptional UUID for a new progressive story request. Reuse the same UUID when retrying the same request to avoid duplicate work.
sourceUrlNoAn http(s) article or source URL to adapt.
videoModeNoWhen true, the story opens on a third-person editorial hook with no DJ greeting or time-of-day welcome — for a companion story paired with a video. Pair with an explicit `title` so page title, URL, and register all match the video.
experienceNomedia plays a YouTube video, SoundCloud recording, or Internet Archive file directly; pass sourceUrl or provider-specific search fields. single_track means one immediate song card; story means progressive narration. Direct playback creates only a recording card.
sourceTextNoSource text or conversation context to adapt.
trackCountNoExact number of songs requested for a narrated story (2-12). Use 1 with experience=single_track.
resumeShowIdNoRebuild an unfinished show in place, keeping its id and URL, instead of creating a second one. Pass the id of a show whose `retryable` is true. Rejected for a show that already finished or that belongs to someone else.
mediaProviderNoProvider for experience=media. auto identifies the provider from sourceUrl. YouTube and Archive accept a search prompt; SoundCloud needs a track URL or exact artist plus track. Archive albums/concerts require the exact audio file link.
personalizationNolibrary uses connected-listener taste as retrieval seeds; none is the default.
existingSessionIdNoThe chosen library story id for opening through the canonical player contract; get_session remains application polling.

Output 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. Changed4 schema fields changed
    • changedInput schema / properties / experience / description
      Previous value: -"single_track means one immediate song card with no narration or story creation; story means the full progressive narrated experience."New value: +"media plays a YouTube video, SoundCloud recording, or Internet Archive file directly; pass sourceUrl or provider-specific search fields. single_track means one immediate song card; story means progressive narration. Direct playback creates only a recording card."
    • changedInput schema / properties / experience / enum
      Previous value: -[
      -  "story",
      -  "single_track"
      -]New value: +[
      +  "story",
      +  "single_track",
      +  "media"
      +]
    • addedInput schema / properties / mediaProvider
      Added value: +{
      +  "description": "Provider for experience=media. auto identifies the provider from sourceUrl. YouTube and Archive accept a search prompt; SoundCloud needs a track URL or exact artist plus track. Archive albums/concerts require the exact audio file link.",
      +  "enum": [
      +    "auto",
      +    "youtube",
      +    "soundcloud",
      +    "archive"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / requestId
      Added value: +{
      +  "description": "Optional UUID for a new progressive story request. Reuse the same UUID when retrying the same request to avoid duplicate work.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / resumeShowId
      Added value: +{
      +  "description": "Rebuild an unfinished show in place, keeping its id and URL, instead of creating a second one. Pass the id of a show whose `retryable` is true. Rejected for a show that already finished or that belongs to someone else.",
      +  "type": "string"
      +}
  3. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources