Skip to main content
Glama

MCP-AppleMusic

一个全面的 FastMCP 服务器,用于通过 AI 代理控制 macOS 上的 Apple Music。

包含 66 个工具,涵盖播放、播放列表工程、收听分析、Spotify 转换、智能 DJ 过渡以及音频设备控制。


核心超能力

  • 完整的 Apple Music 控制:播放、音量、AirPlay 每设备音量、EQ 预设、重复/随机模式以及 MiniPlayer。

  • 收听日志与月度 Replay:本地 SQLite 数据库 + 后台守护进程 scrobbler,用于持续跟踪和 Apple Replay 报告。

  • 跨平台 Spotify 导入器:将公开的 Spotify 播放列表和专辑直接导入 Apple Music(无需登录/令牌)。

  • 智能 AI DJ 过渡:自动计算 BPM 并修剪 start/finish 偏移量,实现连续无缝的交叉淡化。

  • 混合歌词与通用链接:通过 LRCLIB 即时获取歌词 + 通用 song.link 链接生成器,用于在 Spotify/YouTube/Tidal 上分享歌曲。

  • 播放列表管理与导出:嵌套文件夹、去重、自动排序,以及导出为 JSON、CSV 或 Markdown。


Related MCP server: applemusic-mcp

要求

  • macOS 并安装 Apple Music 应用

  • Python 3.13+

  • uv 包管理器(brew install uv


快速设置与配置

选项 1:Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "applemusic": {
      "command": "uvx",
      "args": ["git+https://github.com/suleyman416/mcp-applemusic.git"]
    }
  }
}

选项 2:Cursor / Windsurf / VS Code(Cline 和 Roo Code)

添加到你的 MCP 设置中:

{
  "mcpServers": {
    "applemusic": {
      "command": "uvx",
      "args": ["git+https://github.com/suleyman416/mcp-applemusic.git"]
    }
  }
}

macOS 权限说明:首次运行时,macOS 会请求你的 AI 客户端或终端控制 Music.app 的权限。点击 允许(或检查 系统设置 > 隐私与安全性 > 自动化)。


自然语言命令示例

连接后,你可以自然地与 AI 代理对话:

  • 播放与音频

    • "播放 Dave 的《Location》"

    • "将音量设置为 80%,并将 EQ 切换为 Hip-Hop"

    • "将音频输出切换到我的 AirPods Pro"

    • "为我的 Gym 播放列表开启随机播放"

  • 发现与转换

    • "导入这个 Spotify 播放列表:https://open.spotify.com/playlist/..."

    • "为当前播放的歌曲生成通用分享链接"

    • "向我展示英国 Apple Music 前十榜单"

    • "获取这首歌的歌词"

  • 分析与 Replay

    • "给我我的八月 Replay 报告"

    • "我的音乐聆听个性画像是什么?"

    • "显示我最近 10 首歌的收听历史"

  • DJ 与库工程

    • "为我的 'Party' 播放列表配置智能 DJ 交叉淡化"

    • "在我的 'Favorites' 播放列表中查找并移除重复歌曲"

    • "将我的 'Chill Vibes' 播放列表导出为 Markdown"


完整的 66 个工具套件

# 1. Playback & Track Control
itunes_play()                              # Start playback
itunes_pause()                             # Pause playback
itunes_next()                              # Skip to next track
itunes_previous()                          # Go to previous track
itunes_current_track()                     # Get currently playing track info
itunes_set_volume(volume)                  # Set volume (0–100)
itunes_mute(muted)                         # Mute or unmute audio
itunes_shuffle(enabled)                    # Enable or disable shuffle
itunes_set_shuffle_mode(mode)              # Set shuffle granularity ('songs', 'albums', 'groupings')
itunes_repeat(mode)                        # Set repeat mode ('off', 'one', 'all')
itunes_seek(seconds)                       # Seek/jump to timestamp in seconds
itunes_get_position()                      # Get elapsed position & total duration
itunes_favorite_track(favorited)           # Favorite or unfavorite currently playing track
itunes_favorite_song(song, favorited)      # Favorite or unfavorite any song by title
itunes_dislike_track(disliked)             # Mark current track as Disliked for algorithms
itunes_rate_track(stars)                   # Set star rating (1–5 stars)
itunes_favorite_album(favorited)           # Star or unstar currently playing album
itunes_rate_album(stars)                   # Set star rating on currently playing album
itunes_get_lyrics(song)                    # Get lyrics with global database fallback
itunes_set_eq(preset)                      # Set Equalizer preset (e.g. 'Hip-Hop', 'Bass Booster')
itunes_open_location(url)                  # Stream audio URL or music:// link
itunes_get_stream_info()                   # Get live radio / stream station title & URL

# 2. Audio Quality & Technical Inspection
itunes_get_track_audio_info(song)          # Inspect bit rate, sample rate, BPM, cloud status, format
itunes_set_track_bpm(bpm, song)            # Set BPM tempo on a track
itunes_set_track_start_finish(start, finish, song) # Set custom start/finish offsets
itunes_set_track_volume_adjustment(adj, song) # Set track volume adjustment (-100% to +100%)

# 3. Deep Tagging & Metadata Editor
itunes_get_track_metadata(song)            # Inspect genre, composer, track/disc numbers, comments, dates
itunes_edit_track_metadata(...)            # Update metadata tags (genre, composer, comment, year)
itunes_get_artwork_info(song)              # Inspect album artwork format, description & status

# 4. Library, Catalog & Artist Discovery
itunes_search(query)                       # Search local/iCloud library for tracks
itunes_search_catalog(query, limit)        # Search global Apple Music catalog (100M+ tracks)
itunes_get_artist_top_tracks(artist, limit)# Get top songs for any artist worldwide
itunes_get_artist_albums(artist, limit)    # Get official albums for any artist worldwide
itunes_play_song(song)                     # Find and play a specific song

# 5. Cross-Platform Converters & Curation
itunes_import_from_spotify(url, name)      # Import public Spotify playlist/album directly into Apple Music
itunes_generate_share_link(song)           # Generate universal share link (song.link) for all platforms
itunes_get_top_charts(country, limit)      # Fetch official Apple Music Daily Top 100 Charts
itunes_get_new_releases(country, limit)    # Fetch official Apple Music latest album releases
itunes_dj_auto_transition(playlist, crossfade) # Configure smart DJ radio-style crossfades across playlist
itunes_get_listening_personality()         # AI analysis of your listening archetype & signature vibes

# 6. Playlist & Folder Management
itunes_create_playlist(name)               # Create a new playlist
itunes_create_playlist_folder(name)        # Create a playlist folder
itunes_move_playlist_to_folder(playlist, folder) # Move playlist into a folder
itunes_set_playlist_description(playlist, description) # Set playlist description
itunes_add_to_playlist(song, playlist)     # Add a song to a named playlist (cross-playlist search)
itunes_remove_from_playlist(song, playlist)# Remove a track from a playlist by song title
itunes_move_playlist_track(playlist, from, to) # Move track position in playlist
itunes_sort_playlist(playlist, sort_by)    # Sort playlist by 'title', 'artist', or 'album'
itunes_favorite_playlist(playlist, favorited)# Star or unstar a playlist in sidebar
itunes_duplicate_playlist(source, new_name)# Clone an existing playlist into a new one
itunes_merge_playlists(play_a, play_b, new)# Merge two playlists into a new master playlist
itunes_find_duplicates(playlist, remove)   # Detect duplicate tracks in a playlist
itunes_delete_playlist(playlist)           # Delete a user playlist
itunes_list_playlists()                    # List all playlists with track counts
itunes_get_playlist_tracks(playlist)       # Get all tracks in a playlist
itunes_export_playlist(playlist, format)   # Export playlist to JSON, CSV, or Markdown

# 7. Listening Journal & Replay Analytics
itunes_get_monthly_replay(year, month)     # Generate Apple Music Replay report (hours, top songs/artists)
itunes_get_listening_history(limit, artist)# Chronological playback journal with timestamps & skips
itunes_get_listening_stats_by_date(start, end) # Custom date-range listening analytics & top charts
itunes_log_current_play()                  # Manually record current track to journal database

# 8. Audio Devices & UI Controls
itunes_list_devices()                      # List AirPlay audio output devices & active status
itunes_set_device(device_name)             # Switch audio output device (AirPods, HomePod, TV)
itunes_set_device_volume(device, volume)   # Set individual volume for specific AirPlay device
itunes_get_selected_tracks()               # Get tracks highlighted by user in Music window
itunes_set_miniplayer(enabled)             # Toggle MiniPlayer window mode
itunes_reveal_track(song)                  # Reveal & highlight track in Music window
itunes_get_stats()                         # Generate library analytics (tracks, hours, favorites)

开发与贡献

  1. 克隆仓库:

git clone https://github.com/suleyman416/mcp-applemusic.git
cd mcp-applemusic
  1. 以开发模式运行:

uv run mcp_applemusic.py
  1. 提交拉取请求!


许可证

MIT 许可证。请参阅 LICENSE 了解详情。

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/suleyman416/mcp-applemusic'

If you have feedback or need assistance with the MCP directory API, please join our Discord server