MCP Directory

Apple Music MCP

Give Claude full access to your Apple Music: search the catalog, browse your library, manage playlists, and explore listening history.

Unverified
stdio (local)
OAuth
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
git clone https://github.com/marioinghilleri/mcp-apple-music && cd mcp-apple-music && uv sync

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "apple-music-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/mcp-apple-music",
        "mcp-apple-music"
      ]
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Python 3.10+
  • uv (recommended) or pip
  • An Apple Developer account (free tier is fine) with a MusicKit key (.p8 file, Key ID, Team ID)
  • An active Apple Music subscription
  • Run the one-time setup wizard (mcp-apple-music-setup) to complete browser-based MusicKit JS OAuth

About Apple Music MCP

An MCP server exposing 11 tools that let Claude search the Apple Music catalog, browse and search your personal library, list and create playlists, add tracks to playlists, and retrieve recently played items and personalised recommendations. It uses FastMCP over stdio and the official Apple Music REST API, with locally-signed Developer Tokens and a one-time browser OAuth for the Music User Token.

Tools & capabilities (11)

search_catalog

Search the 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 the tracks inside a specific playlist.

create_playlist

Create a new playlist.

add_tracks_to_playlist

Add songs to a playlist (library or catalog tracks).

get_recently_played

See recently played albums/playlists/stations.

get_recommendations

Get personalised Apple Music picks.

When to use it

  • Recommend songs you don't yet own based on recent listening and add them to a new playlist.
  • Audit your library — e.g. list all albums by an artist and report which you already have.
  • Build themed playlists (workout mix, mellow tracks) by pulling matching songs from the catalog or your library.
  • Summarise your playlists and identify which artists appear most often.

Security notes

Requires an Apple Developer account (free tier is fine) with a MusicKit `.p8` key and an active Apple Music subscription. The `.p8` private key is used to sign the Developer Token locally and never leaves your machine. A one-time browser-based MusicKit JS OAuth flow obtains a Music User Token, stored locally at `~/.config/mcp-apple-music/config.json` with file permissions set to 600. Keep the `.p8` file safe — Apple only allows downloading it once.

Apple Music MCP FAQ

Can it control playback (play/pause/skip)?

No. Apple's REST API does not expose playback control; that requires native MusicKit frameworks (iOS/macOS) or MusicKit JS in a browser. The README suggests a companion tool (chrome-relay) for driving an open music.apple.com tab in Chrome.

Do I need a paid Apple Developer account?

No, the free Apple Developer tier is fine to create a MusicKit key. You do need an active Apple Music subscription.

Where are my credentials stored and is my key safe?

The Developer Token is signed locally with your .p8 key, which never leaves your machine. The Music User Token is stored at ~/.config/mcp-apple-music/config.json with 600 file permissions.

How do I authenticate?

Run the one-time setup wizard (uv run mcp-apple-music-setup). It asks for your Team ID, Key ID, and .p8 path, then opens a browser page where you authorise Apple Music via MusicKit JS OAuth to obtain your Music User Token.

Alternatives to Apple Music MCP

Compare all alternatives →

Control Blender from Claude and other LLMs for prompt-assisted 3D modeling, scene creation, and asset generation.

Unverified
stdio (local)
No auth
Python
22 tools
Updated 16 days agoRepo

Popular community server that feeds Figma layout data to coding agents via a Figma API token.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 1 month agoRepo

Generate beautiful, modern UI components from natural-language descriptions inside your IDE.

Unverified
stdio (local)
API key
TypeScript
4 tools
Updated 4 months agoRepo