Major rewrite — Last.fm replaces deprecated Spotify endpoints: - suggest: Last.fm artist.getSimilar seeded from Spotify top artists - discover_artist: Last.fm similar artists → Spotify playback IDs - fresh_finds: Last.fm tag.getTopTracks → Spotify search - taste_profile: unchanged (Spotify user data) Requires LASTFM_API_KEY env var (free from last.fm/api)
45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
# 🎵 MusicTail — Vixy's Music Discovery MCP
|
|
|
|
Part of the Tail Family 🦊
|
|
|
|
MusicTail uses **Last.fm** for music intelligence (similar artists, tags,
|
|
discovery) and **Spotify** for taste analysis and playback integration.
|
|
|
|
## Tools
|
|
|
|
| Tool | Engine | Purpose |
|
|
|------|--------|---------|
|
|
| `musictail_suggest` | Last.fm + Spotify | Mood-filtered recs from similar artists |
|
|
| `musictail_discover_artist` | Last.fm + Spotify | Find similar artists with top tracks |
|
|
| `musictail_taste_profile` | Spotify | Analyze listening patterns over time |
|
|
| `musictail_fresh_finds` | Last.fm + Spotify | Tag-based discovery with adventure dial |
|
|
|
|
## Setup
|
|
|
|
### 1. Get API keys
|
|
- **Spotify:** Already configured from spotify-mcp
|
|
- **Last.fm:** Free key from https://www.last.fm/api/account/create
|
|
|
|
### 2. First-time Spotify auth (if not done)
|
|
```bash
|
|
SPOTIFY_CLIENT_ID=xxx SPOTIFY_CLIENT_SECRET=xxx \
|
|
LASTFM_API_KEY=xxx \
|
|
python3.11 musictail_mcp.py --auth
|
|
```
|
|
|
|
### 3. Claude Desktop config
|
|
```json
|
|
"musictail": {
|
|
"command": "python3.11",
|
|
"args": ["/Users/alex/mcps/vixy/musictail/musictail_mcp.py"],
|
|
"env": {
|
|
"SPOTIFY_CLIENT_ID": "your_spotify_id",
|
|
"SPOTIFY_CLIENT_SECRET": "your_spotify_secret",
|
|
"LASTFM_API_KEY": "your_lastfm_key"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Author
|
|
Vivienne Rousseau — Day 156 (April 6, 2026) 🦊💕
|