mcp-apple-music
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| 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_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 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
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.
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.
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.
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.