io.github.Cifero74/mcp-apple-music
平台与服务by cifero74
Apple Music MCP server — search catalog, manage playlists, and access your library via Claude.
什么是 io.github.Cifero74/mcp-apple-music?
Apple Music MCP server — search catalog, manage playlists, and access your library via Claude.
README
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"
Features
| 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 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 |
Requirements
- Python 3.10+
- uv (recommended) or pip
- An Apple Developer account (free tier is fine) with a MusicKit key
- An active Apple Music subscription
Setup
1. Create a MusicKit Key
- Go to developer.apple.com → Certificates, Identifiers & Profiles
- Under Keys, click + to create a new key
- Give it any name, enable MusicKit, and click Continue → Register
- Download the
.p8file — you can only download it once, keep it safe! - 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
.p8file.
2. Clone and install
git clone https://github.com/marioinghilleri/mcp-apple-music
cd mcp-apple-music
# with uv (recommended)
uv sync
# or with pip
pip install -e .
3. Run the one-time setup wizard
# with uv
uv run mcp-apple-music-setup
# or directly
python -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
{
"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
.p8private 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 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.
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 11 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.
常见问题
io.github.Cifero74/mcp-apple-music 是什么?
Apple Music MCP server — search catalog, manage playlists, and access your library via Claude.
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP服务构建器
by alirezarezvani
从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。
✎ 帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。