apple-music-mcp
Provides tools to control Apple Music on macOS, including playback control, playlist management, and library search.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apple-music-mcpsearch my library for Beatles songs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
apple-music-mcp
MCP server for controlling Apple Music on macOS via AppleScript. Works with Claude Code, Codex CLI, Cursor, and any MCP-compatible client.
Tools
Tool | Description | Read/Write |
| Report server capabilities and runtime flags | Read |
| Check Music availability and automation permissions | Read |
| List folder playlists | Read |
| List user playlists, optionally filtered by folder | Read |
| Get current track info and player state | Read |
| Search library tracks by name/artist | Read |
| Find tracks in a bounded 1,000-candidate window | Read |
| Get tracks in a playlist (paginated) | Read |
| Create a playlist, optionally in a folder | Write |
| Create a playlist from a bounded criteria match | Write |
| Create a folder playlist, optionally nested | Write |
| Move a playlist into a folder | Write |
| Play, pause, next, previous, toggle | Write |
| Add unique track IDs with per-ID outcomes | Write |
| Remove every instance of each unique track ID | Write |
Track matching and bulk mutation results
music.find_tracks requires at least one text or numeric filter. It scans at most 1,000
candidate tracks and returns tracks, totalMatched, limit, scanned, and truncated.
When truncated is true, totalMatched is a lower bound within the scanned window, not a
full-library total. music.create_playlist_from_criteria reports the same scanned and
truncated values; its matched field has the same lower-bound rule.
Add and remove requests reject duplicate track IDs. Add results contain playlistId,
requested, added, addedTrackIds, missingTrackIds, and failedTrackIds. A missing ID
was not found in the library; a failed ID was found but could not be duplicated.
Remove results contain playlistId, requested, removed, removedTrackIds,
missingTrackIds, and failedTrackIds. Removal deletes every matching playlist instance, so
removed can exceed removedTrackIds.length. Criteria-created playlists also report
requested, addedTrackIds, missingTrackIds, and failedTrackIds.
Related MCP server: MCP AppleMusic Server
Environment Variables
Variable | Default | Description |
|
| Enable mutation tools (create, move, playback, add/remove tracks) |
|
| Mutation tools return dry-run payloads without modifying Music |
Setup (Recommended)
Codex CLI / Codex IDE extension
Add the server with the CLI:
codex mcp add apple_music -- npx -y @pallas-labs/apple-music-mcpThen set safe timeouts in ~/.codex/config.toml (default tool timeout is 60s, but this server can take up to ~70s for large playlist operations):
[mcp_servers.apple_music]
command = "npx"
args = ["-y", "@pallas-labs/apple-music-mcp"]
startup_timeout_sec = 20
tool_timeout_sec = 90
[mcp_servers.apple_music.env]
APPLE_MUSIC_MCP_ENABLE_WRITES = "false"If you want mutation tools, set:
[mcp_servers.apple_music.env]
APPLE_MUSIC_MCP_ENABLE_WRITES = "true"Claude Code
Add the server with Claude CLI:
claude mcp add --transport stdio apple-music -- npx -y @pallas-labs/apple-music-mcp--transport/--env options must come before the server name, and -- separates Claude flags from the server command.
Project-shared setup (.mcp.json):
{
"mcpServers": {
"apple-music": {
"command": "npx",
"args": ["-y", "@pallas-labs/apple-music-mcp"],
"env": {
"APPLE_MUSIC_MCP_ENABLE_WRITES": "false"
}
}
}
}To enable writes, set APPLE_MUSIC_MCP_ENABLE_WRITES to "true".
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"apple-music": {
"command": "npx",
"args": ["-y", "@pallas-labs/apple-music-mcp"],
"env": {
"APPLE_MUSIC_MCP_ENABLE_WRITES": "false"
}
}
}
}Hardened Read-Only (Codex)
For extra safety, keep writes disabled and hide mutation tools:
[mcp_servers.apple_music]
command = "npx"
args = ["-y", "@pallas-labs/apple-music-mcp"]
tool_timeout_sec = 90
disabled_tools = [
"music.create_playlist",
"music.create_playlist_from_criteria",
"music.create_folder",
"music.move_playlist",
"music.playback_control",
"music.add_tracks_to_playlist",
"music.remove_tracks_from_playlist"
]Permissions
This server uses AppleScript to control Music. macOS will prompt for automation permission on first use.
If you see permission_denied errors:
Open System Settings > Privacy & Security > Automation
Find your terminal app (Terminal, iTerm2, VS Code, etc.)
Enable Music under it
Development
Development requires Bun 1.3.14.
git clone https://github.com/parthmangrola/apple-music-mcp.git
cd apple-music-mcp
bun install --frozen-lockfile
bun run format:check
bun run lint
bun run typecheck
bun run test
bun run buildIntegration Tests
Requires Music app running on macOS:
INTEGRATION=true bun test srcTroubleshooting
"Music app is not running or unavailable" The server auto-launches Music. If it fails, open Music manually first.
"Permission denied to control Music" See the Permissions section above.
"AppleScript command timed out"
Large libraries can be slow. Bounded track discovery allows up to 120 seconds, while playlist
listing allows up to 70 seconds. In Codex, set tool_timeout_sec = 130 for this server. If you
still hit timeouts, run music.health first to warm up the connection.
Mutations are non-atomic AppleScript doesn't support transactions. Bulk operations may partially succeed. Inspect the returned added/removed, missing, and failed ID arrays instead of assuming the full request completed.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceFacilitates controlling Apple Music on macOS via AppleScript through MCP commands, allowing users to manage playback, search for tracks, and create playlists.Last updated1088MIT
- Flicense-qualityDmaintenanceAllows controlling Apple Music on macOS through an MCP server that supports playback control, volume adjustment, and music search functionality.Last updated2
- Alicense-qualityBmaintenanceApple Music playback control, library search, playlist management, and queue operations via MCP.Last updated1MIT
- Alicense-qualityAmaintenanceMCP server for Apple Music that lets AI assistants manage playlists, control playback, and browse the music library.Last updated76MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for generating rough-draft project plans from natural-language prompts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Pallas-Labs/apple-music-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server