AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Music Mcp

mcp-pedrocid-music-mcp · by pedrocid

Music MCP server for controlling Apple Music via Model Context Protocol

No reviews yet
0 installs
38 views
0.0% view→install

Install

$ agentstack add mcp-pedrocid-music-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-pedrocid-music-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
stale · 1y ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Music Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Music MCP

[](https://badge.fury.io/js/%40pedrocid%2Fmusic-mcp) [](https://opensource.org/licenses/MIT)

A Model Context Protocol (MCP) server for controlling Apple Music on macOS using AppleScript. This connector provides a structured interface for AI assistants like Claude to interact with the Music app, enabling playback control, library management, and music information retrieval.

Features

  • Playback Control: Play, pause, skip tracks, and control volume
  • Current Track Information: Get detailed track metadata and playback status
  • Library Management: Search tracks, albums, artists, and browse your library
  • Playlist Management: Create, manage, modify, and play playlists
  • Enhanced Queue Management: Add tracks to play next, view queue status, and control playback order
  • Smart "Play Next" Feature: Queue tracks to play after the current song using temporary playlists
  • Diagnostic Tools: Built-in info command for troubleshooting

Requirements

  • macOS (required for Apple Music and AppleScript)
  • Node.js 18.0.0 or higher
  • Apple Music app installed and accessible
  • Automation permissions granted to your terminal/app

Installation

Via npm (Recommended)

npx @pedrocid/music-mcp@latest

For Development

git clone https://github.com/pedrocid/music-mcp.git
cd music-mcp
npm install
npm run build

Building as Desktop Extension

If you want to create a Desktop Extension (.dxt) for distribution:

# Install the DXT CLI tool
npm install -g @anthropic-ai/dxt

# Initialize Desktop Extension (if not already done)
dxt init

# Build the project
npm run build

# Package the extension
dxt pack

This creates a music-mcp.dxt file that can be installed directly in Claude Desktop or submitted to the Anthropic extension directory.

Note: The .dxt file is not included in the repository as it's a build artifact. Users who want the Desktop Extension should build it themselves using the instructions above.

Configuration

Claude Desktop Configuration

Add this to your Claude Desktop MCP configuration:

{
  "mcpServers": {
    "music": {
      "command": "npx",
      "args": ["@pedrocid/music-mcp@latest"]
    }
  }
}

Environment Variables (Optional)

All environment variables are optional. The server uses stderr logging by default and works without any configuration.

| Variable | Default | Description | |----------|---------|-------------| | MUSIC_MCP_LOG_LEVEL | info | Log level (debug, info, warn, error) | | MUSIC_MCP_FILE_LOGGING | false | Enable file logging (disabled by default) | | MUSIC_MCP_LOG_FILE | ~/Library/Logs/music-mcp.log | Log file location (only used if file logging enabled) | | MUSIC_MCP_CACHE_TTL | 300 | Cache timeout in seconds | | MUSIC_MCP_MAX_SEARCH_RESULTS | 50 | Maximum search results | | MUSIC_MCP_TIMEOUT_SECONDS | 30 | Default timeout for operations | | MUSIC_MCP_ARTWORK_EXPORT | true | Enable album artwork export | | MUSIC_MCP_LENIENT_PARSING | true | Accept variations in parameter names |

Available Tools

info

Get diagnostic information about the MCP server status.

{
  "command": "info"
}

Returns version information, Music app availability, and configuration status.

execute_music_command

Execute music playback control commands.

{
  "command": "play|pause|next|previous|toggle_playback",
  "volume": 75,
  "position": 30,
  "shuffleMode": true,
  "repeatMode": "all",
  "rating": 4
}

get_music_info

Retrieve information about current playback or library.

{
  "infoType": "current_track|playback_status|queue|library_stats",
  "format": "simple|detailed"
}

search_music

Search the music library.

{
  "query": "artist name or song title",
  "searchType": "all|track|album|artist|playlist",
  "limit": 25
}

manage_playlist

Create and manage playlists.

{
  "action": "create|add_track|remove_track|rename|delete|list|get_tracks",
  "playlistName": "My Playlist",
  "trackId": "search term for track",
  "newName": "New Playlist Name"
}

queue_musicNEW

Enhanced queue management and playlist control.

{
  "action": "view_queue|add_to_queue|play_queue|clear_queue|play_playlist",
  "trackSearchTerm": "song or artist name",
  "playlistName": "My Playlist",
  "shuffle": true
}

Queue Actions:

  • view_queue: See current track, playlist context, and playback status
  • add_to_queue: Add tracks to a temporary "Up Next" queue for sequential playback
  • play_queue: Play the tracks you've added to the queue
  • clear_queue: Clear all tracks from the up next queue
  • play_playlist: Play a specific playlist (with optional shuffle)

Permissions

When first using the MCP server, macOS will prompt you to grant automation permissions. You need to:

  1. Allow your terminal app (Terminal.app, iTerm2, etc.) to control "Music"
  2. Go to System Preferences > Security & Privacy > Privacy > Automation
  3. Ensure your terminal app has permission to control "Music"

Troubleshooting

Check Server Status

npx @pedrocid/music-mcp@latest
# Then use the info tool to check status

Common Issues

"Music app is not running"

  • The server automatically launches the Music app when needed
  • If issues persist, manually open the Music app first

"AppleScript execution failed"

  • Grant automation permissions in System Preferences
  • Ensure Music app is accessible and not restricted

"No tracks found"

  • Check that you have music in your library
  • Verify your Apple Music subscription is active

Debugging

The server logs to stderr by default, which Claude Desktop captures. For additional debugging, you can:

  1. Check Claude Desktop's MCP logs
  2. Enable file logging by setting MUSIC_MCP_FILE_LOGGING=true environment variable
  3. Use the info tool to check server diagnostics

Example Usage

Here are some example interactions you can have with Claude using this MCP server:

Basic Playback:

  • "Play my music and set the volume to 50%"
  • "What song is currently playing?"
  • "Skip to the next track"

Library & Search:

  • "Search for songs by Taylor Swift"
  • "Show me my library statistics"

Playlist Management:

  • "Create a playlist called 'Road Trip' and add some upbeat songs"
  • "Play my 'Chill' playlist with shuffle enabled"
  • "Remove all tracks by [artist] from my 'Favorites' playlist"

Queue Management (NEW):

  • "Add 'Bohemian Rhapsody' to play next"
  • "Show me what's in my up next queue"
  • "Clear my queue and add these 3 songs to play after the current track"
  • "Play my 'Party Mix' playlist next"

Development

Building

npm run build

Testing

npm test              # Unit tests
npm run test:e2e      # Integration tests

Linting

npm run lint

Release Preparation

npm run prepare-release

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and add tests
  4. Run the test suite: npm test
  5. Run the release preparation: npm run prepare-release
  6. Commit your changes: git commit -am 'Add feature'
  7. Push to the branch: git push origin feature-name
  8. Submit a pull request

License

MIT License - see the [LICENSE](LICENSE) file for details.

Support

Related Projects

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.