Skip to main content
Glama
mcp-apple-music

mcp-apple-music

by Cifero74

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_catalogA

Search all of Apple Music (not just the user's library) for songs, albums, artists and playlists.

Use this whenever the user asks for music that may not be in their library. For moods, genres, activities or eras (e.g. "relax", "workout", "jazz anni 60") search with types="playlists" to find Apple's themed playlists, then open one with get_playlist_tracks.

Args: query: Search term (e.g. "Radiohead", "Bohemian Rhapsody", "relax"). types: Comma-separated resource types to include. Options: songs, albums, artists, playlists (default: all four). limit: Results per type, 1–25 (default 5).

search_libraryA

Search only what the user has saved in their Apple Music library.

To search all of Apple Music, use search_catalog instead.

Args: query: Search term. types: Comma-separated types. Options: library-songs, library-albums, library-artists, library-playlists limit: Results per type, 1–25 (default 10).

get_library_songsA

List songs saved in your Apple Music library.

Args: limit: Number of songs to return, 1–100 (default 25). offset: Pagination offset for retrieving subsequent pages (default 0).

get_library_albumsA

List albums saved in your Apple Music library.

Args: limit: Number of albums to return, 1–100 (default 25). offset: Pagination offset (default 0).

get_library_artistsB

List artists in your Apple Music library.

Args: limit: Number of artists to return, 1–100 (default 25). offset: Pagination offset (default 0).

get_library_playlistsB

List all playlists in your Apple Music library.

Args: limit: Maximum number of playlists to return, 1–100 (default 100).

get_playlist_tracksA

Get the tracks inside a playlist: one of the user's own playlists, or an Apple Music catalog playlist (editorial, themed, curator playlists).

Apple Music returns at most 100 tracks per request. Use offset to page through a large playlist, or set fetch_all=True to automatically fetch every page (up to max_tracks).

Args: playlist_id: Library playlist ID (starts with 'p.', from get_library_playlists) or catalog playlist ID (starts with 'pl.', from search_catalog or get_recommendations). limit: Maximum tracks to return for a single page, 1–100 (default 100). Ignored when fetch_all is True (always uses page size 100). offset: Pagination offset for single-page requests (default 0). Ignored when fetch_all is True. fetch_all: If True, follow pagination and return every track in the playlist (up to max_tracks). Default False. max_tracks: Safety cap when fetch_all is True, 1–5000 (default 2000).

create_playlistC

Create a new playlist in your Apple Music library.

Args: name: Name for the new playlist. description: Optional short description.

add_tracks_to_playlistA

Add tracks to an existing playlist.

Args: playlist_id: The target playlist ID (starts with 'p.'). track_ids: List of track IDs to add. track_type: 'library-songs' for tracks from your library (default), 'songs' for catalog tracks (from search_catalog or a catalog 'pl.' playlist).

add_to_libraryA

Save Apple Music catalog songs, albums or playlists into the user's library.

Use this when the user wants to keep something found with search_catalog, get_playlist_tracks or get_recommendations. Saved playlists then appear in get_library_playlists.

Args: song_ids: Comma-separated catalog song IDs (numeric). album_ids: Comma-separated catalog album IDs (numeric). playlist_ids: Comma-separated catalog playlist IDs (start with 'pl.').

get_recently_playedA

Get your recently played albums, playlists, and stations.

Note: Apple Music API returns recently-played containers (albums, playlists, stations) rather than individual tracks.

Args: limit: Number of items to return, 1–10 (default 10). The /me/recent/played endpoint rejects anything above 10.

get_recommendationsA

Get personalised Apple Music recommendations.

Args: limit: Number of recommendation groups to return, 1–10 (default 5).

favorite_songA

Mark a catalog song as favorite (the star in Apple Music).

Args: song_id: Catalog song ID (use search_catalog to find it).

unfavorite_songA

Remove a catalog song from favorites (clears its rating).

Args: song_id: Catalog song ID.

get_song_favorite_statusB

Check which catalog songs are marked as favorite.

Args: song_ids: Comma-separated catalog song IDs (e.g. "1276760751,123").

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 15 tools

Disambiguation4/5

Catalog vs library search is explicitly distinguished, and most tools target clearly distinct resources (playlists, favorites, recommendations, recently played). Minor overlap remains between get_library_songs and search_library with types=library-songs, and the three "add" tools (add_to_library, add_tracks_to_playlist, favorite_song) require reading descriptions to separate.

Naming Consistency5/5

All names are snake_case and verb-first (search_, get_, add_, create_, favorite_/unfavorite_), with predictable prefixes (get_library_* for library listings, get_playlist_tracks for contents). The pattern is uniform across all 15 tools.

Tool Count5/5

15 tools sits comfortably in the well-scoped range for a music service covering catalog, library, playlists, favorites and recommendations. The four get_library_* tools are slightly repetitive but each maps to a distinct resource type.

Completeness3/5

Read/create paths are well covered, but destructive and detail operations are absent: no remove_tracks_from_playlist, delete_playlist, remove_from_library, and no way to list the tracks of a saved library album (only playlist tracks). These gaps create dead ends for common library-management workflows.

Maintenance

ActivityMaintained
ResponsivenessMixed handling