Uses Google Cloud project for OAuth authentication to access YouTube Music API through YouTube Data API v3.
Analyzes video script content and searches YouTube Music to recommend suitable background tracks based on mood, theme, pacing, and duration requirements for YouTube shorts.
Find BGM MCP Server
An MCP server that helps YouTube content creators find perfect background music for their shorts by analyzing script content and recommending tracks from YouTube Music.
Features
Script Analysis: Analyzes mood, theme, pacing, and sentiment from video scripts
Smart Recommendations: Uses YouTube Music API to find suitable background tracks
Duration Filtering: Ensures recommendations fit your short video length
Confidence Scoring: Ranks recommendations by relevance to your content
Architecture
The server follows clean architecture principles with modular design:
Installation
Install dependencies:
(Optional) Set up YouTube Music API access:
Follow the ytmusicapi setup guide
Create
oauth.jsonfile in the project directoryWithout this, the server will use mock recommendations
Usage
The server provides one main tool: recommend_background_music
Parameters
script(required): Your YouTube short script/contentduration(required): Length of your short in seconds (15-60)genre_preference(optional): "pop", "electronic", "chill", "rock", "hip-hop", "classical", "ambient", "any"mood_preference(optional): "upbeat", "calm", "dramatic", "energetic", "relaxed", "motivational", "any"content_type(optional): "comedy", "educational", "lifestyle", "fitness", "cooking", "travel", "tech", "other"
Example Response
Configuration
Customize behavior with environment variables:
YouTube Music API Setup
Method 1: Browser Authentication (Recommended)
Install ytmusicapi:
pip install ytmusicapiRun:
ytmusicapi browserFollow prompts to paste browser headers from YouTube Music
Save as
oauth.json
Method 2: OAuth Setup
Create Google Cloud project
Enable YouTube Data API v3
Create OAuth credentials
Run:
ytmusicapi oauthComplete authentication flow
Without the API, the server works with mock data for testing.
Running the Server
The server runs on stdio and can be integrated with any MCP-compatible client.
Testing
Claude Desktop Integration
Add to your claude_desktop_config.json:
Components
ScriptAnalyzer
Analyzes script content to detect mood, theme, and pacing using natural language processing.
YouTubeMusicService & MusicRecommendationService
Handles YouTube Music API integration and generates scored recommendations.
BGMTools
MCP tool interface that orchestrates script analysis and music recommendations.
Configuration Management
Environment-based configuration with sensible defaults and type safety.
Example Usage
The server provides intelligent music recommendations to help creators find the perfect soundtrack for their content! 🎵