Mcp Apple Music

io.github.Cifero74Published by GitHub account Cifero74v1.3.0Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyProductivity & WorkflowMedia & Design

Overview

AI-generated overview

Local MCP server that lets an assistant search the Apple Music catalog, browse your library, and create or edit playlists through Apple's MusicKit API.

What you can do
  • Search the Apple Music catalog and your personal library for songs, albums, artists and playlists
  • List library songs, albums, artists and playlists, and read the tracks inside a playlist
  • Create playlists and add library or catalog tracks to them
  • Save catalog songs, albums and playlists to your library
  • Read recently played items and personalized recommendations
  • Mark or unmark catalog songs as favorites and check favorite status
When to use it
Useful when you want an assistant to work with your own Apple Music account: building playlists from listening history or recommendations, auditing which albums or artists you already own, or searching the catalog and saving results to your library.
Requirements
Runs locally as a Python package (Python 3.10+, uv or pip) on desktop. Needs a paid Apple Developer Program membership to create a MusicKit key, an active Apple Music subscription, and a one-time browser authorization wizard. Required settings: APPLE_KEY_ID, APPLE_TEAM_ID, APPLE_PRIVATE_KEY, APPLE_MUSIC_USER_TOKEN; optional APPLE_STOREFRONT. Network access to Apple's API.
Before you install
Requires a MusicKit private key (APPLE_PRIVATE_KEY) and a Music User Token (APPLE_MUSIC_USER_TOKEN), which are stored locally in a config file; the key can only be downloaded once, so keep it safe. The Apple Developer Program costs 99 USD per year. Tools write to your account: they create playlists, add tracks, save items to the library and change favorites. Playback control is not supported.

Installation

In SourceWeft

  1. Open Mcp Apple Music in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-apple-music 🎵

mcp-name: io.github.Cifero74/mcp-apple-music

[Python 3.10+] [License: MIT] [MCP]

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"

Features

ToolDescription
search_catalogSearch Apple Music catalog (songs, albums, artists, playlists)
search_librarySearch within your personal library
get_library_songsList songs saved in your library (paginated)
get_library_albumsList albums in your library (paginated)
get_library_artistsList artists in your library
get_library_playlistsList all your playlists with IDs
get_playlist_tracksGet tracks inside one of your playlists or an Apple Music catalog playlist (pl. IDs)
create_playlistCreate a new playlist
add_tracks_to_playlistAdd songs to a playlist (library or catalog tracks)
add_to_librarySave catalog songs, albums or playlists into your library
get_recently_playedSee recently played albums/playlists/stations
get_recommendationsGet personalised Apple Music picks
favorite_songMark a catalog song as favorite (star)
unfavorite_songRemove a catalog song from favorites
get_song_favorite_statusCheck which catalog songs are favorited

Requirements

  • Python 3.10+
  • uv (recommended) or pip
  • A paid Apple Developer Program membership (99 USD/year) to create a MusicKit key. The free Apple Developer account can't create MusicKit keys.
  • An active Apple Music subscription

Setup

1. Create a MusicKit Key

  1. Go to developer.apple.com → Certificates, Identifiers & Profiles
  2. Under Keys, click + to create a new key
  3. Give it any name, enable MusicKit, and click Continue → Register
  4. Download the .p8 file — you can only download it once, keep it safe!
  5. Note your Key ID (e.g. 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.

2. Clone and install

bash
git clone https://github.com/Cifero74/mcp-apple-musiccd mcp-apple-music
# with uv (recommended)uv sync
# or with pippip install -e .

3. Run the one-time setup wizard

bash
# with uvuv run mcp-apple-music-setup
# or directlypython -m mcp_apple_music.setup

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

4. Add to Claude Desktop

Open your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

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.


How it works

Apple Music requires two separate tokens:

  • Developer Token — a JWT you sign locally with your .p8 private key. Valid up to 6 months; the server regenerates it automatically before expiry. Your key never leaves your machine.
  • Music User Token — obtained once via MusicKit JS OAuth in the browser (the setup wizard handles this). Stored locally at ~/.config/mcp-apple-music/config.json.
Your .p8 key  ──►  Developer Token (JWT, auto-renewed)  ─┐                                                           ├──► Apple Music APIBrowser 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.


Project structure

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

Example prompts

Once 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."

Authors

Built by Cifero74 and Claude (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!


License

MIT — use it, fork it, build on it.

Source: README.md at commit 40183d5

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

3
  1. v1.3.0LatestOct 22, 2026
  2. v1.1.0Sep 30, 2026
  3. v1.0.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts