mcpField
A
applemusic-mcp

applemusic-mcp

本地服务
github.com/epheterson游戏娱乐1235 天前更新

关于 applemusic-mcp

applemusic-mcp 是用于 Apple Music 的 MCP 服务,可让 MCP 客户端管理音乐库、播放列表、播放和队列。它按权限级别开放 Mac 本地应用、Apple Music API 或浏览器播放器功能,并支持 macOS、Windows 和 Linux。

主要功能

  1. 01管理播放列表、文件夹和曲目
  2. 02搜索音乐库与 Apple Music 曲库
  3. 03获取推荐、排行榜和收听记录
  4. 04控制播放、音量及 Up Next 队列
  5. 05按级别限制可访问的功能

适用场景

  1. 01整理或迁移 Apple Music 播放列表
  2. 02搜索曲目并加入音乐库
  3. 03播放专辑并调整 Up Next 队列

MCP 相关

向 MCP 客户端提供管理 Apple Music 曲库、播放列表、音乐库、播放和 Up Next 队列的工具。可按配置的权限级别连接 Music.app、Apple Music API 或网页播放器。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"epheterson-applemusic": {
"command": "uvx",
"args": [
"applemusic-mcp"
]
}
}
}
启动命令uvx applemusic-mcp

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

安装包
pypiapplemusic-mcp0.21.0

工具

7

收录的工具列表 · 更新于 5 天前

参数类型必填说明
fullboolean否
namestring否
albumstring否
limitinteger否
querystring否
trackstring否
actionstring否
artiststring否
exportstring否
filterstring否
folderstring否
formatstring否
offsetinteger否
sourcestring否
verifyboolean否
dry_runboolean否
replacestring否
auto_addany否
new_namestring否
playliststring否
descriptionstring否
fetch_explicitany否
allow_duplicatesboolean否

详细介绍

applemusic-mcp

Release License macOS Python Downloads MCP

适用于 Apple Music 的 MCP 服务。它让任何 MCP 客户端(Claude、Cursor、Cline、Windsurf)都能控制你的播放列表、资料库、目录、发现、播放和「接下来播放」队列。可在 macOS、Windows 和 Linux 上运行。

你只需要一台 Mac 或 Apple Music 订阅。

"创建一个名为 Road Trip 的播放列表,并加入欢快的 90 年代另类摇滚歌曲。" · "随机播放我的健身播放列表,然后把 Bohemian Rhapsody 加入队列。" · "我最近都在听什么?现在的热门歌曲又有哪些?"

选择它可以访问的内容

你可以在 MCP 客户端的配置中决定此服务可以访问哪些内容。助手无法更改此设置,而且需要超出授权范围的工具根本不会提供给它。

--level可访问内容适用场景
music仅限 Mac 上的 Music 应用。无网络访问,也不使用浏览器。你的资料库、播放列表、播放、评分、AirPlay
api+ Apple 的音乐服务(通过互联网)从完整目录搜索并添加内容、获取推荐、在 Windows 和 Linux 上使用
web+ Safari 或 Chrome 网页播放器「接下来播放」队列,以及在 Mac 以外的设备上播放
full所有内容,包括在 Music 应用中点击操作使用所有功能,无需选择
--allow-ui(适用于任意级别)+ 在 Music 应用中点击操作(macOS 辅助功能)无需登录即可播放目录中的歌曲

从 music 开始;需要更多功能时再提高级别。目前,如果省略 --level,效果与 full 相同,和 0.21 之前一样。

如果你想要一款提供引导式设置而非终端命令的 Mac 应用,可以考虑社区分支 secure-applemusic-mcp-for-osx。

功能

各引擎支持的功能,以及启用这些功能所需的级别。✓ 表示支持,✗ 表示不支持,— 表示不适用。

能力Music.app(macOS)· musicApple Music API(任意操作系统)· api网页播放器(Safari / Chrome)· web
目录搜索 / 浏览✓✓(+ 无令牌解析)—
推荐 / 榜单 / 建议✗✓—
资料库搜索 / 浏览✓✓—
流派搜索✓✗—
最近播放 / 添加的内容✓✓—
添加目录内容 → 资料库✓✓✓(页面内 POST)
从资料库移除✓✓—
喜爱 / 不喜欢✓✓—
1–5 星评分✓✗✗
收藏列表✓✗✗
播放列表 创建 / 添加 / 移除 / 重命名✓✓—
复制播放列表✓✗—
删除播放列表✓✓(网页令牌)—
文件夹:单层 + 移入 / 移出✓✓—
文件夹:嵌套路径 / 树 / path✓✗✗
播放:播放歌曲 / 专辑 / 播放列表 / URL✓—✓
控制:暂停 / 停止 / 下一首 / 上一首 / 快进或快退✓—✓
设置:音量 / 随机播放 / 重复播放✓—✓
now_playing✓—✓
「接下来播放」队列:查看 / 下一首 / 最后一首 / 移除 / 跳转 / 清空 / 自动播放✗—✓
在应用中显示✓—✓(跳转至页面)
选择 AirPlay 设备✓✗✗
资料库快照 / 完整性✓✗✗
无需 Apple 账户即可使用✓✗✗
跨平台(Win/Linux)✗✓✓

Music.app 的目录搜索和目录播放会在应用中执行点击操作,因此即使设置了级别,也需要 --allow-ui。网页播放器中的播放和队列需要桌面会话:Mac 上的 Safari(无需安装任何内容),或其他设备上的 Google Chrome。如何选择和覆盖引擎:配置。

设置

**要求:**Python 3.10+,以及一台 Mac 或 Apple Music 订阅。在 Mac 上无需其他条件。Chrome 网页播放器(Windows、Linux,或选择在 Mac 上使用)需要Google Chrome。

Claude Code,一行命令:

claude mcp add "Apple Music" -- uvx applemusic-mcp serve --level music

Claude Desktop / Cursor / Cline / Windsurf,安装一次,然后添加配置块:

pipx install applemusic-mcp        # or: pip install applemusic-mcp
playwright install chromium        # the Chrome web player: Windows/Linux, or a Mac with the [browser] extra
{
  "mcpServers": {
    "Apple Music": {
      "command": "applemusic-mcp",
      "args": ["serve", "--level", "music"]
    }
  }
}

将 music 改为 api 或 web,以解锁更多功能;在 Windows 或 Linux 上,请从 api 开始,因为 music 需要 Mac。配置文件位置、Mac 上的 Chrome 网页播放器以及源码安装:配置。

重启客户端,然后尝试 "列出我的 Apple Music 播放列表" 或 "播放我的最爱"。在 macOS 上,本地资料库和播放功能可立即使用。要添加目录音乐或在任何操作系统上运行,请登录。

登录

api 和 web 模式需要登录。此工具不会接触你的密码,登录状态会持续保留。

applemusic-mcp login            # Mac: reads your signed-in Safari. Windows/Linux: opens Chrome
applemusic-mcp status           # verify

在 Mac 上,请先在 Safari 中登录 music.apple.com,并仅需开启一次 Safari 的 Develop → Allow JavaScript from Apple Events;login 会准确提示缺少哪些设置。对于批量操作(导入播放列表、迁移资料库),请使用自己的 Apple 开发者令牌,以避开共享速率限制。详情、Chrome 和开发者令牌的使用方式,以及各项写入操作使用的 API:登录说明。

工具

七种基于操作的工具可保持 MCP 上下文精简。每种工具都接受一个 action,并路由至合适的引擎。

工具操作
playlistlist、folders、tracks、search、create、add、copy、move、remove、delete、rename、path(播放列表和文件夹)
librarysearch、add、browse、favorites、recently_played、recently_added、rate、remove、snapshot
catalogsearch、resolve、album_tracks、album_details、song_details、artist_details、genres、suggestions
discoverrecommendations、heavy_rotation、charts、top_songs、similar_artists、personal_station、song_station
playbackplay(曲目 / 专辑 / 播放列表 / URL)、control、now_playing、settings、reveal、airplay
queuelist、set、play_next、play_last、remove、jump、clear、autoplay(即将播放 — macOS 上使用 Safari,其他系统使用 Chrome;用 engine= 选择)
configstatus、signin、logout、reset、set-pref、audit-log、clear-audit-log、list-storefronts

批量操作、导入播放列表、试运行、导出格式和 storefront:使用模式。

CLI

applemusic-mcp serve --level music   # run the MCP server (your client calls this)
applemusic-mcp login                 # web sign-in (macOS: Safari; Windows/Linux: Chrome)
applemusic-mcp login --chrome        # use the Chrome web player on a Mac
applemusic-mcp login --dev           # your own Apple developer token (.p8)
applemusic-mcp logout                # sign out (switch accounts)
applemusic-mcp status                # auth status and permission level
applemusic-mcp reset --force         # wipe credentials (keeps your .p8 key file)
applemusic-mcp reset --all --force   # full uninstall: also removes the .p8, profile, and cache

注意事项

  • **在 Music.app 中播放目录歌曲需要 --allow-ui、已解锁的屏幕和辅助功能权限。**它会在应用中点击“播放”。资料库中已有的歌曲不需要这些条件。或者,在 --level web 模式下,设置 mode="safari",改为在 Safari 中播放。
  • **Safari 播放需要先进行一次真实点击。**首次在刚打开或重新加载的 Safari 标签页中播放时,浏览器要求先进行真实点击才会开始播放音频(这是标准的自动播放规则——我们不会伪造点击)。在 Apple Music 标签页中点击一次 ▶,之后即可免手动操作地播放、暂停和切换下一首。如果播放命令提示队列已就绪,但曲目时间仍停在 0:00,就是这个原因——点击一下该标签页即可。
  • 全新创建的播放列表需要稍等片刻才能通过 API 添加曲目(云端同步需要时间)。已有播放列表则可立即使用。
  • 如果目录操作开始失败,请重新运行 applemusic-mcp login。少数用户播放列表会悄无声息地撤销 AppleScript 编辑(Music.app 已知问题);服务会检测并报告回滚。

Star History

Star History Chart


许可证

MIT · 非官方社区项目——与 Apple 无关,也未获 Apple 认可。个人使用时使用你自己的 Apple Music 账户;请遵守 Apple 的条款。

mcp-name: io.github.epheterson/applemusic-mcp

致谢

FastMCP · Apple MusicKit · Model Context Protocol


由 @epheterson 和 Claude Code 在加利福尼亚倾情打造 ❤️。

评论

支持 Markdown

第一次接触 MCP?

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

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