← Back to search

io.github.Cifero74/mcp-apple-music

Cifero74 Scanned 10d ago

Apple Music MCP server — search catalog, manage playlists, and access your library via Claude.

C
71.6 / 100

Versions

1.0.1latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 14

search_catalog
annotations: none low

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

limit int query str types str
search_library
annotations: none low

Search within your personal Apple Music library. 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).

limit int query str types str
get_library_songs
annotations: none low

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).

limit int offset int
get_library_albums
annotations: none low

List albums saved in your Apple Music library. Args: limit: Number of albums to return, 1–100 (default 25). offset: Pagination offset (default 0).

limit int offset int
get_library_artists
annotations: none low

List artists in your Apple Music library. Args: limit: Number of artists to return, 1–100 (default 25). offset: Pagination offset (default 0).

limit int offset int
get_library_playlists
annotations: none low

List all playlists in your Apple Music library. Args: limit: Maximum number of playlists to return, 1–100 (default 100).

limit int
get_playlist_tracks
annotations: none low

Get the tracks inside a specific playlist. 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.'). Use get_library_playlists to find IDs. 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).

limit int offset int fetch_all bool max_tracks int playlist_id str
create_playlist
annotations: none low

Create a new playlist in your Apple Music library. Args: name: Name for the new playlist. description: Optional short description.

name str description str
add_tracks_to_playlist
annotations: none low

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 found via search_catalog.

track_ids string track_type str playlist_id str
get_recently_played
annotations: none low

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.

limit int
get_recommendations
annotations: none low

Get personalised Apple Music recommendations. Args: limit: Number of recommendation groups to return, 1–10 (default 5).

limit int
favorite_song
annotations: none low

Mark a catalog song as favorite (the star in Apple Music). Args: song_id: Catalog song ID (use search_catalog to find it).

song_id str
unfavorite_song
annotations: none low

Remove a catalog song from favorites (clears its rating). Args: song_id: Catalog song ID.

song_id str
get_song_favorite_status
annotations: none low

Check which catalog songs are marked as favorite. Args: song_ids: Comma-separated catalog song IDs (e.g. "1276760751,123").

song_ids str

Permissions 3

network medium
Server uses network capabilities via: http, httpx, urllib
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 79

low
Tool 'search_catalog' has no annotations annotation_checker · 100%
low
Tool 'search_library' has no annotations annotation_checker · 100%
low
Tool 'get_library_songs' has no annotations annotation_checker · 100%
low
Tool 'get_library_albums' has no annotations annotation_checker · 100%
low
Tool 'get_library_artists' has no annotations annotation_checker · 100%
low
Tool 'get_library_playlists' has no annotations annotation_checker · 100%
low
Tool 'get_playlist_tracks' has no annotations annotation_checker · 100%
low
Tool 'create_playlist' has no annotations annotation_checker · 100%
low
Tool 'add_tracks_to_playlist' has no annotations annotation_checker · 100%
low
Tool 'get_recently_played' has no annotations annotation_checker · 100%
low
Tool 'get_recommendations' has no annotations annotation_checker · 100%
low
Tool 'favorite_song' has no annotations annotation_checker · 100%
low
Tool 'unfavorite_song' has no annotations annotation_checker · 100%
low
Tool 'get_song_favorite_status' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-2gx3-rcp4-g85q) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-42vr-xj54-vc7v) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-752w-5fwx-jx9f) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-993g-76c3-p5m4) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-9v7f-9g4p-ffgj) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-ffc3-869f-jxw9) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-fhv5-28vv-h8m8) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-hxm8-2xgr-2p9m) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-jwrc-g2q2-pq5p) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-p4g4-x82p-q773) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-w7vc-732c-9m39) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-x33g-cr3x-6449) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (GHSA-xgmm-8j9v-c9wx) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2025-183) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-120) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-175) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-177) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-178) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-179) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4140) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4141) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4144) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4145) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4147) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4148) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4149) dependency_analyzer · 95%
medium
Vulnerable dependency: PyJWT@2.8.0 (PYSEC-2026-4183) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-537c-gmf6-5ccf) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-6vqw-3v5j-54x4) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-79v4-65xg-pq4g) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-9v9h-cgj8-h64p) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-h4gh-qq45-vh27) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-jwv3-5hgf-82ww) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-m959-cc7f-wv43) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (GHSA-r6ph-v2qm-q3c2) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2024-225) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2026-1284) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2026-1285) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2026-2141) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2026-35) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2026-3553) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@42.0.0 (PYSEC-2026-3554) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: search_catalog manifest_parser · 90%
info
Tool: search_library manifest_parser · 90%
info
Tool: get_library_songs manifest_parser · 90%
info
Tool: get_library_albums manifest_parser · 90%
info
Tool: get_library_artists manifest_parser · 90%
info
Tool: get_library_playlists manifest_parser · 90%
info
Tool: get_playlist_tracks manifest_parser · 90%
info
Tool: create_playlist manifest_parser · 90%
info
Tool: add_tracks_to_playlist manifest_parser · 90%
info
Tool: get_recently_played manifest_parser · 90%
info
Tool: get_recommendations manifest_parser · 90%
info
Tool: favorite_song manifest_parser · 90%
info
Tool: unfavorite_song manifest_parser · 90%
info
Tool: get_song_favorite_status manifest_parser · 90%
info
Required env vars (5) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 80%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%