Unofficial Apple Music for macOS について
Unofficial Apple Music for macOSは、AIクライアントからMusicアプリやApple Musicカタログを操作するmacOS向けMCPサーバーです。ライブラリやプレイリストを扱い、アクセシビリティ権限やブラウザー操作を求めません。
主な機能
- 01プレイリストの作成と整理
- 02ミュージックライブラリの検索と閲覧
- 03曲の評価とお気に入り管理
- 04再生・音量・AirPlayの操作
- 05Apple Musicカタログの検索と再生
活用シーン
- 01自然言語の依頼からプレイリストを作成
- 02個人ライブラリ内の曲を検索
- 03MCPクライアントから再生を操作
- 04カタログの曲をライブラリに追加
MCP 対応
Apple Musicのライブラリ、プレイリスト、検索、再生操作をMCPクライアントに公開します。アプリとしてインストールする方法と、コマンドラインサーバーとして設定する方法があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Unofficial Apple Music MCP
Claude に音楽を再生してもらいましょう。ダウンロードして、ドラッグして、ダブルクリック。それだけでインストールできます。
一度のリクエストで、実際のプレイリストを作成して再生。Explicit バージョンは除外されます。
⬇ Apple Silicon 用をダウンロード
·
⬇ Intel 用をダウンロード
どちらかわからない場合は、Apple メニュー → この Mac について。「Apple M1/M2/M3…」と表示されていれば Apple Silicon です。
Apple による公証済み · ターミナル不要 · 開発者アカウント不要 ·
すべてのダウンロードとチェックサム
普段使う英語で音楽をリクエスト
"子どものために、怖くない曲だけのホグワーツの誕生日プレイリストを作って。"
"The Heist はもう聴き飽きた。次は何を聴けばいい?"
"Eric Ericson の合唱アルバムみたいな曲をもっと。ただし、後半のクリスマス曲は抜きで。"
Claude は、すでにお使いのミュージックアプリで作業します。作成されるのは実際のプレイリストです。 スマートフォンにも同期されます。
| プレイリスト | 作成、追加、並べ替え、名前変更、フォルダへの整理、削除 |
| ライブラリ | 検索、閲覧、曲の評価、お気に入りへの登録、再生履歴の確認 |
| 再生 | 再生、一時停止、スキップ、シーク、シャッフル、リピート、音量調整、AirPlay |
| 全カタログ | Apple Music 全体を検索して再生し、ライブラリに追加 |
すでに所有していない音楽を再生または追加するには、Apple Music の サブスクリプションが必要です。これは Apple のルールであり、このサーバーのルールではありません。それ以外の機能は、 サブスクリプションなしで使えます。
インストール
必要なものは macOS 12 以降と、Apple アカウントにサインインした Music アプリです。カタログの音楽の再生や追加には macOS 14 以降が必要です。
- Apple Silicon 用のアプリをダウンロードするか、Intel ビルドをダウンロードします。
- ZIP を解凍します。UnofficialAppleMusicMCP.app を「アプリケーション」フォルダにドラッグします。
- 1 回だけダブルクリックして起動します。
インストールはこれだけです。Python も Homebrew もターミナルも必要ありません。アプリに必要なものはすべて含まれています。
Apple による公証済みのビルドなので、そのままアプリを開けます。「開発元を確認できない」という警告も、右クリックで開く操作も、「システム設定」を開く必要もありません。
先に「アプリケーション」フォルダへドラッグしてください。 「ダウンロード」フォルダから開くと、macOS は一時コピーからアプリを実行します。そのコピーは終了時に消えるため、バックグラウンドヘルパーが存在しないファイルを参照することになります。
続いてセットアップ画面で 3 つの質問が表示されます。どれもスキップできます。
| 質問 | 実行されること | 理由 |
|---|---|---|
| バックグラウンドヘルパーをインストールしますか? | ログイン時に起動する小さなプログラムを追加します | これにより、ターミナルではなくアプリにアクセス許可を付与できます |
| AI アプリをセットアップしますか? | Claude Desktop、Claude Code、Cursor、Windsurf、Codex、または VS Code にエントリーを 1 つ追加します | 各アプリがこのアプリを見つけられるようにします。他のツールには変更を加えず、変更前にすべてのファイルをバックアップします |
| Music へのアクセスを許可しますか? | macOS 標準のアクセス許可ダイアログを表示します | ここで承認すると、このアプリにアクセス許可が付与されます |
選択した AI アプリを再起動すれば完了です。
自分でビルドする場合は、署名してください。 ソースからビルドを参照してください。macOS は Music のアクセス許可を署名に紐付けます。未署名のアプリは再ビルドのたびに新しいアプリとして扱われるため、毎回アクセス許可を求められます。
必要なアクセス許可が少ない理由
ソフトウェアは、アクセスを許可されたものに何でもアクセスできます。ここではソフトウェアが AI から指示を受けるため、通常以上に重要です。
私が見つけた中で最も高機能な Apple Music サーバーには、macOS のアクセシビリティというアクセス許可が必要です。名前から誤解しやすいですが、スクリーンリーダーや支援技術とは関係ありません。あるアプリから別のアプリを操作できるようにするもので、キー入力やボタンのクリック、画面上の内容の読み取りが可能になります。
macOS では、アクセス許可を 1 つのアプリだけに限定できません。すべてのアプリに許可するか、まったく許可しないかのどちらかです。
つまり、そのアクセス許可を持つミュージックサーバーは、メールにも入力できてしまいます。また、誰も確認していないテキストを読むモデルから指示を受けます。トラック名やプレイリスト名、検索したばかりの情報などが該当します。細工されたプレイリスト名が、キー入力に変わる可能性があります。
このフォークでは、そのコードを削除しました。代わりに求めるのは次の 3 つです。
| 得られるもの | 得られないもの |
|---|---|
| Music アプリの操作権限のみ。それ以外にはアクセスしません。いつでも「システム設定」で取り消せます | アクセシビリティのアクセス許可。それを利用するコードは残っていません |
| Apple Music への接続。ライブラリに曲を追加するために使用します | ブラウザー、Cookie、タブへのアクセス |
| ログイン時に起動するバックグラウンドプログラム 1 つ | ターミナルのアクセス許可、または Mac 上のその他のもの |
これがすべてです。テストスイートにより、これらに反するものが再び入り込むとビルドに失敗します。
それでも Apple Music の全カタログを再生できます。ほとんどのサーバーは、前述のアクセス許可を使ってこれを実現しています。このアプリは、アプリの ID で署名された Apple 独自の MusicKit を使用します。必要なのは承認ダイアログ 1 つだけで、開発者アカウントは不要です。Mac にパスワードやキーが保存されることもありません。
「セキュア」は目標であり、証明書ではありません。 独立した第三者による監査は受けていません。信頼する価値があるのはテストで検証できる主張であり、その内容を以下に記載しています。
コマンドではなくアプリを使う理由
macOS では、権限は親プロセスに付与されます。AI アプリがヘルパープログラムを起動すると、権限はヘルパーではなく AI アプリに付与されます。そのため、一般的な設定では「Music を操作する」権限をターミナル全体に渡し、そこから起動するすべてのプログラムにも渡すことになります。
このアプリでは、代わりに二つに分けています。
Claude Desktop ──stdio──▶ shim ──unix socket (0600)──▶ helper ──▶ Music.app
no permissions owns the grant
シムは Claude と通信しますが、Music には触れられません。ヘルパーは権限を持ち、macOS 自体によって起動されます。システム設定にはオフにできる項目が一つ表示され、ターミナルには何の権限も付与されません。 詳しくは docs/PERMISSIONS.md をご覧ください。
決して行わないこと
| アクセシビリティ権限なし | 偽のキーストロークやクリックは行わず、ほかのアプリのウィンドウも読み取りません |
| ブラウザーなし | Playwright は使わず、アプリ内から Chrome を操作しません |
| ブラウザーの読み取りなし | Safari の Cookie には触れず、タブ内で JavaScript を実行することもありません |
| リンクを開かない | Apple Music のリンクは読み取りますが、ブラウザーには渡しません |
| シェルなし | タイムアウト付きで、osascript だけを実行します |
| パスワードを保存しない | ~/.config に盗む価値のあるものは何もありません |
| 非公開 API なし | api.music.apple.com と Apple の公開検索 API だけを使用します |
各項目は tests/test_capability_invariants.py のテストで検証され、個別の CI ジョブとして実行されます。サブシステムを削除するのは一度限りです。削除した状態を維持することが、このプロジェクトの特性です。
開発者向け
epheterson/applemusic-mcp を強化したフォークです。上流版は今後も、Windows と Linux、Chrome と Safari のウェブプレーヤー、そしてウェブプレーヤー内にあり、その削除によって維持できなくなった「次はこちら」キューなど、より多くの機能を提供します。このフォークでは、それらを省く代わりに、影響範囲を小さくし、親族でも使えるインストーラーを用意しています。
pip、pipx、または uvx を使う場合
wheel にはアプリと同じ署名済み MusicKit ヘルパーが含まれているため、機能を縮小したものではなく、完全なインストールになります。
pipx install secure-applemusic-mcp-for-osx # or: uv tool install …
各リリース にはチェックサム付きの wheel も添付されています。ファイルを先に検証したい場合にご利用ください。
この方法ではセットアップ画面が表示されないため、二つの手順を行う必要があります。
1. MCP クライアントに追加します。 Claude Desktop の場合は、次のファイルを編集します。
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"unofficial-apple-music": {
"command": "secure-applemusic-mcp",
"args": ["serve"]
}
}
}
Claude Code の場合は、claude mcp add unofficial-apple-music -- secure-applemusic-mcp serve を実行します。
ほかのクライアントでは、それぞれの設定ファイルに同じコマンドを指定します。クライアントの PATH に含まれていない場合は、フルパスを使用してください。GUI アプリはシェルの PATH を引き継がないことがよくあります。貼り付けるパスは which secure-applemusic-mcp で確認できます。
2. Apple Music の使用を一度だけ許可します。 クライアントを再起動してから、config(action='signin') を実行するよう指示してください。ネイティブの確認画面が表示され、何も保存されません。許可するまでは、すでに所有している音楽の追加を除き、すべての機能を利用できます。
wheel は macOS 専用で、どちらのチップにも対応しています。MusicKit が含まれないビルドを渡す代わりに、pip はほかの環境へのインストールを拒否します。
ソースからインストールする場合
git clone https://github.com/jaminben/secure-applemusic-mcp-for-osx
cd secure-applemusic-mcp-for-osx
./install.sh --scoped --sign "My Local Signing Cert" # or plain ./install.sh
tools/make-signing-cert.sh # one-off local signing cert
SIGN_ID="Apple Music MCP Self-Signed" make app # build a signed .app
install.sh は、現在いるチェックアウトから、非公開の 0700 仮想環境をビルドします。ネットワークからシェルに直接パイプすることはありません。引数なしで ./install.sh を実行すると、バンドルのビルドを省略し、よりシンプルなスコープなしの stdio サーバーをセットアップします。
MusicKit ヘルパーをバンドルしない場合、ソースチェックアウトではオプションの Apple Developer トークン(login --dev)にフォールバックします。このトークンを使うと、カタログの詳細情報、チャート、おすすめも利用できます。
作成したビルドを共有する
リリース
は公証済みなので、相手の Mac でもクリックして警告を通過する必要なく開けます。適切なものを送ってください。Apple Silicon には -arm64、Intel には -x86_64 を選びます。
自分でビルドしたものは事情が異なります。自己署名では公証されないため、macOS は初回起動時に実行を拒否し、以前の右クリック操作も使えなくなっています。相手は次の操作をする必要があります。
システム設定 → プライバシーとセキュリティ → 下にスクロール → このまま開く
自己署名にも利点はあります。アプリに安定した ID が付与され、再ビルドしてもミュージックへのアクセス許可が保持されます。
リリースと同じようにスムーズに渡すには、Developer ID Application 証明書で署名して公証します。make release を実行すると、チケットをバンドルにステープルする処理も含め、すべての手順が実行されます。(ステープルする前に作成した zip は、検証にネットワーク接続が必要です。これが、別の人のマシンで「公証済み」アプリが拒否される一般的な原因です。)
SIGN_ID="Developer ID Application: Your Name (TEAMID)" make release
公証用の認証情報については、tools/notarize.sh の冒頭に記載されています。有料の Apple Developer アカウント(年額 99 ドル)が必要です。それ以外にアプリへの変更はありません。
上流の変更を追跡する
MIT、© Eric Pheterson、ライセンス全文を保持しています。0acf697 からフォークしました。上流の履歴は git と CHANGELOG-upstream.md に保持されています。
保持しているモジュールへの上流のセキュリティ修正と正確性の修正は取り込み、削除したサブシステムに関わる機能コミットは無視します。削除範囲が大きいため、マージではなくファイル単位でチェリーピックしてください。
git fetch upstream --tags
git log --oneline fork-base..upstream/main -- src/applemusic_mcp/applescript.py
機能テストは、削除した機能を復活させてしまうチェリーピックを防ぐ安全網です。
アンインストール
アプリをゴミ箱にドラッグしてから、次の内容をターミナルに貼り付けます。
launchctl bootout gui/$(id -u)/io.github.jaminben.secure-applemusic-mcp
rm -f ~/Library/LaunchAgents/io.github.jaminben.secure-applemusic-mcp.plist
tccutil reset AppleEvents io.github.jaminben.secure-applemusic-mcp
Claude Desktop の設定から unofficial-apple-music のエントリーを削除します。バックアップはその隣にあります。キャッシュと監査ログも消去するには、~/.config/applemusic-mcp と ~/.cache/applemusic-mcp を削除します。ソースからインストールした場合は、./install.sh --uninstall を実行します。
このアプリにアクセシビリティの権限を絶対に与えないでください。 このアプリはその権限を使用できません。権限を求められた場合はバグです。報告してください。
セキュリティ
SECURITY.md には、脅威モデル、アクセス可能な範囲とアクセスできない範囲、残存するリスクが記載されています。ミュージックアプリ自体はサンドボックス化されておらず、プロンプトインジェクションは現実の脅威であり、このサーバー自体にもサンドボックスはありません。
上流から引き継いだ次の 3 つの問題を修正しました。偽装可能だった Apple Music リンクのチェック、機能していなかった exports:// リソースのパストラバーサル防止、部分文字列による推測に基づいて実行されていた破壊的な操作です。詳細は CHANGELOG.md に記載されており、上流への報告については DISCLOSURE.md に記録されています。
よくある質問
Apple Developer アカウント、API キー、または .p8 ファイルは必要ですか?
いいえ。Apple の MusicKit は、アプリ独自の署名と一度限りの承認を使って各リクエストに署名します。作成、貼り付け、保存するキーはありません。任意の開発者トークンを使うと、大量のプレイリストのインポートなど、一括処理で Apple のレート制限を引き上げられます。
Apple Music のサブスクリプションは必要ですか? 自分のライブラリ、プレイリスト、ローカル再生には必要ありません。Apple のカタログから何かを再生したり追加したりするには必要です。
Windows や Linux でも動作しますか? いいえ。Mac の Music アプリを直接操作します。Windows や Linux で使う必要がある場合は、upstream をご利用ください。
どの AI アプリで使えますか? Claude Desktop、Claude Code、Cursor、Windsurf、Codex、VS Code で使えます。セットアップウィンドウがインストール済みのアプリを検出し、自動で設定します。
何かが保存されたり、どこかに送信されたりしますか? パスワードは存在しないため、保存されません。このアプリは Apple とだけ通信します。トラッキングも、サードパーティのサービスも、このプロジェクトのアカウントもありません。
macOS から何を許可するよう求められますか? 2 つです。Music アプリの操作と、Apple Music の使用です。アクセシビリティの許可を求めることはなく、ブラウザーを操作することも、偽のクリックを送信することもありません。
更新するにはどうすればよいですか? 最新の zip をダウンロードしてアプリを置き換え、AI アプリを再起動してください。上記のダウンロードリンクは常に最新リリースを指しています。
これは Apple が作ったものですか? いいえ。これは独立したプロジェクトであり、Apple とは提携、承認、サポートの関係にありません。「Apple Music」と「MusicKit」は Apple の商標です。
その他の Apple Music MCP サーバー
出典付きの詳しい解説は docs/COMPARISON.md をご覧ください。概要は以下のとおりです。
| 最適な用途 | 開発者アカウントが必要 | インストール | |
|---|---|---|---|
| kennethreitz/mcp-applemusic | ひととおり読める小規模なもの | いいえ | clone + JSON を編集 |
| epheterson/applemusic-mcp | 最多の機能;Windows/Linux;次に再生キュー | いいえ | pip/uvx + JSON を編集 |
| Cifero74/mcp-apple-music | 公式 REST API | はい | ウィザード + JSON を編集 |
| このフォーク | Terminal を開きたくない人 | いいえ | ダブルクリック |
選ぶ際に知っておくとよい点:kennethreitz のサーバーは、ツールのパラメーターをエスケープせずにそのまま AppleScript に渡すため、曲名やプレイリスト名に引用符が含まれていると文字列の外に出てしまいます。修正案とともに issue #8 で報告されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。