mcp-applemusic
by: kennethreitz
An experimental MCP server for controlling Apple Music.
📌Overview
Purpose: To provide a FastMCP server implementation for controlling Apple Music on macOS via AppleScript commands.
Overview: MCP-AppleMusic enables users to control the Apple Music application on macOS using a server that interprets various playback commands, enhancing the way users interact with their music library through scripting.
Key Features:
-
Playback Control: Functions such as
itunes_play()
,itunes_pause()
,itunes_next()
, anditunes_previous()
allow users to manage music playback seamlessly. -
Library Management: Commands like
itunes_search(query)
anditunes_create_playlist(name, songs)
facilitate the searching of songs and creation of playlists directly from the server.
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
Installation
-
Ensure you have
uv
installed:brew install uv
-
Update
claude_desktop_config.json
:{ "mcpServers": { "iTunesControlServer": { "command": "uvx", "args": ["-n", "mcp-applemusic"] } } }
Available Commands
itunes_play()
# Start playbackitunes_pause()
# Pause playbackitunes_next()
# Skip to next trackitunes_previous()
# Go to previous trackitunes_search(query)
# Search library for tracksitunes_play_song(song)
# Play specific songitunes_create_playlist(name, songs)
# Create new playlistitunes_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
-
Clone the repository:
git clone https://github.com/yourusername/mcp-applemusic.git cd mcp-applemusic
-
Install development dependencies:
pip install -e ".[dev]"
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License.