Mcp Apple Music — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Apple Music (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
mcp-name: io.github.Cifero74/mcp-apple-music
An MCP (Model Context Protocol) server that gives Claude full access to your Apple Music account — search the catalog, browse your personal library, manage playlists, and explore your listening history and recommendations.
Ask Claude things like: - "Based on what I've been listening to lately, recommend 15 songs I don't have yet and add them to a new playlist" - "Show me all my playlists and tell me which artists appear most" - "Search for albums by Nick Cave and add my three favourites to a playlist called Dark Picks"
| Tool | Description |
|---|---|
search_catalog | Search Apple Music catalog (songs, albums, artists, playlists) |
search_library | Search within your personal library |
get_library_songs | List songs saved in your library (paginated) |
get_library_albums | List albums in your library (paginated) |
get_library_artists | List artists in your library |
get_library_playlists | List all your playlists with IDs |
get_playlist_tracks | Get tracks inside one of your playlists or an Apple Music catalog playlist (pl. IDs) |
create_playlist | Create a new playlist |
add_tracks_to_playlist | Add songs to a playlist (library or catalog tracks) |
add_to_library | Save catalog songs, albums or playlists into your library |
get_recently_played | See recently played albums/playlists/stations |
get_recommendations | Get personalised Apple Music picks |
favorite_song | Mark a catalog song as favorite (star) |
unfavorite_song | Remove a catalog song from favorites |
get_song_favorite_status | Check which catalog songs are favorited |
.p8 file — you can only download it once, keep it safe!ABC123DEF4) and your Team ID (found under Membership Details)⚠️ The Key ID is the alphanumeric code shown next to the key name — not the filename of the .p8 file.git clone https://github.com/Cifero74/mcp-apple-music
cd mcp-apple-music
# with uv (recommended)
uv sync
# or with pip
pip install -e .# with uv
uv run mcp-apple-music-setup
# or directly
python -m mcp_apple_music.setupThe wizard will ask for your Team ID, Key ID, and the path to your .p8 file. It then opens a browser page where you click "Authorise Apple Music" — this uses Apple's official MusicKit JS to obtain your Music User Token, which is stored securely at ~/.config/mcp-apple-music/config.json (file permissions: 600).
Open your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"apple-music": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/mcp-apple-music",
"mcp-apple-music"
]
}
}
}Restart Claude Desktop — you should see the apple-music tools available in the toolbar.
Apple Music requires two separate tokens:
.p8 private key. Valid up to 6 months; the server regenerates it automatically before expiry. Your key never leaves your machine.~/.config/mcp-apple-music/config.json.Your .p8 key ──► Developer Token (JWT, auto-renewed) ─┐
├──► Apple Music API
Browser OAuth ──► Music User Token (stored locally) ─┘⚠️ Playback control (play/pause/skip) is not available via Apple's REST API. It requires native MusicKit frameworks (iOS/macOS app) or MusicKit JS running in a browser context.
>
For playback control, check out chrome-relay — a companion CLI that lets an MCP server drive a music.apple.com tab already open in Chrome, enabling play/pause/skip without shipping a MusicKit JS shim.mcp-apple-music/
├── src/
│ └── mcp_apple_music/
│ ├── __init__.py
│ ├── auth.py — Developer Token generation + User Token management
│ ├── client.py — Async HTTP client for api.music.apple.com
│ ├── server.py — FastMCP server with all 14 tools
│ └── setup.py — One-time setup wizard (browser-based OAuth)
├── config.example.json — Example config structure (no secrets)
├── pyproject.toml
└── README.mdOnce connected, you can ask Claude:
"What have I been listening to this week? Based on that, find 10 songs
I don't own yet that I'd probably enjoy and create a playlist with them."
"Search for all albums by Joni Mitchell and tell me which ones
I already have in my library."
"List my playlists, pick the one that looks most like a workout mix,
and add 5 high-energy songs from the catalog to it."
"Create a playlist called 'Rainy Sunday' with the 10 most mellow tracks
you can find from my library."Built by [Cifero74](https://github.com/Cifero74) and [Claude](https://claude.ai) (Anthropic) as part of a personal MCP ecosystem for Claude Desktop.
This project was conceived, designed, debugged, and shipped entirely through a collaborative conversation between Mario and Claude — from API research and auth flow design, through the setup wizard, to live testing with a real Apple Music library.
Contributions, issues and PRs are welcome!
MIT — use it, fork it, build on it.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.