ScrobblerContext - Last.fm MCP Server
About
ScrobblerContext is a Model Context Protocol (MCP) server built in Swift that provides AI assistants with access to Last.fm’s music database. It enables searching for artists, albums, and tracks, managing user libraries, and scrobbling track plays via secure OAuth authentication.
Details
- License
- MIT license
Explore
- Authentication: Secure browser OAuth flow with session persistence
- Artist Operations: Search artists, get detailed information, find similar artists
- Album Operations: Search albums, get track listings and metadata
- Track Operations: Search tracks, get details and recommendations
- User Data: Access listening history, statistics, and social features
- Scrobbling: Submit track plays, update now playing status, love/unlove tracks
npm install -g scrobblercontext-mcp
Authenticate with Last.fm:
User: "Authenticate with Last.fm"
Assistant: [Uses authenticate_browser tool to start OAuth flow]
Search for music:
User: "Find artists similar to Radiohead"
Assistant: [Uses get_similar_artists tool to find recommendations]
Scrobble tracks:
User: "Scrobble 'Bohemian Rhapsody' by Queen"
Assistant: [Uses scrobble_track tool to submit to your profile]
Prerequisites:
- Swift 6.0+ (Download)
- macOS 13.0+ or Linux with Swift support
- Last.fm API credentials
Build from source:
bashgit clone https://github.com/tfmart/ScrobblerContext
cd ScrobblerContext
swift build
export LASTFM_API_KEY="your_api_key_here"
export LASTFM_SECRET_KEY="your_secret_key_here"
swift run ScrobblerContext
```
authenticate_browser
Start OAuth flow in browser
set_session_key
Set existing session key
check_auth_status
Check authentication status
restore_session
Restore saved session
logout
Clear authentication
search_artist
Search for artists
get_artist_info
Get artist details & biography
get_similar_artists
Find similar artists
get_artist_correction
Get corrected artist name
get_artist_tags
Get artist tags
get_artist_top_albums
Get artist's top albums
get_artist_top_tracks
Get artist's top tracks
add_artist_tags
Add personal tags (requires auth)
remove_artist_tag
Remove personal tag (requires auth)
search_album
Search for albums
get_album_info
Get album details & tracklist
get_album_tags
Get album tags
get_album_top_tags
Get popular album tags
add_album_tags
Add personal tags (requires auth)
remove_album_tag
Remove personal tag (requires auth)
search_track
Search for tracks
get_track_info
Get track details
get_similar_tracks
Find similar tracks
get_track_correction
Get corrected track info
get_track_tags
Get track tags
get_track_top_tags
Get popular track tags
add_track_tags
Add personal tags (requires auth)
remove_track_tag
Remove personal tag (requires auth)
get_user_info
Get user profile & stats
get_user_recent_tracks
Get recent listening history
get_user_top_artists
Get top artists by period
get_user_top_tracks
Get top tracks by period
get_user_top_albums
Get top albums by period
get_user_top_tags
Get most used tags
get_user_friends
Get friends list
get_user_loved_tracks
Get loved tracks
get_user_personal_tags_for_artists
Get tagged artists
scrobble_track
Submit single track play
scrobble_multiple_tracks
Submit multiple plays
update_now_playing
Update current track status
love_track
Mark track as loved
unlove_track
Remove from loved tracks
<details>
<summary><strong>Authentication Tools (5)</strong></summary>
- authenticate_browser - Start OAuth flow in browser
- set_session_key - Set existing session key
- check_auth_status - Check authentication status
- restore_session - Restore saved session
- logout - Clear authentication
</details>
<details>
<summary><strong>Artist Tools (9)</strong></summary>
- search_artist - Search for artists
- get_artist_info - Get artist details & biography
- get_similar_artists - Find similar artists
- get_artist_correction - Get corrected artist name
- get_artist_tags - Get artist tags
- get_artist_top_albums - Get artist's top albums
- get_artist_top_tracks - Get artist's top tracks
- add_artist_tags - Add personal tags (requires auth)
- remove_artist_tag - Remove personal tag (requires auth)
</details>
<details>
<summary><strong>Album Tools (6)</strong></summary>
- search_album - Search for albums
- get_album_info - Get album details & tracklist
- get_album_tags - Get album tags
- get_album_top_tags - Get popular album tags
- add_album_tags - Add personal tags (requires auth)
- remove_album_tag - Remove personal tag (requires auth)
</details>
<details>
<summary><strong>Track Tools (8)</strong></summary>
- search_track - Search for tracks
- get_track_info - Get track details
- get_similar_tracks - Find similar tracks
- get_track_correction - Get corrected track info
- get_track_tags - Get track tags
- get_track_top_tags - Get popular track tags
- add_track_tags - Add personal tags (requires auth)
- remove_track_tag - Remove personal tag (requires auth)
</details>
<details>
<summary><strong>User Tools (9)</strong></summary>
- get_user_info - Get user profile & stats
- get_user_recent_tracks - Get recent listening history
- get_user_top_artists - Get top artists by period
- get_user_top_tracks - Get top tracks by period
- get_user_top_albums - Get top albums by period
- get_user_top_tags - Get most used tags
- get_user_friends - Get friends list
- get_user_loved_tracks - Get loved tracks
- get_user_personal_tags_for_artists - Get tagged artists
</details>
<details>
<summary><strong>Scrobble Tools (5)</strong></summary>
- scrobble_track - Submit single track play
- scrobble_multiple_tracks - Submit multiple plays
- update_now_playing - Update current track status
- love_track - Mark track as loved
- unlove_track - Remove from loved tracks
</details>
A Model Context Protocol (MCP) server that provides access to Last.fm's music database. Built in Swift, it enables AI assistants to search for music, manage user libraries, and scrobble tracks.
Table of Contents
- Features
- Quick Start
- Setup with MCP Clients
- Usage Examples
- Manual Installation
- Available Tools
- Contributing
- Documentation
- Troubleshooting
- License
- Acknowledgments
Features
- Authentication: Secure browser OAuth flow with session persistence
- Artist Operations: Search artists, get detailed information, find similar artists
- Album Operations: Search albums, get track listings and metadata
- Track Operations: Search tracks, get details and recommendations
- User Data: Access listening history, statistics, and social features
- Scrobbling: Submit track plays, update now playing status, love/unlove tracks
Quick Start
Install via npm (Recommended)
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



