AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
The maintained Spotify audio_features replacement — query by name, no Spotify ID. 44 fields, 1223+ pre-analyzed genres, 12+ language families (J-Pop · K-Pop · Mandopop · Bollywood · Afrobeats · MPB ·
Translation pending
Developer toolsJavaScript · DockerfileGitHub @stevebirring-starOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
MCP server for the FreqBlog Music API — lets Claude, Cursor and Windsurf look up BPM, key, mood, genre and 30+ audio features by track name, ISRC or MusicBrainz ID. 23 tools, including DJ transition scoring and setlist ordering. Drop-in replacement for Spotify's removed audio-features.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
MCP server for the FreqBlog Music API.
Lets Claude, Cursor, Windsurf, and any MCP-compatible AI assistant look up audio features, build harmonic playlists, fetch lyrics, render waveforms, and export DJ-ready files. For reliable, full-catalog results, identify tracks by name (+ optional artist) or ISRC — a track name alone works, no Spotify account or ISRC needed. MusicBrainz IDs are also accepted.Read the full README ↗MCP server for the FreqBlog Music API.
Lets Claude, Cursor, Windsurf, and any MCP-compatible AI assistant look up audio features, build harmonic playlists, check lyrics availability, render waveforms, and export DJ-ready files. For reliable, full-catalog results, identify tracks by name (+ optional artist) or ISRC — a track name alone works, no Spotify account or ISRC needed. MusicBrainz IDs are also accepted. A raw Spotify track ID works too — resolved per request by reading the track's title from Spotify's public embed page and matching it against our catalogue (we store no Spotify IDs; a resolution is remembered in memory for at most 24h) — but a title several artists share is ambiguous and misses rather than guessing, so it is not a universal Spotify-ID reverse lookup: prefer name or ISRC.
| Tool | Description |
|---|---|
lookup_track | BPM, key, mood, genre, danceability, energy and 20+ more — best by track name (+ optional artist) or ISRC, which search the full catalog and queue an on-demand fetch + analysis on a miss; also accepts a MusicBrainz ID, or a Spotify track ID (resolved per request by title match against our catalogue — no Spotify IDs are stored; ambiguous titles miss rather than guess — prefer name/ISRC). Covers 800k+ fully analysed tracks + 7.5M fallback via MusicBrainz/AcousticBrainz (GET /cache/stats returns the live count as tracks_analyzed). Features come from a track's commercial streaming preview audio, so a track with no streaming release we can reach (CD-only, unreleased, or off-streaming) returns a clear "not available" result rather than data — there's no audio to analyse |
search_tracks | Full-text search across the catalog (FTS5-backed) |
bulk_lookup | Look up up to 50 tracks (by name or ISRC) in one request |
find_tracks_by_bpm | Find tracks within ±tolerance of a target BPM |
find_tracks_by_key | Find tracks by key — Camelot (8A), Open Key (1m), or name (A-Minor) |
About the values (2026-09-27): audio features are FreqBlog's own analysis and are not on Spotify's scale.
energy(since 2026-10-12) andvalence(since 2026-10-13) are models of how energetic / positive the preview sounds, both on our own 0–1 scales — derive thresholds from our values rather than reusing Spotify-tuned ones.acousticnessanddanceabilitycome from the AcousticBrainz classifier where available, else a model that listens to the preview (built on PANNs embeddings, CC BY 4.0; rolling out since 2026-09-27).instrumentalness(since 2026-10-12) is a vocal-detection model's score for the 30-second preview, not the whole track.speechinessandlivenessare currentlynullfor catalogue tracks.
| Tool | Description |
|---|---|
find_similar_tracks | Recommendation engine over the entire catalog — PANNs audio-embedding similarity blended with the 18-feature cosine |
get_recommendations | Spotify /v1/recommendations replacement — blend up to 5 seed tracks (or seed by track+artist name), genre-aware ranking. Tune with min/max (hard filters) and target (preference) over tempo, energy, valence, danceability, acousticness, loudness, duration_ms (popularity, liveness, speechiness and instrumentalness are retired and return 400). Costs 2 units |
get_related_artists | Spotify related-artists replacement — derived artist graph from audio-feature similarity. Costs 2 units |
build_radio_playlist | Harmonic + BPM-continuity DJ playlist from a seed track |
score_transition | Score how well one track mixes into another (0-100): harmonic + octave-aware BPM + energy. Costs 1 unit |
suggest_next_track | Ranked next-track picks for a seed, each with transition score + reason. Costs 3 units |
build_setlist | Order a 2-100 track crate into a beat-matched energy arc (peak_time/warmup/cooldown/flat). Costs 5 units |
export_playlist | Generate Rekordbox XML / M3U / cuesheet from a list of track ids |
country_chart | Live national music chart for 45 countries (Apple Music RSS) |
harmonic_keys | Camelot wheel adjacency — pure logic, no quota |
| Tool | Description |
|---|---|
find_artist_tracks | List every catalog track for an artist (paginated) |
list_genres | Distinct genre tags with track counts and each genre's parent genres |
tracks_in_genre | List tracks tagged with a genre; include_subgenres pulls in the whole family (e.g. latin + urbano latino, pop latino) |
| Tool | Description |
|---|---|
tag_track | Compact, honestly-labelled tag list (energy/danceability/valence/acousticness + mood + genre) — a tag-shaped projection of lookup_track, every tag carrying its own confidence + provenance. Costs 1 unit |
track_embedding | 18-dim numeric vector for ML / similarity / clustering |
track_artwork_url | Resolved cover-art image URL (catalogue artwork / Cover Art Archive). Costs 1 unit |
track_lyrics | Whether LRClib has plain/synced lyrics, plus a link to fetch them there (no lyric text). Free |
track_waveform_svg | SVG waveform render of the track's 30-second preview. Costs 1 unit |
Get a free API key at freqblog.com (1,000 req/month free).
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"music-metadata": {
"command": "npx",
"args": ["music-metadata-mcp", "--api-key=fb_live_YOUR_KEY_HERE"]
}
}
}
Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"music-metadata": {
"command": "npx",
"args": ["music-metadata-mcp", "--api-key=fb_live_YOUR_KEY_HERE"]
}
}
}
export MUSIC_API_KEY=fb_live_YOUR_KEY_HERE
npx music-metadata-mcp
Once connected, you can ask your AI:
| Plan | Price | Requests/month |
|---|---|---|
| Free | £0 | 1,000 |
| Hobbyist | £9.99/mo | 15,000 |
| Starter | £39/mo | 150,000 |
| Professional | £129/mo | 750,000 |