Skip to main content
Glama
665,998 tools. Updated 2026-10-16 16:47

"A tool for analyzing music to determine BPM" matching MCP tools:

  • Get Tiktok posts that use a specific sound/music with three response modes. Required: soundId (numeric ID from searchTiktokSounds). FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. Returns by default: id, description, username, createdAtDate. NOT for keyword/phrase search - use getTiktokPostsByKeywords. NOT for hashtags - use getTiktokPostsByHashtags. Date filters: OMIT startDate/endDate by default. ONLY pass if user explicitly requests a date range (YYYY-MM-DD). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Core (id, description, userId, username, nickname, createdAtDate), Engagement (likeCount, commentCount, playCount, forwardCount, collectCount, downloadCount), Media (videoThumbnail, videoUrl, duration, postType), Content (hashtags, transcriptsJson). This is a safe, read-only tool for analyzing searchable information.
    ConnectorOAuth
  • 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
  • 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
  • Get USER PROFILES of people who interacted with an Instagram post. Returns full user data (bio, followerCount, followingCount, etc.). RETURNS USER PROFILES: id, username, fullName, biography, followerCount, followingCount, isVerified, profilePicUrl. Use for analyzing WHO engaged with a post. NOT FOR COMMENT TEXT: To read the actual comment content (what people wrote), use getInstagramCommentsByPostId instead. INTERACTION TYPES: "commenters" (users who commented), "likers" (users who liked). WHEN TO USE THIS TOOL: Analyzing commenters/likers demographics, finding influencers who engaged, building audience profiles, network analysis of who interacts with posts. WHEN TO USE getInstagramCommentsByPostId: Reading comment text, sentiment analysis of what was said, analyzing discussion content. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for commenters when stale. PAGING (responseType="paging"): Async paginated results (1000 users per page with default fields), returns operationId - IMMEDIATELY call checkOperationStatus to get results. CSV export included via dataDumpExportOperationId. Supports pageNumber/tableName for subsequent pages. Optional fields (default: ["id", "username", "fullName"]). Available: biography, isPrivate, isVerified, followerCount, followingCount, mediaCount, profilePicUrl. This is a safe, read-only tool for analyzing searchable information.
    ConnectorOAuth
  • Check the status of a submitted job. Call this after submit_query to see if your job is ready. Status progression: submitted -> analyzing -> fetching -> clustering -> enriching -> completed/failed IMPORTANT: Jobs take several minutes to process. First check after ~1-2 minutes, then poll every 30-60 seconds. Broad searches can take 10-30+ minutes; for long jobs, poll every 60-120 seconds. Do NOT call this tool in a tight loop. Stop polling when status is `completed` or `failed`. Treat `submitted`, `analyzing`, `fetching`, `clustering`, and `enriching` as active states and continue polling. You don't need to wait for completion to pull results. Partial results are available during `enriching` — call pull_results after ~2 minutes, then poll status every 30-60 seconds and pull again for fresher results. Do not stop pulling just because an intermediate pull is empty/unchanged. Use `progress_validated` vs `candidate_records` to track whether more results may still appear (`progress_validated < candidate_records`). If transport/session fails, resume using the same `job_id`.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to search and inspect behavioral packages from the BPM registry and install or remove them with mandatory human approval, all without leaving the agent session.
    Apache 2.0
  • F
    license
    B
    quality
    C
    maintenance
    A local music retrieval MCP server that lets users search, download, and organize songs via natural language, with lyrics matching from NetEase Cloud Music and LRCLIB, plus local library indexing through SQLite.
    5
    -

Matching MCP Connectors

  • Check the status of a submitted job. Call this after submit_query to see if your job is ready. Status progression: submitted -> analyzing -> fetching -> clustering -> enriching -> completed/failed IMPORTANT: Jobs take several minutes to process. First check after ~1-2 minutes, then poll every 30-60 seconds. Broad searches can take 10-30+ minutes; for long jobs, poll every 60-120 seconds. Do NOT call this tool in a tight loop. Stop polling when status is `completed` or `failed`. Treat `submitted`, `analyzing`, `fetching`, `clustering`, and `enriching` as active states and continue polling. You don't need to wait for completion to pull results. Partial results are available during `enriching` — call pull_results after ~2 minutes, then poll status every 30-60 seconds and pull again for fresher results. Do not stop pulling just because an intermediate pull is empty/unchanged. Use `progress_validated` vs `candidate_records` to track whether more results may still appear (`progress_validated < candidate_records`). If transport/session fails, resume using the same `job_id`.
    ConnectorNo auth
  • Build a UTM-tagged URL for campaign tracking. FREE. Typical input {"url": "https://example.com/pricing", "source": "newsletter", "medium": "email", "campaign": "spring-launch"} returns {"tagged_url": "https://example.com/pricing?utm_source=newsletter& utm_medium=email&utm_campaign=spring-launch"}. Use to build one tagged tracking URL. Not for analyzing campaign results and not for anything that belongs in the message body (audit_copy). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "url must start with http(s)://"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
    ConnectorNo auth
  • Build a UTM-tagged URL for campaign tracking. FREE. Typical input {"url": "https://example.com/pricing", "source": "newsletter", "medium": "email", "campaign": "spring-launch"} returns {"tagged_url": "https://example.com/pricing?utm_source=newsletter& utm_medium=email&utm_campaign=spring-launch"}. Use to build one tagged tracking URL. Not for analyzing campaign results and not for anything that belongs in the message body (audit_copy). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "url must start with http(s)://"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
    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
  • Get COMMENT CONTENT (text, likes) for a Tiktok post. Returns the actual comment objects with text and metadata. RETURNS COMMENT DATA: id, text, username, createdAtDate, likeCount. Use for reading what people said. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: sentiment analysis, reading discussions, analyzing comment content, engagement patterns. Date filters: OMIT startDate/endDate by default. ONLY pass if user explicitly requests date range. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields: ["id", "text", "username", "createdAtDate", "likeCount"]. This is a safe, read-only tool for analyzing searchable information.
    ConnectorOAuth
  • Generate a full song with AI vocals from a style prompt plus lyrics — or an INSTRUMENTAL bed / underscore (background music under video narration, intros, outros) by sending ONLY structure tags and no words. You choose the length: 15-300 seconds at 5 sats/second (75-1500 sats). Specify BPM, key, genre, mood in prompt. Returns a 44.1 kHz 16-bit stereo WAV URL. Structure tags must each be on their OWN line — words on a tag line are DROPPED by the model, which silently shortens the song. Don't want to write lyrics? Set lyricsAddon:true (+25 sats) and optionally lyricsAbout to say what they should be about. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_music' AND the same duration (the price is bound to it).
    ConnectorNo auth
  • Generate a full song from a text brief via Google Flow Music (Lyria). prompt — free text: genre, mood, BPM, instruments, and whether you want vocals or an instrumental (e.g. "dreamy synthwave, retro 80s, 110 bpm, instrumental"). The Producer agent turns it into a finished track (usually ~2-3 minutes, and it returns TWO variants). model — "lyria" (Lyria 3.5, the default flagship) or "lyria-pro" (Lyria 3 Pro, legacy). lyrics — optional explicit words to sing; omit for the model to write its own / stay instrumental. SAVE THE RESULT. Each returned clip carries a public `audio_url` (a Google Cloud Storage .m4a, no auth header needed) plus `download_path` on our server. Unless the user said otherwise, download the audio into their project. Fields per clip: clip_id, title, duration (seconds), lyrics, audio_url, wav_url, image_id (cover, feeds music_video), image_url. Returns {"clips": [...], "media": [...], "conversation_id": "..."} when done, or a job_id to poll with check_job if it isn't ready within ~90s. conversation_id — pass the one from an earlier result to keep working on the same track ("same song but 30 seconds shorter"); the Producer remembers what it just made. Omit it for a fresh start. Every result carries one, so a follow-up is always possible.
    ConnectorNo auth
  • Instagram only. Lists audio you can put on an Instagram reel: music, or original sounds from other reels. Put the id you pick in options.instagram.audio.id when you call publish. Reels only. Works only for Instagram accounts connected via Facebook; an account connected with Instagram login answers not_supported, and the person has to reconnect it with Facebook. type is music (default) or original_sound. Without query you get what is trending for this account. With query, music comes only from Meta's royalty-free Sound Collection, so an artist or song name will not find that song; look through the trending list for popular songs instead. Trending music differs per account, and some accounts only get royalty-free music. Use ids from this account's own results. previewUrl is a temporary audio file (about 1.5 days) and listenUrl opens the sound on Instagram; neither is the finished reel. Instagram cannot preview a reel with audio before it is published. The audio plays once from its beginning (you cannot choose the start) and is not repeated, so pick one at least as long as the reel (durationMs). For a voice-over keep videoVolume at 100 and set volume around 15 to 30. Pass nextCursor back as cursor for the next page.
    ConnectorOAuth
  • Lists all automation-enabled Data Templates (Forms) available for the current group. Use this tool first when you need to determine which Data Template (Form) should be used for a user's request, before retrieving its schema or working with submissions.
    ConnectorNo auth
  • Create an original music track from a text prompt. Costs 60 credits for tracks up to 60 seconds, then 1 credit per second (duration_seconds defaults to 60); plan allowances do not cover music. Setting style sends prompt as the song's lyrics, so do not also send lyrics; to describe a track, put the description in prompt and omit style. Music renders synchronously: the result usually returns immediately with output_urls.
    ConnectorNo auth
  • Discovery tool for indexed brands, sites, and domains. Use this when you need to discover or disambiguate which indexed domain/sourceId corresponds to a brand or product name, especially if an initial broad search needs narrowing. search_content does not require domain or sourceId, so prefer calling list_sources as an optional discovery step rather than as a mandatory prerequisite. It helps determine whether this MCP has a relevant indexed source and which domain or sourceId to pass into search_content or other tools.
    ConnectorNo auth
  • Open an endless, non-repeating music stream and return its URL. Use this instead of generating tracks when the music should never stop and never loop — a workout app, a game, a focus tool, a venue. Only one stream exists per client at a time: calling this again replaces the running one rather than opening a second. Streaming is metered by seconds played, and metering is reported after the fact, so a quota can be overshot slightly.
    Connector
    Destructive
    OAuth
  • Search Instagram's licensed music catalog for a track to attach to a REEL. Use this whenever the user wants to post a reel WITH music/a song/a sound (e.g. "post this reel with trending audio", "add that song to it"). Flow: call with a song/artist/keyword (or NO query for currently trending audio) → present the options → once the user picks, pass that result's `audio_id` as `instagram.audio_id` on create_post / create_and_publish_post / update_post. Optionally mix with `instagram.audio_volume` / `instagram.video_volume` (0-100; set video_volume 0 to fully replace the video's own sound). Instagram Reels only — feed posts, carousels, and Stories can't take music via the API (Meta limitation). Notes: only tracks Meta licenses for third-party publishing appear, so the selection can differ from the Instagram app. Requires the workspace to have a Facebook account connected whose Page is linked to this Instagram account — if results say Facebook is needed, tell the user to connect it under Settings → Organisation → Workspaces.
    ConnectorOAuth
  • Score how well one catalog track mixes into another (0-100) — the pairwise DJ transition score no raw key/BPM API gives you. Combines Camelot-wheel key compatibility, octave-aware BPM proximity (half/double-time counts as a match), and energy smoothness. Returns the overall `score`, per-component scores (`harmonic`/`tempo`/`energy`), a `detail` block (key_relation, both Camelot keys, both BPMs, bpm_delta, bpm_octave_matched, both energies, energy_delta), and a one-line human `reason` (e.g. "8A->9A adjacent (+1), 126->128 BPM (+2), energy +0.04 — clean uplifting mix"). Both ids are catalog itunes_track_ids — get them from search_catalog or the itunes_track_id field of a get_audio_features result. Costs 1 quota unit.
    ConnectorNo auth
  • Start here when the category is unclear. Pass the user's words as `query`; RootVine reads music or games from them (keyword-based — set `category` when you know it) and answers in that tool's shape. Music is live; games answer "coming soon" for now. RootVine never fabricates. Every link existed at resolved_at. Limits: UK-focused stores, prices in GBP; music only today — games are not live yet. On partial, say which sources didn't answer; on no_results, tell the user plainly — never fall back to guessing a link.
    ConnectorNo auth