Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LASTFM_API_KEY | Yes | Your Last.fm API key | |
| LASTFM_SHARED_SECRET | Yes | Your Last.fm shared secret |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_albums | Search for albums on Last.fm by name Args: query: Album name or search query limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of matching albums with their stats |
| get_album_info | Get detailed information about an album Args: artist: Artist name album: Album name mbid: Optional MBID (MusicBrainz ID) of the album autocorrect: Whether to use autocorrection for the names username: Username for personalized info (playcount, etc.) lang: Language code for wiki content Returns: Formatted detailed album information |
| get_album_top_tags | Get tags associated with an album Args: artist: Artist name album: Album name mbid: Optional MBID (MusicBrainz ID) of the album autocorrect: Whether to use autocorrection for the names Returns: Formatted list of top tags for the album |
| search_artists | Search for artists on Last.fm by name Args: query: Artist name or search query limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of matching artists with their stats |
| get_artist_info | Get detailed information about an artist by name or MBID. You can get a user's playcount, etc. by providing a username. Args: artist: Artist name to search for (optional if mbid is provided) mbid: Optional MBID (MusicBrainz ID) of the artist (optional if artist is provided) lang: Language code for the artist info (as an ISO 639 alpha-2 code) autocorrect: Whether to use autocorrection for the artist name username: If the username is provided, the artist info will be personalized with the user's playcount, etc. Returns: Formatted detailed artist information |
| get_artist_top_albums | Get an artist's most popular albums Args: artist: Artist name mbid: Optional MBID (MusicBrainz ID) of the artist autocorrect: Whether to use autocorrection for the artist name limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of the artist's top albums |
| get_artist_top_tracks | Get an artist's most popular tracks Args: artist: Artist name mbid: Optional MBID (MusicBrainz ID) of the artist autocorrect: Whether to use autocorrection for the artist name limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of the artist's top tracks |
| check_auth_status | Check if the user is authenticated. Authentication is required to use the following tools:
Args: None Returns: "Authenticated" if the user is authenticated, "Not authenticated" otherwise |
| authenticate_user | Starts the authentication process - sets the token in the environment variable and returns an auth URL for the user to visit. |
| get_session | Complete the authentication process by getting a session key from the authorized token. This should be called after the user has visited the authorization URL from authenticate_user(). |
| get_top_artists | Get global top artists chart Args: limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of global top artists |
| get_top_tracks | Get global top tracks chart Args: limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of global top tracks |
| get_top_tags | Get global top tags chart Args: limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of global top tags |
| get_tag_info | Get information about a music tag Args: tag: Tag name lang: Language code for wiki content (optional) Returns: Formatted tag information |
| get_tag_top_artists | Get top artists for a tag Args: tag: Tag name limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of top artists for the tag |
| get_tag_top_albums | Get top albums for a tag Args: tag: Tag name limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of top albums for the tag |
| get_tag_top_tracks | Get top tracks for a tag Args: tag: Tag name limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of top tracks for the tag |
| get_tag_weekly_charts | Get weekly chart data for a tag Args: tag: Tag name Returns: Formatted list of available weekly chart periods |
| search_tracks | Search for tracks on Last.fm by name Args: query: Track name or search query artist: Optional artist name to narrow search limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of matching tracks with their stats |
| get_track_info | Get detailed information about a track Args: artist: Artist name track: Track name mbid: Optional MBID (MusicBrainz ID) of the track autocorrect: Whether to use autocorrection for the names username: Username for personalized info (playcount, etc.) Returns: Formatted detailed track information |
| get_similar_tracks | Find tracks similar to a given track Args: artist: Artist name track: Track name mbid: Optional MBID (MusicBrainz ID) of the track autocorrect: Whether to use autocorrection for the names limit: Maximum number of similar tracks to return (1-30, default: 10) Returns: Formatted list of similar tracks |
| get_track_top_tags | Get tags associated with a track Args: artist: Artist name track: Track name mbid: Optional MBID (MusicBrainz ID) of the track autocorrect: Whether to use autocorrection for the names Returns: Formatted list of top tags for the track |
| scrobble_track | Scrobble a track to your Last.fm profile. It can be used for a specific timestamp or current time. Requires authentication - use authenticate_user() and get_session() first. Args: artist: Artist name track: Track name timestamp: Unix timestamp when track was played (optional, defaults to current time) album: Album name (optional) duration: Track duration in seconds (optional) mbid: MusicBrainz Track ID (optional, more accurate than name) Returns: Confirmation of scrobble action |
| update_now_playing | Update your "now playing" status on Last.fm. Requires authentication - use authenticate_user() and get_session() first. Args: artist: Artist name track: Track name album: Album name (optional) duration: Track duration in seconds (optional) mbid: MusicBrainz Track ID (optional) Returns: Confirmation of now playing update |
| love_track | Love a track on your Last.fm profile. Requires authentication - use authenticate_user() and get_session() first. Args: artist: Artist name track: Track name Returns: Confirmation of love action |
| unlove_track | Remove love from a track on your Last.fm profile. Requires authentication - use authenticate_user() and get_session() first. Args: artist: Artist name track: Track name Returns: Confirmation of unlove action |
| add_tags | Add tags to a track on your Last.fm profile. Requires authentication - use authenticate_user() and get_session() first. Args: artist: Artist name track: Track name tags: Comma-separated list of tags (max 10) Returns: Confirmation of tag addition |
| remove_tag | Remove a tag from a track on your Last.fm profile. Requires authentication - use authenticate_user() and get_session() first. Args: artist: Artist name track: Track name tag: Tag to remove Returns: Confirmation of tag removal |
| get_user_info | Get user profile information Args: user: Username to get info for Returns: Formatted user profile information |
| get_user_recent_tracks | Get a user's recently played tracks Args: user: Username limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) from_timestamp: Unix timestamp to start from (optional) to_timestamp: Unix timestamp to end at (optional) extended: Include extended data (optional) Returns: Formatted list of user's recent tracks |
| get_user_top_artists | Get a user's most played artists Args: user: Username period: Time period (7day, 1month, 3month, 6month, 12month, overall) limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of user's top artists |
| get_user_top_albums | Get a user's most played albums Args: user: Username period: Time period (7day, 1month, 3month, 6month, 12month, overall) limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of user's top albums |
| get_user_top_tracks | Get a user's most played tracks Args: user: Username period: Time period (7day, 1month, 3month, 6month, 12month, overall) limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of user's top tracks |
| get_user_loved_tracks | Get tracks a user has marked as loved Args: user: Username limit: Maximum number of results to return (1-50, default: 10) page: Page number to retrieve (default: 1) Returns: Formatted list of user's loved tracks |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |