{
  "slug": "sonicmatch",
  "name": "Sonicmatch",
  "vendor": "Community (js713-lab)",
  "official": false,
  "category": "music",
  "featured": false,
  "tagline": "Watches the footage, then returns license-safe music, a hook window, and a ducking spec.",
  "description": "Sonicmatch is music supervision shaped for an agent: ingest a cut, analyse mood, energy curve, speech coverage and scene cuts, then get back a ranked shortlist of tracks with the license printed on every row, a 12–20 second hook in/out, an ffmpeg ducking recipe, and a beat-snapped cut list. It reads the picture rather than the script, which is the difference between a music search and a music choice. The intended production use is pointing it at an Artlist or Epidemic library you already pay for, via a JSON manifest, so the scoring logic runs over a catalogue you are actually cleared to deliver.",
  "capabilities": [
    "video-analysis",
    "music-search",
    "music-licensing",
    "beat-detection",
    "scene-detection",
    "ducking",
    "mix-spec"
  ],
  "tools_sample": [
    "status",
    "ingest_video",
    "analyze_video_music",
    "recommend_bgm",
    "search_music",
    "get_track",
    "preview_mix",
    "export_mix_spec",
    "suggest_cuts",
    "generate_bed",
    "save_brand_kit",
    "analyze_batch"
  ],
  "install": {
    "claude_code": "claude mcp add sonicmatch -- uvx --from git+https://github.com/js713-lab/sonic-match-mcp.git sonicmatch-mcp",
    "remote_url": null,
    "stdio_command": "uvx --from git+https://github.com/js713-lab/sonic-match-mcp.git sonicmatch-mcp — or pip install git+https://github.com/js713-lab/sonic-match-mcp.git then run sonicmatch-mcp. Needs Python 3.10+ and ffmpeg/ffprobe on PATH; add --http --port 8765 for Streamable HTTP instead of stdio."
  },
  "auth": {
    "type": "none",
    "env_var": null,
    "key_url": "No key required. Optional: GEMINI_API_KEY for video understanding, JAMENDO_CLIENT_ID and FREESOUND_API_KEY for extra catalogues, SONICMATCH_LIBRARY_PATH / EPIDEMIC_LIBRARY_PATH / ARTLIST_LIBRARY_PATH for a library you already licensed"
  },
  "pricing": "free",
  "links": {
    "repo": "https://github.com/js713-lab/sonic-match-mcp",
    "docs": "https://github.com/js713-lab/sonic-match-mcp#readme",
    "site": null
  },
  "added": "2026-09-23",
  "verified": "2026-09-23",
  "notes": "Young and thin, listed for the shape of the idea rather than the catalogue behind it. Checked 23 Sep 2026: MIT, first public release 10 Sep 2026, one v0.2.0 tag, last commit 16 Sep, a single maintainer, 94 stars against zero forks — and published to the official MCP registry as io.github.js713-lab/sonicmatch-mcp with an .mcpb bundle. Not on PyPI, so every install path is a git checkout; the twelve tools above were read off the source, not just the README. The built-in catalogue is 22 seed tracks whose preview and download URLs are null on purpose, so out of the box recommend_bgm hands you rows you cannot fetch and preview_mix synthesises a demo bed instead of real music — the useful configuration is your own licensed Artlist or Epidemic manifest, or the optional Jamendo and Freesound keys. Platform URL ingest via yt-dlp ships off by default for ToS reasons; leave it off and feed it local files. The licensing discipline is the best thing here — non-commercial tracks are never auto-recommended and generated beds are excluded from recommendations — but a CC label is not a Content ID waiver, and CC-BY still needs attribution in your credits. For a cleared catalogue with the rights already settled, the Epidemic Sound entry is the grown-up option; Sonicmatch is the analysis layer you would put in front of it."
}