mcpField
A
Apple Music Mcp

Apple Music Mcp

本地服务
github.com/Cifero74媒体与设计446 天前更新

关于 Apple Music Mcp

Apple Music Mcp 是供 Claude 用户搜索 Apple Music 并使用个人音乐库的 MCP 服务。它还支持管理播放列表、查看收听历史、获取推荐和管理收藏。

主要功能

  1. 01搜索目录和个人音乐库
  2. 02浏览已保存的歌曲、专辑和艺人
  3. 03查看播放列表及其曲目
  4. 04创建播放列表并添加曲目
  5. 05查看收听历史和推荐
  6. 06管理歌曲收藏

适用场景

  1. 01查找专辑并确认音乐库中是否已有
  2. 02根据目录曲目创建播放列表
  3. 03根据近期收听获取推荐

MCP 相关

该服务将 Apple Music 目录和账户操作作为工具提供给 Claude Desktop 等 MCP 客户端。支持搜索、访问音乐库、管理播放列表、查看收听历史、获取推荐和管理收藏;不支持播放控制。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"apple-music": {
"command": "uvx",
"args": [
"mcp-apple-music-server"
],
"env": {
"APPLE_TEAM_ID": "<APPLE_TEAM_ID>",
"APPLE_KEY_ID": "<APPLE_KEY_ID>",
"APPLE_PRIVATE_KEY": "<APPLE_PRIVATE_KEY>",
"APPLE_MUSIC_USER_TOKEN": "<APPLE_MUSIC_USER_TOKEN>",
"APPLE_STOREFRONT": "<APPLE_STOREFRONT>"
}
}
}
}
启动命令uvx mcp-apple-music-server
需要配置的环境变量
APPLE_TEAM_IDApple Developer Team ID
APPLE_KEY_ID密钥Apple MusicKit Key ID
APPLE_PRIVATE_KEY密钥Apple MusicKit private key content (ES256, PEM format)
APPLE_MUSIC_USER_TOKEN密钥Apple Music user token for personal library access
APPLE_STOREFRONTApple Music storefront country code (default: us)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-apple-music-server1.3.0

工具

11

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否
querystring是
typesstring否

详细介绍

mcp-apple-music 🎵

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

Python 3.10+ License: MIT MCP

一个 MCP(Model Context Protocol)服务,让 Claude 能够全面访问你的 Apple Music 账户——搜索曲库、浏览个人音乐库、管理播放列表,以及探索听歌历史和推荐内容。

可以向 Claude 提出以下问题:

  • “根据我最近听的歌曲,推荐 15 首我还没有的歌曲,并将它们添加到新播放列表中。”
  • “显示我的所有播放列表,并告诉我出现频率最高的艺人。”
  • “搜索 Nick Cave 的专辑,并将我最喜欢的三张专辑添加到名为 Dark Picks 的播放列表中。”

功能

工具描述
search_catalog搜索 Apple Music 曲库(歌曲、专辑、艺人、播放列表)
search_library在个人音乐库中搜索
get_library_songs列出音乐库中保存的歌曲(分页)
get_library_albums列出音乐库中的专辑(分页)
get_library_artists列出音乐库中的艺人
get_library_playlists列出所有播放列表及其 ID
get_playlist_tracks获取播放列表或 Apple Music 曲库播放列表(pl. ID)中的曲目
create_playlist创建新播放列表
add_tracks_to_playlist将歌曲添加到播放列表(音乐库或曲库中的曲目)
add_to_library将曲库中的歌曲、专辑或播放列表保存到音乐库
get_recently_played查看最近播放的专辑、播放列表和电台
get_recommendations获取 Apple Music 个性化推荐
favorite_song将曲库歌曲标记为喜爱(加星标)
unfavorite_song取消喜爱曲库歌曲
get_song_favorite_status检查哪些曲库歌曲已标记为喜爱

要求

  • Python 3.10+
  • uv(推荐)或 pip
  • 付费的 Apple Developer Program 会员资格(每年 99 USD),用于创建 MusicKit 密钥。免费的 Apple Developer 账户无法创建 MusicKit 密钥。
  • 有效的 Apple Music 订阅

设置

1. 创建 MusicKit 密钥
  1. 前往 developer.apple.com → Certificates, Identifiers & Profiles
  2. 在 Keys 下,点击 + 创建新密钥
  3. 为密钥任意命名,启用 MusicKit,然后点击 Continue → Register
  4. 下载 .p8 文件——只能下载一次,请妥善保管!
  5. 记下你的 Key ID(例如 ABC123DEF4)和 Team ID(可在 Membership Details 下找到)

⚠️ Key ID 是显示在密钥名称旁的字母数字代码——不是 .p8 文件的文件名。

2. 克隆并安装
git clone https://github.com/Cifero74/mcp-apple-music
cd mcp-apple-music

# with uv (recommended)
uv sync

# or with pip
pip install -e .
3. 运行一次性设置向导
# with uv
uv run mcp-apple-music-setup

# or directly
python -m mcp_apple_music.setup

向导会要求你提供 Team ID、Key ID 和 .p8 文件的路径。随后,它会打开一个浏览器页面,你可以在其中点击 “Authorise Apple Music”——此操作会使用 Apple 官方的 MusicKit JS 获取你的 Music User Token,并将其安全地存储在 ~/.config/mcp-apple-music/config.json 中(文件权限:600)。

4. 添加到 Claude Desktop

打开 Claude Desktop 配置文件:

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"
      ]
    }
  }
}

重启 Claude Desktop——你应该会在工具栏中看到可用的 apple-music 工具。


工作原理

Apple Music 需要两个独立的令牌:

  • 开发者令牌 — 使用 .p8 私钥在本地签名的 JWT。最长有效期为 6 个月;服务会在令牌过期前自动重新生成。你的密钥不会离开你的设备。
  • 音乐用户令牌 — 通过浏览器中的 MusicKit JS OAuth 获取一次(由设置向导处理)。存储在本地的 ~/.config/mcp-apple-music/config.json 中。
Your .p8 key  ──►  Developer Token (JWT, auto-renewed)  ─┐
                                                           ├──► Apple Music API
Browser OAuth ──►  Music User Token (stored locally)    ─┘

⚠️ 播放控制(播放/暂停/跳过)无法通过 Apple 的 REST API 实现。它需要原生 MusicKit 框架(iOS/macOS 应用)或在浏览器环境中运行的 MusicKit JS。

如需播放控制,请试试 chrome-relay——一个配套的命令行工具,可让 MCP 服务控制 Chrome 中已打开的 music.apple.com 标签页,从而实现播放/暂停/跳过,无需随软件附带 MusicKit JS 适配层。


项目结构

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

示例提示词

连接后,你可以向 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."

作者

由 Cifero74 和 Claude(Anthropic)构建,是 Claude Desktop 个人 MCP 生态系统的一部分。

本项目完全通过 Mario 与 Claude 的协作对话构思、设计、调试并发布——从 API 调研和身份验证流程设计,到设置向导,再到使用真实 Apple Music 音乐库进行现场测试。

欢迎贡献、反馈问题和提交 PR!


许可证

MIT — 随意使用、分叉并在此基础上构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。