# mcp-apple-music

Подключает Apple Music к ассистенту для поиска треков, управления плейлистами и работы с медиатекой. Пригодится для составления подборок и анализа истории прослушиваний прямо в чате.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 44
- Автор: Cifero74
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Cifero74/mcp-apple-music
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/mcp-apple-music

## Что делает

Сервер написан на FastMCP и предоставляет 14 инструментов для взаимодействия с REST API Apple Music. С его помощью агент просматривает сохранённые треки, проверяет недавнюю активность, ищет композиции в общем каталоге и создаёт новые подборки.

Управлять воспроизведением вроде паузы или переключения треков не выйдет, потому что REST API сервиса этого не умеет. Сервер рассчитан исключительно на работу с медиатекой и метаданными каталога. Для генерации ключа MusicKit обязательна платная учётная запись Apple Developer Program за 99 USD в год: на бесплатном тарифе создать ключ нельзя.

Авторизация делится на два этапа. Первый токен — это локальный Developer Token, который формируется на базе закрытого ключа `.p8` и обновляется автоматически. Второй — пользовательский Music User Token, получаемый один раз через браузерный мастер настройки с MusicKit JS и сохраняемый в локальном файле конфигурации.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `APPLE_TEAM_ID`, `APPLE_KEY_ID`, `APPLE_PRIVATE_KEY`, `APPLE_MUSIC_USER_TOKEN`, `APPLE_STOREFRONT` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env APPLE_TEAM_ID=<APPLE_TEAM_ID> --env APPLE_KEY_ID=<APPLE_KEY_ID> --env APPLE_PRIVATE_KEY=<APPLE_PRIVATE_KEY> --env APPLE_MUSIC_USER_TOKEN=<APPLE_MUSIC_USER_TOKEN> --env APPLE_STOREFRONT=<APPLE_STOREFRONT> --transport stdio mcp-apple-music -- uvx mcp-apple-music-server
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-apple-music-server <команда>

### Codex

**Командой платформы**
```bash
codex mcp add mcp-apple-music --env APPLE_TEAM_ID=<APPLE_TEAM_ID> --env APPLE_KEY_ID=<APPLE_KEY_ID> --env APPLE_PRIVATE_KEY=<APPLE_PRIVATE_KEY> --env APPLE_MUSIC_USER_TOKEN=<APPLE_MUSIC_USER_TOKEN> --env APPLE_STOREFRONT=<APPLE_STOREFRONT> -- uvx mcp-apple-music-server
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-apple-music-server <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-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 запускает команду с именем пакета; если в README она другая — uvx --from mcp-apple-music-server <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-apple-music": {
            "type": "stdio",
            "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 запускает команду с именем пакета; если в README она другая — uvx --from mcp-apple-music-server <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e APPLE_TEAM_ID=<APPLE_TEAM_ID> -e APPLE_KEY_ID=<APPLE_KEY_ID> -e APPLE_PRIVATE_KEY=<APPLE_PRIVATE_KEY> -e APPLE_MUSIC_USER_TOKEN=<APPLE_MUSIC_USER_TOKEN> -e APPLE_STOREFRONT=<APPLE_STOREFRONT> mcp-apple-music uvx mcp-apple-music-server
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-apple-music-server <команда>

## Когда брать
- составить плейлист по недавней истории прослушиваний
- найти альбомы и исполнителей в каталоге Apple Music
- добавить треки из каталога в личную медиатеку
- проверить и изменить статус избранного у песни

## Примеры запросов агенту
- Посмотри мои недавние альбомы и собери плейлист из десяти похожих песен, которых ещё нет в медиатеке.
- Найди все альбомы группы Radiohead и покажи, какие из них уже добавлены ко мне.
- Отметь трек с идентификатором `1440857781` как избранный и добавь его в мой плейлист.

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
