Skip to main content
Glama

MCP-AppleMusic

A FastMCP server implementation for controlling Apple Music (formerly iTunes) on macOS through AppleScript commands.

Requirements

  • Python 3.13+

  • macOS with Apple Music app installed

  • MCP library ≥1.2.1

Related MCP server: Sound

Installation

First, ensure you have uv installed:

$ brew install uv

Then, with Claude Desktop, add the following to claude_desktop_config.json:

{
  "mcpServers": {
    "iTunesControlServer": {
      "command": "uvx",
      "args": ["-p", "3.13", "-n", "mcp-applemusic"]
    }
  }
}

Available Commands

The following commands are available through the MCP server:

itunes_play()         # Start playback
itunes_pause()        # Pause playback
itunes_next()         # Skip to next track
itunes_previous()     # Go to previous track
itunes_search(query)  # Search library for tracks
itunes_play_song(song)  # Play specific song
itunes_create_playlist(name, songs)  # Create new playlist
itunes_library()      # Get library statistics

Usage

Start the server:

python server.py

Example interactions:

# Search for a song
results = itunes_search("Hey Jude")

# Create a new playlist
itunes_create_playlist("Beatles Favorites", ["Yesterday", "Hey Jude", "Let It Be"])

# Play a specific song
itunes_play_song("Hey Jude")

Development

  1. Clone the repository:

git clone https://github.com/yourusername/mcp-applemusic.git
cd mcp-applemusic
  1. Install development dependencies:

pip install -e ".[dev]"

Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Notes

  • This tool only works on macOS systems due to its AppleScript dependency

  • Requires Apple Music (formerly iTunes) to be installed

Available Tools

10 tools
itunes_all_songsB

Get a list of all songs in the Music library. Returns a formatted list of all tracks with their names and artists.

Inputs: no named parameters. Returns: result

itunes_create_playlistA

Create a new playlist with the given name and add tracks to it. 'songs' should be a comma-separated list of exact track names. Returns a confirmation message including the number of tracks added.

Inputs: name (required), songs (required). Returns: result

itunes_current_songB

Get information about the currently playing track. Returns the track name, artist, and album.

Inputs: no named parameters. Returns: result

itunes_libraryB

Return a summary of the Music library, including total tracks and user playlists.

Inputs: no named parameters. Returns: result

itunes_nextA

Skip to the next track.

Inputs: no named parameters. Returns: result

itunes_pauseB

Pause playback in Music (iTunes).

Inputs: no named parameters. Returns: result

itunes_playB

Start playback in Music (iTunes).

Inputs: no named parameters. Returns: result

itunes_play_songA

Play the first track whose name exactly matches the given song name. Returns a confirmation message.

Inputs: song (required). Returns: result

itunes_previousB

Return to the previous track.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 10 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between itunes_play and itunes_play_song, as both involve starting playback. However, itunes_play is a general playback start, while itunes_play_song targets a specific song, which helps differentiate them. All other tools are clearly distinct in function.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with the prefix 'itunes_' and a descriptive verb or noun phrase. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming style.

    Tool Count5/5

    With 10 tools, the server is well-scoped for managing an Apple Music library, covering essential operations like playback control, library queries, playlist creation, and song search. Each tool serves a clear purpose without redundancy, making the count appropriate for the domain.

    Completeness4/5

    The tool set provides good coverage for core music library management, including playback, search, and playlist creation. However, there are minor gaps, such as the inability to delete or modify existing playlists, which could limit some agent workflows. Overall, it supports most common tasks effectively.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Allows controlling Apple Music on macOS through an MCP server that supports playback control, volume adjustment, and music search functionality.
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Apple Music playback control, library search, playlist management, and queue operations via MCP.
      2
      MIT