# Apple Music Playlist Curator (pypi · apple-music-playlists)

Deep Apple Music curation: language-led selection, catalog grounding, and thoughtful listening flow.

- Trust score: 85/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-29

## Components

- pypi · `apple-music-playlists`: 85/100 (this document), [markdown](https://verifymcp.io/servers/z-han-z-apple-music-playlists/apple-music-playlists.md), [page](https://verifymcp.io/servers/z-han-z-apple-music-playlists/apple-music-playlists)

## Channel facts

- Registry: `pypi`
- Package: `apple-music-playlists`
- Version: `1.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-29.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to Z-Han-Z/apple-music-playlists).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2451 tokens (~188/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 94% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Apple Music Playlist Curator MCP server?

Apple Music Playlist Curator runs locally as a PyPI package, launched with uvx apple-music-playlists. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add z-han-z-apple-music-playlists -- uvx apple-music-playlists
```

### Cursor

```json
{
  "mcpServers": {
    "z-han-z-apple-music-playlists": {
      "command": "uvx",
      "args": [
        "apple-music-playlists"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "z-han-z-apple-music-playlists": {
      "command": "uvx",
      "args": [
        "apple-music-playlists"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add z-han-z-apple-music-playlists -- uvx apple-music-playlists
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "z-han-z-apple-music-playlists": {
      "type": "local",
      "command": [
        "uvx",
        "apple-music-playlists"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add z-han-z-apple-music-playlists --command uvx --arg apple-music-playlists
```

### Hermes

```yaml
mcp_servers:
  z-han-z-apple-music-playlists:
    command: "uvx"
    args: ["apple-music-playlists"]
```

### Netclaw

```json
{
  "McpServers": {
    "z-han-z-apple-music-playlists": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "apple-music-playlists"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add z-han-z-apple-music-playlists -t stdio -c uvx -a apple-music-playlists
```

### Other

```json
{
  "mcpServers": {
    "z-han-z-apple-music-playlists": {
      "command": "uvx",
      "args": [
        "apple-music-playlists"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-28 (score 85, +13)

- [security regression] Tool safety: pass → unverified
- [security improvement] Provenance: fail → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [security] The attested source repository moved: Z-Han-Z/apple-music-playlists
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] Stability: unverified → 0.17
- [functional] Package version: 1.4.0 → 1.5.0
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-25 (score 72, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-24 (score 69, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-23 (score 54)

First indexed and scored.

## MCP tools (13)

### `am_status` (~65 tokens)

Check Apple Music Status

Check developer-token validity and Apple Music login status. Use before any library write; this check changes nothing. / 中文：查看 Apple Music 自动化状态：developer token 是否有效、是否已登录（music-user-token）。任何写歌单操作前都应先确认已登录。

### `am_search_songs` (~157 tokens)

Search Apple Music Catalog

Search the Apple Music catalog for a small exploratory lookup and return stable catalog IDs. For an LLM-proposed playlist-sized pool, use am_resolve_candidates instead. / 中文：在 Apple Music catalog 搜索歌曲/专辑/艺人，返回可用于建歌单的歌曲 ID。

Input parameters:

- `limit` (integer): 返回条数，默认 5
- `storefront` (string): 地区代码（如 us / jp / cn）。不给则用配置里记住的账号地区，再兜底 us
- `term` (string, required): 搜索词，例如 '晴天 周杰伦' 或 'Bohemian Rhapsody'
- `types` (string): songs / albums / artists，默认 songs

### `am_resolve_candidates` (~222 tokens)

Resolve Playlist Candidates

Ground an LLM-curated candidate pool in Apple Music metadata before final selection or creation. It returns exact catalog metadata and Apple Music links, flags unresolved tracks, duplicate recordings, artist concentration, and version markers, and never scores theme fit or writes to the library. / 中文：批量校验 LLM 提出的候选曲目，并返回 Apple Music 的真实曲名、艺人、专辑、发行日期、流派、时长、歌词可用性、版本标记和 catalog ID。还会指出重复录音与艺人集中度，但**不替模型做主题评分或选曲**。模型应直接根据用户描述与这些真实信息比较候选，保留理由充分的曲目。只读，不修改音乐库。

Input parameters:

- `storefront` (string): 可选地区代码；默认使用账号地区
- `tracks` (array, required): 候选曲目，每项形如 '歌名 - 艺人'。建议先给目标数量的 1.5–2 倍。

### `am_list_playlists` (~52 tokens)

List Library Playlists

List every playlist in the current user's library, including IDs. Use am_show_playlist when the tracks of one playlist are needed. / 中文：列出当前账号音乐库里的所有歌单（含 ID）。

### `am_show_playlist` (~66 tokens)

Show Playlist Tracks

Show the tracks in one playlist selected by name or ID. Use am_list_playlists first when the exact playlist is unknown. / 中文：查看某个歌单的曲目列表。

Input parameters:

- `playlist` (string, required): 歌单名或 p.xxxx 形式的 ID

### `am_create_playlist` (~244 tokens)

Create Playlist

Create a new playlist from 'Title - Artist' strings or ISRCs. Use dry_run=true to verify catalog matching without writing; use am_add_tracks for an existing playlist. / 中文：创建一个新的 Apple Music 歌单，并一次性写入曲目。曲目用 '歌名 - 艺人' 形式的字符串数组给出，服务端会自动在 catalog 里匹配；若有 ISRC 码则更精确。这是全自动建歌单的主入口。

Input parameters:

- `description` (string): 歌单描述，可选
- `dry_run` (boolean): 只解析曲目不写入，用于预览匹配结果
- `isrcs` (boolean): tracks 是否按 ISRC 精确匹配（更快、更准）
- `name` (string, required): 歌单名称
- `storefront` (string): 地区代码。不给则用配置里记住的账号地区，再兜底 us
- `tracks` (array, required): 曲目列表，每项形如 '歌名 - 艺人'；或用 --isrcs 时填 ISRC

### `am_add_tracks` (~145 tokens)

Add Tracks to Playlist

Append resolved tracks to an existing playlist created by this API client. Use dry_run=true to preview matching; use am_create_playlist for a new playlist. / 中文：向已有歌单追加曲目。注意 Apple 的限制：只有创建该歌单的那个客户端才能写入它。

Input parameters:

- `dry_run` (boolean)
- `isrcs` (boolean)
- `playlist` (string, required): 歌单名或 p.xxxx ID
- `storefront` (string): 地区代码。不给则用配置里记住的账号地区，再兜底 us
- `tracks` (array, required): '歌名 - 艺人' 列表

### `am_delete_playlist` (~130 tokens)

Delete Playlist

Delete one playlist permanently after it has been shown to the user. This is destructive, requires confirm=true, and does not delete the underlying songs from the library. / 中文：删除一个歌单。这是破坏性操作，必须先把歌单名和它当前的内容展示给用户并得到确认；只删本工具创建的演示/临时歌单，不要删用户自己整理的歌单。

Input parameters:

- `confirm` (boolean, required): 必须显式传 true 才会真正删除
- `playlist` (string, required): 歌单名或 p.xxxx ID

### `am_audit_playlist` (~156 tokens)

Audit Playlist Metadata

Read-only metadata audit of playlist length, artist concentration, genres, eras, duplicates, and possible interludes. For BPM, key, energy, and transitions, use am_analyze_flow. / 中文：歌单结构化体检（元数据层）：曲目数、总时长、艺人集中度（同一艺人是否超过 2 首）、流派分布、年代分布、时长分布、重复曲目、<2:00 的疑似间奏。只读，用于判断歌单是否符合策展规范（长度 20–30 首最佳、单一主题等）。

Input parameters:

- `playlist` (string, required): 歌单名或 p.xxxx ID

### `am_analyze_flow` (~218 tokens)

Analyze Playlist Flow

Read-only diagnosis of BPM, key, loudness, energy, mood, adjacent transitions, and overall arc. It may fetch and cache remote feature data; use am_optimize_order only when a proposed replacement order is wanted. / 中文：歌单「好听度」体检（音频特征层）：抓取每首的 BPM/调性/响度/能量/情绪值（经 ISRC→ReccoBeats，首次会慢，之后走缓存），然后检查四项相邻衔接（两首慢歌相邻 / 「只慢一点」/ tempo 与 key 同时相似 / 能量骤变）和整体弧线形状（Man in a hole、Icarus、Tragedy 等）。只读但会联网抓数据，可能耗时较久。

Input parameters:

- `playlist` (string, required): 歌单名或 p.xxxx ID
- `refresh` (boolean): 忽略特征缓存重新抓取，默认 false

### `am_optimize_order` (~493 tokens)

Optimize Track Order

Optionally refine local audio transitions after the LLM has selected the songs and narrative blocks. By default it does not impose a global narrative arc or tempo curve; pass a named arc only when the user explicitly requests that preset. It returns an order without writing and must not choose songs or judge theme fit. / 中文：为一批曲目**算出更好的顺序**。这是本项目唯一会排序的工具——am_analyze_flow 只诊断（告诉你哪里有 2 处慢歌相邻、形状是 Icarus），不提供修法。这里用模拟退火处理四条相邻硬规则（不要两首慢歌相邻 / 不要「只慢一点」/ 相邻不该在 tempo 与 key 上同时相似 / 不要 BPM 无理由大跳、能量骤变）。默认不拟合全局叙事弧；只有显式传入 arc 才套用一个命名预设。**只读**：只返回建议顺序，不动任何歌单；把返回列表按原顺序交给 am_create_playlist 即可。因为需要每首的 BPM/调性，首次会联网抓特征（之后走缓存）。

Input parameters:

- `arc` (string): 可选的全局叙事弧预设。省略时不强加叙事形状，只优化局部衔接；仅当用户明确要求某个命名曲线时才选择，例如 cinderella（起-落-起）。
- `blocks` (array): 分组排序：每个子数组是一个乐章/段落，**段落之间的先后顺序保持不动**，只在段落内部重排。想保留叙事结构时用它（与 tracks 二选一）
- `isrcs` (boolean): tracks/blocks 是否按 ISRC 精确匹配，默认 false
- `playlist` (string): 要重排的现有歌单名或 p.xxxx ID（与 tracks/blocks 二选一）
- `refresh` (boolean): 忽略音频特征缓存重抓，默认 false
- `tracks` (array): 要排序的曲目，每项 '歌名 - 艺人'（配 isrcs=true 时填 ISRC）

### `am_recently_played` (~122 tokens)

Get Recent Listening

Read recent listening or recently added Apple Music content when recency matters. This API does not provide play counts; use am_top_played for Replay rankings. / 中文：查最近播放。kind=tracks 是最近播放的曲目；played 是最近播放的歌单/专辑；stations 是最近听的电台；added 是最近加入音乐库的内容。注意：Apple 的这个接口**不返回播放次数**。

Input parameters:

- `kind` (string): 默认 tracks
- `limit` (integer): 条数，默认 30

### `am_top_played` (~170 tokens)

Get Replay Rankings

Read Apple Music Replay play-count rankings by song, album, or artist when frequency matters. Use am_recently_played for latest listening; all-time data may be unavailable, so retry with a specific year. / 中文：查**播放次数**排行（数据来自 Apple Music Replay / 音乐回忆的后端）。可以查 songs / albums / artists，按年份或 all-time。返回每项的播放次数、首次播放日期、最近播放日期。注意：只有 amp-api 主机可用；all-time 期间不一定存在，失败时先试具体年份。

Input parameters:

- `kind` (string): 默认 songs
- `limit` (integer): 条数，默认 30
- `year` (integer): 如 2026；不给则用 all-time

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/z-han-z-apple-music-playlists/apple-music-playlists#diagnostics

## Score history

- 2026-09-29: 85
- 2026-09-28: 85
- 2026-09-27: 72
- 2026-09-26: 72
- 2026-09-25: 72
- 2026-09-24: 69
- 2026-09-23: 54

## Common questions

### What is the Apple Music Playlist Curator MCP server?

Apple Music Playlist Curator is an MCP server listed in the public MCP registry as io.github.Z-Han-Z/apple-music-playlists. Deep Apple Music curation: language-led selection, catalog grounding, and thoughtful listening flow. This page covers its PyPI package (apple-music-playlists).

### Is the Apple Music Playlist Curator MCP server safe to use?

Apple Music Playlist Curator scores 85 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 29 September 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Apple Music Playlist Curator MCP server expose?

Apple Music Playlist Curator exposes 13 tools: am_status, am_search_songs, am_resolve_candidates, am_list_playlists, am_show_playlist, and 8 more. Their descriptions and schemas cost roughly 2,240 tokens of context every time the server is loaded.

### Is the Apple Music Playlist Curator MCP server still maintained?

Apple Music Playlist Curator is still listed as active in the MCP registry. We last reached this channel on 29 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Apple Music Playlist Curator MCP server under?

Apple Music Playlist Curator declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/apple-music-playlists/
- Socket report: https://socket.dev/pypi/package/apple-music-playlists
- Repository: https://github.com/Z-Han-Z/apple-music-playlists
- Changelog RSS feed: https://verifymcp.io/servers/z-han-z-apple-music-playlists/apple-music-playlists.xml
- Changelog JSON feed: https://verifymcp.io/servers/z-han-z-apple-music-playlists/apple-music-playlists.json
- HTML version of this page: https://verifymcp.io/servers/z-han-z-apple-music-playlists/apple-music-playlists
