Skip to main content
Glama
594,872 tools. Updated 2026-09-21 00:24

"A service for accessing music through Apple Music" matching MCP tools:

  • Create one playlist from a natural-language idea or explicit track list. Call exactly once per listener turn: do not inspect the result and make a corrective second call or stack another playlist card in the same response. previewOnly=true returns one authoritative playlist that can be heard before saving and needs no music-service connection. After explicit approval, previewOnly=false with the approved tracks and the same concise editorial name creates one private playlist in the listener's active music service. Pass service only when the listener explicitly names Spotify or Apple Music. requiredArtists carries every artist the listener named as required. allowSecondPlaylist is true only for an explicit request for a separate additional playlist. Sign-in recovery preserves the exact request and pendingActionId for a safe retry.
    ConnectorNo auth
  • Explicitly save the matched music from one listening session as a private playlist in the listener's active music service. Pass service only when the listener explicitly names Spotify or Apple Music. Unmatched songs are excluded and reported. If sign-in is needed, OffStereo preserves the request for one safe retry.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Full Apple Music integration for Claude: search the catalog, browse your personal library, manage playlists, and get personalised recommendations.
    11
    42
    MIT

Matching MCP Connectors

  • ABC sheet music + Strudel live coding studio with ext-apps widgets, harmony tools, and share links.

  • Search and download high-quality stock sound effects and music.

  • Add a music track or sound effect that plays as a project-level audio layer over all clips. Does NOT consume a clip slot. Use this for background music or a soundtrack that should play under the existing timeline. (For inserting an audio file as its own sequential clip with auto-transcription, use add_clips(kind='video') with an audio mime_type instead.) - type="music": requires src, name, source_duration. `src` is either the `src` from a find(type='music') result, or an mcp_upload_id (prefixed `mup_`) from upload_file — upload ids resolve to a presigned URL server-side. For a Freesound result the `src` is an opaque handle; pass it through unchanged and Clueso downloads + hosts the original server-side (do not try to fetch it yourself). Get `source_duration` from the find result, or from analyze_audio mode='features' (data.duration_ms / 1000). Optional: guide_start_time, guide_end_time, music_start_time, music_end_time (trim the source track), volume, loop, fade_in, fade_out. - type="sfx": pass the `src`, `name`, and `source_duration` from a find(type='sfx') result, plus guide_start_time (Freesound `src` is an opaque handle, resolved server-side just like music). Optional: volume. (Legacy: a fixed-library `sfx_key` like 'whoosh' still works instead of src.) Concurrency: whole-project mutation (conflict domain: the entire project) — serialize; do not run in parallel with ANY other mutation on the same project_id (including element/voiceover edits). Size your clips BEFORE calling add_audio, or pass guide_end_time explicitly — the default ('end of project') is captured at call time and will NOT auto-extend if clips are added or resized afterwards.
    ConnectorNo auth
  • Generate a background music track for an episode. Requires the episode to already have an assembled video. Spends credits. Returns a job id — poll it with get_job.
    ConnectorNo auth
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Rebalance the ORIGINAL footage's music vs its speech — the answer to 'remove the background music but keep the talking', 'the song is too loud under his voice', 'keep only the music'. The soundtrack is separated into speech/vocals + everything-else (once per video, then cached) and each side plays at its own gain: music_gain_db=-60 mutes the music, voice_gain_db=-60 mutes the speech, -12 ducks, 0 leaves untouched (range -60..+6). This changes ONLY the original footage's own audio — added music tracks are add_music/remove_music, NOT this. Not surgical on dense mixes — check the preview before promising total silence.
    ConnectorOAuth
  • Render films from pre-formed SirenSeed bodies (advanced). FILMS ONLY: images are painted from a brief, so for any image, ad or creative call create_campaign with asset_type=card (a still here returns 422 stills_use_a_brief). Each item: {output_type, channel, seed_body, archetype?, family?, surface?, caption?, voice_id?, music?, direction?, brand_override?}. Prefer create_campaign unless the user has concrete seed JSON. Returns run ids, `estimated_seconds` and `poll_after_seconds`; wait that long, then get_run. THE DIRECTOR: every film body is edited against Brand DNA before it renders. It keeps the film and your brand-specific lines, rewrites empty, generic or reference-body copy, and never touches media. `director` in the response says what changed. `direction` is a free line ("dark, club energy, fast") that steers words, pace and music. A film that cannot use what you sent returns 422 film_does_not_fit with a `fix` and `films_that_fit`. ANY BRAND: put brand_override={"name": "Acme", "site": "acme.com", "logo_url": "https://acme.com/logo.png", "primary": "#FF4400", "accent": "#111111"} on an item to render it for a brand that is not this workspace's own. With a name it is a clean slate: none of this workspace's logo, mascot, font, handle, screenshots or stills are used. Media slots take only URLs you uploaded with upload_media.
    ConnectorOAuth
  • Discover genre-aware new releases, strong public-archive matches, or popular OffStereo shows. Call exactly once per listener request: put every positive genre into the same genres array, use [] when none were requested, and avoid one call or card per genre. query carries the listener's full wording, exclusions, counts, and no-padding constraint. Results remain relevant rather than padding a requested genre or archive search with unrelated rows. Dated music-history requests use music_today and are not a discover mode. playableOnly limits results to music that plays in ChatGPT. allowBuild and allowSave preserve a read-only request. The result card already includes song playback; a separate one-song card is for an explicit request for a dedicated song card.
    ConnectorNo auth
  • Search TikTok's live advertiser-available music library for Smart+ SINGLE_IMAGE or CAROUSEL_ADS creation. Results contain public metadata and exact music_id values only; temporary media URLs, signatures, tokens, and raw provider payloads are omitted. Select a row with create_eligible=true and the required image format, then pass its music_id as ad_params.music_info.music_id. The server revalidates it on the exact create route before issuing an approval, so never guess or assume cross-advertiser availability. A saved template retains an explicit track even without a source advertiser; preparation verifies that exact choice on the target and requires a new selection if unavailable. Local carousel members come from creatives_list through ordered image_creative_ids, independently of music discovery. REQUIRED: advertiser_id from assets_list_ad_accounts and a keyword search containing 1 to 100 characters. Optional: limit (1..50) and the opaque next_cursor returned by the previous page. Keep the same advertiser_id, search, and limit while continuing; paginate serially, never fan out. EXAMPLE: assets_list_music({"advertiser_id": "1234567890", "search": "uplifting", "limit": 20})
    ConnectorOAuth
  • Given a Camelot key (e.g. "8A", "12B"), return the harmonically compatible keys for DJ mixing — the same key, the relative major/minor, and the adjacent +/-1 keys on the Camelot wheel. With `extended=true` also returns the +7/-7 energy-boost / energy-drop keys. Pure music theory — no catalog lookup and no quota cost. Pair with find_tracks_by_key to then pull actual tracks in each compatible key.
    ConnectorNo auth
  • Create a watermarked music-scored MP4 from a supported video URL and an English music brief, an explicit catalogue track, or timed sections. Measures video duration and edit pace, selects or uses the specified music, and mixes it with the source audio. Sections support separate cues, versions or stems; silences specify music-free intervals. Section and silence boundaries are adjusted to measured shot boundaries. Returns video download/watch links, chosen cues, mix details, duration and shot-count summary. Detailed cut timestamps, storyboard frames and transcripts are provided by analyze_video, not this tool. Completed delivery packages are retrieved with deliver_score using the scoring arguments. Supports direct video files and supported Dropbox/Google Drive shares; stream-only YouTube, Vimeo, Dailymotion and Twitch pages are unsupported. Creates private processing jobs and stored outputs. After verified output storage, the temporary AINSOF-uploaded source copy is deleted or queued for deletion retry; the local original is unchanged. Processing may return still_running; recent identical requests reuse existing work. Terminal failures return a reason.
    Connector
    Destructive
    No auth
  • Create a watermarked music-scored MP4 from a supported video URL and an English music brief, an explicit catalogue track, or timed sections. Measures video duration and edit pace, selects or uses the specified music, and mixes it with the source audio. Sections support separate cues, versions or stems; silences specify music-free intervals. Section and silence boundaries are adjusted to measured shot boundaries. Returns video download/watch links, chosen cues, mix details, duration and shot-count summary. Detailed cut timestamps, storyboard frames and transcripts are provided by analyze_video, not this tool. Completed delivery packages are retrieved with deliver_score using the scoring arguments. Supports direct video files and supported Dropbox/Google Drive shares; stream-only YouTube, Vimeo, Dailymotion and Twitch pages are unsupported. Creates private processing jobs and stored outputs. After verified output storage, the temporary AINSOF-uploaded source copy is deleted or queued for deletion retry; the local original is unchanged. Processing may return still_running; recent identical requests reuse existing work. Terminal failures return a reason.
    Connector
    Destructive
    No auth
  • Analyze an audio file. Modes: - transcript: Speech-to-text with word-level timestamps — returns `{language, full_text, words}` where each word is `{word, start_ms, end_ms, punctuated_word}`. ⚠ MILLISECONDS here; get_clip's `voiceover_words` gives the same words in SECONDS as `{word, start, end}`. Use for caption timing, script editing, or word-level visual sync. Works on narration and on sung lyrics: the provider is picked from the content, and if it returns nothing the other one is tried automatically. So an empty `words` means the audio genuinely has no intelligible speech, not that the wrong engine ran. - silences: returns `{silences, total_silence_ms}`, each span `{start_ms, end_ms, peak_db}`. Use for auto-trim, smart-split, or pause-aware editing. - beats: returns `{tempo_bpm, beats_ms}` — beats_ms is an array of MILLISECOND positions. Empty for non-music. Use to align animations/zooms to a beat. - features: returns `{duration_ms, peak_db, rms_db, lufs, has_music, has_speech}` — loudness plus two INDEPENDENT hints — `has_music` (beats hold a steady period) and `has_speech` (there is audible content above a loudness floor; it is not a speech detector). Both can be true at once, e.g. narration over a music bed. Cheap dispatcher — call once to pick a mode, or for duration_ms to pass as add_audio's source_duration. When the words matter, trust transcript rather than these flags. Source: provide exactly one of mcp_upload_id (from upload tool) or file_url (already-public URL, e.g. a find(type='music') result or Clueso CDN file). Optional time range: range_start_ms / range_end_ms crops the analysis window.
    ConnectorNo auth
  • Use this to create sound effects (NOT music). TEXT mode: describe the sound — Foley, ambience, UI sounds, whooshes/transitions, impacts, action sounds — with sonilo-sfx: 1–180 seconds, mp3 or wav, PRICED PER SECOND of the requested duration (5 credits/s, 3-second minimum → 5 s = 25, 10 s = 50, 30 s = 150 credits). VIDEO mode: pass a video URL (upload local files with upload_media first) to get frame-accurate effects synced to the clip's visible events with sonilo-video-sfx — billed per second of the VIDEO's measured length (15 credits/s, 3-second minimum, up to 360 s) and returns both the SFX track and the video with the effects mixed in. Charged on success only; the user's plan discounts apply automatically. Keep text clips as short as the sound needs and confirm cost for long videos. Submits an async job and returns a numeric job_id — text clips finish within ~15 seconds, video jobs can take a few minutes: poll check_generation_status with the job_id AND type "sound_effect" every 5–15 seconds, then share the finished link(s) with the user (chat can't embed players). For songs or background music use generate_music instead.
    ConnectorNo auth
  • Get the user's recent generations made through this connector or the developer API — images by default, or pass type "video", "music", or "sound_effect". Outputs are kept for about 24 hours (they are never saved to the user's asset storage unless save_to_assets is called), so rows older than that show as expired with no link. Returns prompts, models, status, and result links: image URLs (reusable as input_images on generate_image to edit/restyle one — e.g. "make the third one wintery"), video watch links, or music / sound-effect listen links (also reusable as create_social_post media). Every row's job_id works with check_generation_status (music and sound effects also need their type) and with save_to_assets. Generations the user made on the BudgetPixel website are in their gallery, not here.
    ConnectorNo auth
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Punctuate a MOMENT with a one-shot sound effect — a whoosh on a cut, a click on a beat, an impact on a reveal. Choose it when the brief, format, timing, or your editorial judgment says sound design improves the cut. Analysis, metadata, and deterministic preview AUDIO CHECK are useful evidence; uncertainty is something to judge rather than a reason the tool becomes unavailable. storage_key is an exact key from fetch_sfx or list_assets(kind='music') — never invent one. `at` is an OUTPUT-timeline second (the edited program, not source time). This is NOT background music: it plays once, for as long as the sound is, and never ducks. offset_s starts inside source audio — use it when an extracted clip contains the requested hit late in a long track. purpose records the nameable visible/editorial event for later final-mix review; do not add anonymous decorative sounds. Default -6dB.
    ConnectorOAuth
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. THE tool for 'cut to the beat'. Slides each INTERNAL cut (never the program's first start / last end) onto the nearest beat within tolerance_s (default 0.35s), skipping any move that would land inside a word. WHICH beat: when the edit has music it uses the SONG the viewer hears, in program time — that is what 'the beat' means; source='video' forces the footage's own audio instead. If the USER tells you the tempo ('there's a beat every second', 'it's 120 BPM'), pass every_s=1 or bpm=120 — their tempo is data and skips the confidence gate. With no music, no stated tempo and no clear pulse in the footage it refuses honestly rather than 'syncing' to noise — never invent a tempo yourself. Cuts must already exist: this MOVES boundaries, it does not create them (to cut ON every beat, build the spans with keep_segments from the beat times get_audio_analysis reports, then call this to tighten them). One EDL version; reports moved/skipped counts.
    ConnectorOAuth