Skip to main content
Glama
749,480 tools. Updated 2026-11-06 00:35

"A server for music playback and audio player resources" matching MCP tools:

  • Write a score in ABC notation and play it as sheet music: a melody, a harmonized piece, a multi-voice arrangement or a well-known tune, on any of the 128 General MIDI instruments. Put chord symbols above the notes and add a style (rock, jazz, bossa, waltz, folk...) for drums, bass and chords. The user can edit the score in the player, change its style and instrument, and download WAV or MIDI. The result confirms the parse; it returns no audio. Start with get-music-guide topic 'genres'; 'abc-syntax' and 'instruments' for the rest. The music player renders inline with interactive playback controls.
    ConnectorNo auth
  • Pauses playback in the Music app. Does nothing when the Music app is not open. Returns the player state, the volume and the current track afterwards.
    Connector
    Destructive
    OAuth
  • Starts playback in the Music app: resumes, or with `track_id` plays that library track, or with `playlist` that playlist. Opens the Music app when it is closed. Returns the player state, the volume and the current track afterwards.
    Connector
    Destructive
    OAuth
  • Browse the contents of a Qencode Media Storage bucket. Args: bucket: bucket name (see `list_buckets`). An unknown bucket fails with `bucket_not_found`. prefix: optional key prefix to filter by (e.g. `raw/`). continuation_token: pass the `next_token` from a previous truncated response to fetch the next page. Returns `{objects, is_truncated, region, public}` plus `next_token` when truncated. Each object has `key`, `size`, `last_modified`, `extension` (from the key, e.g. `m3u8` / `mp4` / `""`), `destination_url` (that object's S3 URL — private `source` / stitch / subs / logo, not dest), and `cdn_url` when the bucket is public (playback and public fetch). Copy those URLs; do not assemble them. Job dest is always a NEW path `{destination_prefix}/{new filename or folder}` from `list_buckets`. Public playback is `cdn_url`. A private progressive file (`.mp4` / `.webm`) plays via `get_download_url`. Do not call `get_download_url` for HLS/DASH. One call returns up to ~1000 objects; page with `continuation_token=next_token` when `is_truncated` is true.
    ConnectorOAuth
  • Talk to the Google Flow Music Producer agent instead of one-shotting a track. Use this when the work is a conversation rather than a single brief: asking what it can do, having it write lyrics first, or editing a track it already made ("drop the vocals", "same song, 30 seconds shorter", "make the chorus bigger"). For a plain "make me a song about X", music_generate is the shorter path. message — what to say. conversation_id — omit on the first message, then pass the one that comes back so the Producer keeps its memory of the track. model — same choices as music_generate. Returns {"conversation_id", "text", "suggested_actions", "clips": [...], "media": [...]}. `text` is the Producer's reply. `suggested_actions` are the follow-ups it offers — show them to the user, they are good prompts for the next turn. `clips` is EMPTY when the Producer only talked, and filled when it decided to actually make audio; treat a filled `clips` exactly like a music_generate result and save the audio. A reply is usually seconds, but a turn that produces a song takes minutes and comes back as a job_id to poll with check_job.
    ConnectorNo auth
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Mix music into the edit. The defaults are CONTEXT-AWARE: under speech the track sits low as a bed (-18dB, ducked); when NO speech survives under the window the music is the LEAD audio (-4dB, no ducking) so the user actually hears it. Pass gain_db/duck only to override that. storage_key is an exact key from list_assets(kind='music') — the user's own uploads or a track fetch_url just downloaded — never invent one. Agents never choose music: a library track is placed only by add_library_music after the user picks it. Choose from the user's direction, metadata, context and measured get_audio_analysis evidence. start/end are OUTPUT-timeline seconds and DEFAULT TO THE WHOLE VIDEO, so omit them for 'add some music'. Fades in/out by default. loop=true (the default) repeats a short track to fill the span; offset_s starts partway into the track, e.g. to skip a slow intro. Ducking is SMOOTH by default (a sidechain dip that follows the voice; set_music_fit(duck_mode='step') restores the legacy hard -12dB duck).
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables in-chat music playback by searching song names or specifying Netease song IDs, returning playable music cards with cover, lyrics, and a temporary audio proxy. It relies on a user-configured Netease-compatible API and supports custom card colors.
    6
    MIT

Matching MCP Connectors

  • Text to speech for your AI. Your AI can send text to Doc Player to read it aloud. You will see a reader window with the text and you can control the playback sentence by sentence. Find an example here: https://documentplayer.com/connect-ai/

  • ABC sheet music + Strudel live coding: songs, videos and live jam sessions in ext-apps widgets.

  • 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
  • PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. READ: measured musical/energy analysis of the source audio (cached after the first call): tempo (BPM + confidence — below 0.5 the pulse is unreliable and beat_align_cuts refuses), beat count plus the first up-to-eight detected beat timestamps, where the loudest/quietest sections and the biggest energy rise sit, and the most vocally STRESSED words with timestamps. Times are SOURCE seconds. Call before beat_align_cuts / punch_in_on_emphasis, or to answer 'what's the tempo'. Pass asset_key (an uploaded or fetched music file) to analyze that instead — e.g. to find the drop for add_music offset_s.
    ConnectorOAuth
  • Free (requires an active plan). Upload one music track and get a `url` to reuse in tegas_edit_video's `music.url`. Give exactly one of audio_base64 or file_path. audio_base64 - the audio bytes as base64 (a `data:audio/mpeg;base64,...` URL is also accepted); this is the way for any remote agent, because the file never has to be public. file_path - a path on the FILESYSTEM OF THE MCP SERVER, so it only works for local / self-hosted runs where the server and the agent are on the same machine, and only when the server enables it (otherwise the tool answers with code local_files_disabled - then send audio_base64 instead). Formats mp3, wav, m4a, up to 25 MB. Bad input comes back as validation_error with details.reason, before anything is uploaded: one_source_required (gave both or neither), bad_base64, empty, not_audio, too_large; a file_path that cannot be read is file_not_readable, and a server that forbids local files answers with code local_files_disabled. label - a short note (e.g. "background track"), optional, kept to the first 120 characters. Returns music_id, the stored url, the label and expires_at. Pass the returned url in `music.url` of tegas_edit_video (and set `music.enabled` to true if music was off). Errors: no_active_plan -> ask the user to activate a plan in the cabinet.
    ConnectorOAuth
  • Read an RS3 player's published hiscores ranks, levels and experience, including Overall. Use search_wiki for training guides rather than player data. - username is the literal in-game display name, including spaces; the server URL-encodes it. gameMode chooses a separate leaderboard, not a filter on normal stats. Omit it for normal mode. - Normal, ironman and hardcore boards are supported. A player absent from the selected board returns a 404 tool error; the tool never substitutes another board. Unranked skills use rank Unranked; unavailable level/XP becomes 0. - No login, account changes or local cache. HTTP shares a default 60 requests/IP/minute budget; honor Retry-After on 429.
    ConnectorNo auth
  • Play Quranic ayah audio with an interactive player widget. Use this when: the user asks to play/listen to ayahs. RECITER HANDLING: If the user names a specific reciter (e.g. 'Husary', 'Minshawi', 'Al-Afasy', 'Abdul Basit'), ALWAYS call lookup_reciters first to resolve the exact reciter_id — do not guess the ID. Guessed IDs routinely point at the wrong reciter. If the user doesn't specify a reciter, omit reciter_id entirely so default_reciter_id applies. Use ayah keys in 'surah:ayah' format (for example '1:1'). In each query, reciter_id is optional and defaults to default_reciter_id if omitted. Limits: max 50 queries and max 200 total ayahs per request.
    ConnectorNo auth
  • Remove an element, a group or an audio track from a project. - target="element": removes an element (requires element_id, or element_ids for several). clip_index is optional — the element is located by id; pass it only as a hint - target="group": removes a GROUP node (requires clip_index + group_id). By default its children survive — they rise to the removed group's own parent, which for a top-level group is the clip root. Pass keep_children=false to delete the whole subtree instead, every nested group and every element inside it. - target="audio": removes a music/SFX track (requires music_id — returned by add_audio) Concurrency: target='element' is element-scoped (conflict domain: the individual element) — parallel-safe with other element edits on different elements, same as remove_elements. target='audio' is a whole-project mutation — serialize it against any other mutation on the same project_id. (Mutations to different projects run in parallel freely.)
    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, speech_share}` — loudness plus two INDEPENDENT hints — `has_music` (beats hold a steady period) and `has_speech` (at least 40% of the audible seconds sound like talking; `speech_share` is that share, 0-1). Instrumentals read false; so do sung vocals and narration under a loud bed, so when the words matter, use transcript. Cheap dispatcher — call once to pick a mode, or for duration_ms to pass as add_audio's source_duration. - energy: loudness over time — `{samples_per_second, start_ms, db}`, db one RMS dBFS value per 1/samples_per_second s from start_ms (default 4 a second; energy_options.samples_per_second 1-20). Read builds, dips and hits from it. - sections: how a track is built — `{loud_db, sections: [{label, start_ms, end_ms, db, onsets_per_s}], drops: [{t_ms, rise_db, quiet_start_ms?, quiet_end_ms?}]}`, label intro | build | drop | main | breakdown | outro; a drop's t_ms is the hit (within ~10 ms), quiet_* the dip just before it. Set animation cues on beats (beats mode) or drops. - describe: what the audio IS — `{kind: speech|music|mixed, classification_confidence, duration_seconds, music?: {tempo_bpm, key, mood, genre, energy, instruments, description, suggested_search_query}, speech?: {...}}`. Pass suggested_search_query to find(type='music') for a similar track. Speech is not transcribed here; use transcript for the words. 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
  • Uninstall a release and remove the resources it created, including volume data. Use it, not delete_resource, for anything install_template created. Provide the release `name`.
    Connector
    Destructive
    OAuth
  • Use when the user gives several Steam ids - a match roster, a team, a list of suspects - and wants profiles, FACEIT or ban status for all of them: up to 100 in ONE call, always instead of per-player calls. ids are STRINGS in any computable SteamID format (steamid64, STEAM_1:0:x, STEAM_0:0:x, [U:1:x], hex, steam:hex, a 32-bit account id, a /profiles/ link); never JSON numbers (a 17-digit number loses precision and points at another account); vanity names are not accepted - resolve them with steam_identity first. Players unknown to the platform come back in not_found - fetch those with steam_profile. include adds FACEIT (one query for the batch) and Steam bans (one upstream call) - the cheapest way to review a full roster. Do not use for one player (steam_summary).
    ConnectorNo auth
  • Get player-prop lines and live progress for an NFL, NCAAF, NBA, NCAAB, NHL, MLB, or soccer event. Joins persisted player-prop mains to this-event player box counts and grades over/under/push (1:1 slugs, combo sums including rush+rec and pass+rush yards, weighted total bases, anytime TD, double-double/triple-double, hockey points). Sport × market catalog: https://lumify.ai/docs/player-props. GET /odds / get_odds stay on moneyline/spread/total. Returns available:false with no charge if no prop mains have been ingested. Other sports return HTTP 400.
    ConnectorAPI key
  • 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
  • Upload a local image, video, or audio file to BudgetPixel and get back a short-lived URL (valid ~24h) to use as a generation input: pass it as an input_images value on generate_image, or as image / end_image / reference_images / video / audio on generate_video. Use this when the user has a LOCAL file: read the file and pass its base64 as 'file'. Not charged; max 50MB. Video/audio inputs REQUIRE this (generate_video takes them by URL only). If you already have a public URL, pass it straight to the generate tool instead.
    ConnectorNo auth
  • 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
  • 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
  • Render a video from a text prompt using ViewMax Studio. Returns immediately with a job id; the clip is not ready yet. Rendering takes roughly two to four minutes. Call `get_video` with the returned id to collect the result, waiting about 15 seconds between checks. Do not poll faster than that, and tell the user it is rendering rather than going silent while you wait. Credits are charged to the account the API key belongs to, and refunded automatically if the render fails. Available models: - seedance-2-mini: Native audio and multi-shot cuts in one clip. Longest takes we offer. (4–15s, 480p/720p/1080p, with audio) - h3-max: Native 768p with no upscale pass. Fastest turnaround, up to 15s takes. (5–15s, 480p/768p, with audio) - h3-max-turbo: Half the price of H3 Max at the same sizes, and the quickest render we carry. (5–15s, 480p/768p, with audio) - viewmax-agent-2.0: Writes, cuts and scores a whole video from one brief, at any length you ask for. (15s and up, 720p, with audio) Leave `model` unset to use the default. Call `list_video_models` if you need exact per-model limits or prices.
    ConnectorNo auth