ScrobblerContext - Last.fm MCP Server

by tfmart

371 downloads Not rated yet MIT license

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:

bash
git 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>

npm version
Swift 6.0+
License: MIT
MCP

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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.