Skip to main content
Glama

MCP AppleMusic Server

by samwang0723

MCP AppleMusic Server

MCP server for controlling Apple Music on macOS.

Overview

This project provides a Model-Context-Protocol (MCP) server that allows you to control the Apple Music application on a macOS device. It works by executing AppleScript commands (osascript) under the hood.

The server is built with TypeScript, using Express.js to handle HTTP connections and the @modelcontextprotocol/sdk for MCP communication.

Note: This server is designed to run directly on a macOS machine, as it depends on osascript to interact with Apple Music.

Features

  • Control Apple Music playback (play, pause, next track).
  • Adjust volume.
  • Search for songs, albums, and artists in your library.
  • Search and immediately play a song.
  • Get the currently playing track name.
  • Exposes functionality as MCP tools.

Requirements

  • Operating System: macOS
  • Runtime: Node.js v20+

⚙️ Setup and Installation

  1. Clone the repository:
    git clone https://github.com/samwang0723/mcp-applemusic.git cd mcp-applemusic
  2. Install dependencies:
    npm install
  3. Configure environment variables: Create a .env file in the root of the project. You can copy the example if one is provided, or create it from scratch.
    # The port the server will listen on (default: 3000) PORT=3000 # The logging level (e.g., 'debug', 'info', 'warn', 'error') (default: 'info') LOG_LEVEL=info

🚀 Usage

Development

To run the server in development mode with hot-reloading (thanks to tsx):

npm run dev

Production

To build and run the server for production:

# 1. Build the TypeScript source code npm run build # 2. Start the server npm start

Once running, the server will be available at http://localhost:3000 (or your configured PORT).

🛠️ Available Tools

The server exposes the following tools for an MCP client to use:

Tool NameDescriptionParameters
apple-music-set-volumeAdjust Apple Music volumelevel: number (0-10)
apple-music-next-trackPlay next trackNone
apple-music-pausePause music playbackNone
apple-music-playResume music playbackNone
apple-music-search-albumSearch for tracks by albumalbum: string
apple-music-search-and-playSearch and play a songsong: string
apple-music-search-songSearch for specific songssong: string
apple-music-search-artistSearch for tracks by artistartist: string
apple-music-get-current-trackGet currently playing trackNone

🔌 API Endpoints

The server exposes the following HTTP endpoints:

  • GET /health: A health check endpoint. Returns { "status": "ok", "service": "mcp-applemusic-server" }.
  • /mcp (GET, POST, DELETE): The primary endpoint for MCP communication.

🐳 Docker

A Dockerfile is included in this project. You can build a Docker image using:

docker build -t mcp-applemusic .

However, please be aware of the following critical limitation:

⚠️ The Docker container will not function correctly. ⚠️

The server relies on osascript to control Apple Music, which is a macOS-specific utility. Standard Docker images are Linux-based and do not include this utility. Running the server in the provided Docker container will result in errors when any Apple Music tool is called.

This Dockerfile should be seen as a starting template for a generic Node.js application and would require a macOS-based environment to run successfully.

🔬 Development Scripts

  • npm run lint: Lint the code using ESLint.
  • npm run lint:fix: Automatically fix linting issues.
  • npm test: Run tests using Jest (test files need to be created).
-
security - not tested
F
license - not found
-
quality - not tested

Allows controlling Apple Music on macOS through an MCP server that supports playback control, volume adjustment, and music search functionality.

  1. Overview
    1. Features
      1. Requirements
        1. ⚙️ Setup and Installation
          1. 🚀 Usage
            1. Development
            2. Production
          2. 🛠️ Available Tools
            1. 🔌 API Endpoints
              1. 🐳 Docker
                1. 🔬 Development Scripts

                  Related MCP Servers

                  • -
                    security
                    A
                    license
                    -
                    quality
                    Facilitates controlling Apple Music on macOS via AppleScript through MCP commands, allowing users to manage playback, search for tracks, and create playlists.
                    Last updated -
                    42
                    Python
                    MIT License
                    • Apple
                  • A
                    security
                    F
                    license
                    A
                    quality
                    MCP server that enables reading and writing macOS system preferences and application settings through the defaults system.
                    Last updated -
                    4
                    11
                    Python
                    • Apple
                  • A
                    security
                    A
                    license
                    A
                    quality
                    The first open-source MCP server that enables AI to fully control remote macOS systems.
                    Last updated -
                    6
                    274
                    Python
                    MIT License
                    • Apple

                  View all related MCP servers

                  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/samwang0723/mcp-applemusic'

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