Unofficial Apple Music for macOS

Peça uma playlist. Receba uma de verdade, tocando no Apple Music — sem conta, nada armazenado.

Documentação

Unofficial Apple Music MCP

Deixe o Claude tocar sua música. Baixe, arraste, clique duas vezes. É só isso.

Claude foi solicitado a criar uma playlist de aniversário com as melhores músicas de 10 de agosto ao longo de cinco anos, apropriada para uma criança de sete anos. Ele cria a playlist no Apple Music, inicia a reprodução e lista as 17 faixas escolhidas, pulando as versões explícitas.

Um único pedido. Uma playlist de verdade, tocando, sem as versões explícitas.

⬇ Baixar para Apple Silicon  ·  ⬇ Baixar para Intel
Não sabe qual? Menu Apple → Sobre Este Mac. "Apple M1/M2/M3…" é Apple Silicon.
notarizado pela Apple · sem terminal · sem conta de desenvolvedor · todos os downloads e checksums


Peça música em português simples

"Monte uma playlist de aniversário de Hogwarts para meu filho. Só trilhas sonoras, nada assustador."

"Já cansei de The Heist. O que você me sugere agora?"

"Mais parecido com aquele disco do coral Eric Ericson, mas pule a metade de Natal."

O Claude faz o trabalho no app Música que você já tem. A playlist que ele cria é uma playlist de verdade. Ela sincroniza com o seu celular.

PlaylistsCriar, adicionar, reordenar, renomear, organizar em pastas, excluir
Sua bibliotecaPesquisar, navegar, avaliar músicas, marcar favoritas, ver o que você ouviu
ReproduçãoTocar, pausar, pular, avançar, embaralhar, repetir, volume, AirPlay
O catálogo completoPesquisar todo o Apple Music, tocar, adicionar à sua biblioteca

Tocar ou adicionar músicas que você ainda não possui exige uma assinatura do Apple Music. Essa é uma regra da Apple, não deste servidor. Todo o resto funciona sem ela.

Instalação

The first-run setup window: Control Apple Music with AI

Você precisa de macOS 12 ou posterior e do app Música conectado à sua conta Apple. Tocar ou adicionar músicas do catálogo exige macOS 14 ou posterior.

  1. Baixe o app para Apple Silicon, ou a versão para Intel.
  2. Descompacte. Arraste UnofficialAppleMusicMCP.app para a pasta Aplicativos.
  3. Clique duas vezes uma vez.

Essa é a instalação completa. Sem Python, sem Homebrew, sem Terminal. O app traz tudo o que precisa consigo.

A Apple notarizou essas versões, então o app simplesmente abre. Sem aviso de "desenvolvedor não identificado", sem truque de clique com botão direito, sem visita às Ajustes do Sistema.

Arraste para Aplicativos primeiro. Se você abrir direto da pasta Downloads, o macOS executa a partir de uma cópia temporária que desaparece ao sair, e o helper em segundo plano acaba apontando para um arquivo que não existe mais.

A janela de configuração então faz três perguntas. Você pode pular qualquer uma.

O que perguntaO que acontecePor quê
Instalar o helper em segundo plano?Adiciona um pequeno programa que inicia quando você faz loginÉ isso que permite que a permissão pertença ao app em vez do seu terminal
Configurar seus apps de IA?Adiciona uma entrada ao Claude Desktop, Claude Code, Cursor, Windsurf, Codex ou VS CodePara que eles o encontrem. Suas outras ferramentas ficam intactas, e ele faz backup de cada arquivo antes
Permitir acesso ao Música?Mostra a caixa de permissão padrão do macOSAprovar aqui faz a permissão recair sobre este app

Reinicie os apps de IA que você escolheu, e pronto.

Quer compilar você mesmo? Assine. Veja A partir do código-fonte. O macOS vincula a permissão do Música a uma assinatura. Um app não assinado parece um app novo a cada recompilação, então ele pedirá permissão novamente toda vez.

Por que ele pede tão pouco

Software pode alcançar tudo o que você deixar. Isso importa mais do que o normal aqui, porque este software recebe ordens de uma IA.

O servidor de Apple Music mais capaz que encontrei exige uma permissão do macOS chamada Acessibilidade. O nome engana. Não tem nada a ver com leitores de tela ou tecnologia assistiva. Ela permite que um app controle outro: digitar teclas, clicar botões, ler o que está na tela.

O macOS não limita isso a um único app. Você concede para tudo ou nada.

Então um servidor de música com essa permissão também pode digitar no seu e-mail. E ele recebe instruções de um modelo lendo texto que ninguém revisou: nomes de faixas, títulos de playlists, o que ele acabou de pesquisar. Um título de playlist malicioso vira um toque de teclado.

Este fork excluiu esse código. Ele pede três coisas em vez disso:

Ele obtémEle não obtém
Controle do app Música, e nada mais. Revogue em Ajustes do Sistema a qualquer momentoA permissão de Acessibilidade. Não há código restante que pudesse usá-la
Uma conexão com o Apple Music, para adicionar músicas à sua bibliotecaQualquer navegador, seus cookies, suas abas
Um programa em segundo plano, iniciado no loginAs permissões do seu terminal, ou qualquer outra coisa no seu Mac

Essa é a lista completa, e uma suíte de testes falha o build se qualquer item voltar a aparecer.

Ele ainda toca todo o catálogo do Apple Music. A maioria dos servidores paga por isso com a permissão acima. Este usa o MusicKit da própria Apple, assinado com a identidade do app: uma caixa de aprovação, sem conta de desenvolvedor, e sem senha ou chave armazenada em qualquer lugar do seu Mac.

"Seguro" é o objetivo, não um certificado. Ninguém independente auditou isto. As afirmações que valem a pena confiar são as que um teste pode verificar, e elas estão listadas abaixo.

Por que um app em vez de um comando

O macOS culpa o processo pai. Quando seu app de IA inicia um programa auxiliar, a permissão recai sobre o app de IA, não sobre o auxiliar. A configuração usual, portanto, entrega "controlar o Música" para todo o seu terminal e para tudo o que você já executou nele.

Este app se divide em dois:

Claude Desktop ──stdio──▶ shim ──unix socket (0600)──▶ helper ──▶ Music.app
                     no permissions                 owns the grant

O shim conversa com o Claude e não pode tocar no Música. O helper possui a permissão e é iniciado pelo próprio macOS. Você tem uma linha em Ajustes do Sistema que pode desativar, e seu terminal não recebe nada. docs/PERMISSIONS.md tem os detalhes.

O que ele nunca fará

Sem AcessibilidadeSem teclas falsas, sem cliques falsos, sem ler janelas de outros apps
Sem navegadorSem Playwright, sem Chrome controlado de dentro do app
Sem ler seu navegadorNunca toca nos cookies do Safari nem executa JavaScript nas suas abas
Sem abrir linksEle lê links do Apple Music, nunca os entrega a um navegador
Sem shellEle executa exatamente um programa: osascript, com timeout
Sem senhas armazenadasNão há nada em ~/.config que valha a pena roubar
Sem APIs privadasApenas api.music.apple.com e a API pública de busca da Apple

Cada linha é um teste em tests/test_capability_invariants.py, rodando como um job de CI próprio. Excluir um subsistema é um evento único. Mantê-lo excluído é uma propriedade.

Para desenvolvedores

Um fork endurecido de epheterson/applemusic-mcp. O upstream faz mais e sempre fará: Windows e Linux, os players web do Chrome e do Safari, e a fila Up Next, que vivia dentro do player web e não sobreviveu à sua remoção. Este fork troca tudo isso por um raio de impacto menor e um instalador que seus parentes conseguem usar.

Com pip, pipx ou uvx

A wheel carrega o mesmo helper MusicKit assinado que o app, então esta é uma instalação completa, não uma versão reduzida.

pipx install secure-applemusic-mcp-for-osx     # or: uv tool install …

Toda release também tem a wheel anexada com checksums, se você preferir verificar um arquivo antes.

Não há janela de configuração neste caminho, então dois passos são seus.

1. Adicione ao seu cliente MCP. Para Claude Desktop, em ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "unofficial-apple-music": {
      "command": "secure-applemusic-mcp",
      "args": ["serve"]
    }
  }
}

Para Claude Code: claude mcp add unofficial-apple-music -- secure-applemusic-mcp serve. Outros clientes usam o mesmo comando no próprio arquivo de configuração. Use o caminho completo se ele não estiver no PATH do seu cliente, já que apps com interface gráfica muitas vezes não herdam um shell PATH. which secure-applemusic-mcp imprime o que colar.

2. Aprove o Apple Music uma vez. Reinicie o cliente e peça para executar config(action='signin'). Um prompt nativo aparece e nada é armazenado. Até fazer isso, tudo funciona exceto adicionar músicas que você ainda não possui.

A wheel é exclusiva para macOS e cobre ambos os chips. pip se recusa a instalá-la em outros lugares em vez de entregar uma versão sem MusicKit.

A partir do código-fonte

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 cria um virtualenv 0700 privado a partir do checkout em que você está. Nada é canalizado da rede para um shell. Um simples ./install.sh pula o bundle e configura o servidor stdio mais simples, sem escopo.

Sem o helper MusicKit embutido, um checkout do código-fonte recorre a um token opcional de desenvolvedor Apple (login --dev), que também desbloqueia metadados de catálogo mais ricos, gráficos e recomendações.

Compartilhando uma versão que você compilou

A release é notarizada, então abre no Mac de qualquer pessoa sem precisar clicar em nada. Basta enviar a correta: -arm64 para Apple Silicon, -x86_64 para Intel.

Sua própria compilação é diferente. Autoassinada não é notarizada, o macOS a recusa na primeira abertura, e o antigo truque de clique com botão direito não funciona mais. Seu amigo precisaria de:

Ajustes do Sistema → Privacidade e Segurança → role para baixo → Abrir mesmo assim

Autoassinar ainda vale a pena, porque dá ao app uma identidade estável e a permissão do Música sobrevive a recompilações.

Para entregar a sua tão limpa quanto a release, assine com um certificado Developer ID Application e notarize. make release executa a sequência completa, incluindo grampear o ticket no bundle. (Um zip feito antes de grampear ainda precisa da rede para validar, que é o motivo usual de um app "notarizado" ser recusado na máquina de outra pessoa.)

SIGN_ID="Developer ID Application: Your Name (TEAMID)" make release

As credenciais de notarização estão documentadas no topo de tools/notarize.sh. É preciso uma conta paga de Apple Developer ($99/ano). Nada mais no app muda.

Acompanhando o upstream

MIT, © Eric Pheterson, mantido integralmente. Forkado em 0acf697; o histórico do upstream está preservado no git e em CHANGELOG-upstream.md.

Aplicamos correções de segurança e de funcionamento do upstream aos módulos que mantivemos, e ignoramos commits de funcionalidades que tocam subsistemas excluídos. As exclusões são grandes, então faça cherry-pick por arquivo em vez de merge:

git fetch upstream --tags
git log --oneline fork-base..upstream/main -- src/applemusic_mcp/applescript.py

Os testes de capacidade são a rede de segurança para um cherry-pick que arrastaria uma capacidade excluída de volta.

Desinstalação

Arraste o app para a Lixeira e cole isto no Terminal:

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

Remova a entrada unofficial-apple-music da configuração do Claude Desktop; um backup fica ao lado dela. Para limpar também o cache e o log de auditoria, exclua ~/.config/applemusic-mcp e ~/.cache/applemusic-mcp. Em uma instalação a partir do código-fonte: ./install.sh --uninstall.

Nunca dê a permissão de Acessibilidade a ele. Ele não consegue usá-la. Se algo pedir isso, é um bug. Por favor, reporte.

Segurança

SECURITY.md tem o modelo de ameaças, o que é e o que não é alcançável, e os riscos que permanecem: o próprio app Música não é sandboxed, injeção de prompt é real, e este servidor não tem sandbox própria.

Três problemas herdados do upstream estão corrigidos aqui: uma verificação de link do Apple Music que podia ser enganada, uma proteção contra path traversal no recurso exports:// que não fazia nada, e operações destrutivas que agiam com base em um palpite de substring. CHANGELOG.md tem os detalhes e DISCLOSURE.md acompanha como foram reportados ao upstream.

Perguntas

Preciso de uma conta de Apple Developer, uma chave de API ou um arquivo .p8? Não. O MusicKit da Apple assina cada requisição usando a assinatura do próprio app mais sua aprovação única. Não há chave para criar, colar ou armazenar. O token opcional de desenvolvedor só aumenta o limite de taxa da Apple para trabalhos em massa, como importar uma playlist enorme. Preciso de uma assinatura do Apple Music? Não para a sua própria biblioteca, suas playlists ou reprodução local. Sim para reproduzir ou adicionar qualquer coisa do catálogo da Apple.

Funciona no Windows ou Linux? Não. Ele controla diretamente o app Música do Mac. Use o upstream se você precisar desses sistemas.

Com quais apps de IA ele funciona? Claude Desktop, Claude Code, Cursor, Windsurf, Codex e VS Code. A janela de configuração encontra os que você tem e os configura para você.

Algo é armazenado ou enviado para algum lugar? Nenhuma senha é armazenada, porque não existe uma. O app conversa com a Apple e com mais nada. Sem rastreamento, sem serviço de terceiros, sem conta neste projeto.

O que o macOS vai me pedir? Duas coisas: permissão para controlar o app Música e permissão para usar o Apple Music. Ele nunca pede Acessibilidade, nunca controla um navegador e nunca envia cliques falsos.

Como eu atualizo? Baixe o zip mais recente, substitua o app, reinicie seu app de IA. Os links de download acima sempre apontam para a versão mais nova.

Isso é feito pela Apple? Não. É um projeto independente, não afiliado, endossado ou suportado pela Apple. "Apple Music" e "MusicKit" são marcas registradas da Apple.

Outros servidores MCP do Apple Music

Análise completa com fontes em docs/COMPARISON.md. A versão resumida:

Melhor paraPrecisa de conta de desenvolvedorInstalação
kennethreitz/mcp-applemusicAlgo pequeno que você consegue ler de uma veznãoclone + edite o JSON
epheterson/applemusic-mcpMais recursos; Windows/Linux; fila Up Nextnãopip/uvx + edite o JSON
Cifero74/mcp-apple-musicA API REST oficialsimassistente + edite o JSON
este forkQuem não quer abrir o Terminalnãoduplo clique

Vale saber se você está escolhendo: o servidor do kennethreitz insere os parâmetros de ferramenta direto no AppleScript sem escapá-los, então uma aspa em um nome de faixa ou playlist quebra a string. Reportado com correção na issue #8.