Apple Music for your AI tools — MCP server for searching, playing, and managing Apple Music
Sound has 15 well-named tools with consistent verb_noun patterns (search_catalog, get_song_details, play_pause). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are present with type declarations for all parameters. However, parameter descriptions are minimal (often 1-2 lines), output schemas are not documented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classification. Missing pagination guidance for list tools (get_library_playlists, get_recently_played). Descriptions are functional but could be more LLM-optimized per pattern:tool-description baseline.
Add songs to an existing playlist by playlist ID
Create a new playlist in the user's Apple Music library
Get full details for an album by its Apple Music catalog ID
List the user's Apple Music library playlists
Get the currently playing track in Apple Music
Get the current playback queue
Output schemas not documented. LLMs cannot infer what fields get_song_details, get_album_details, get_queue, and get_library_playlists return. This forces agents to guess structure and risks parsing failures.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are classified with Risk labels (READ_ONLY, WRITE) in metadata but not exposed to LLM via MCP tool annotations. LLMs cannot distinguish safe from destructive calls without explicit hints.
List tools lack pagination guidance. get_library_playlists and get_recently_played accept 'limit' but no offset/cursor or total_count in response. Large result sets risk context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Get recently played tracks
Get full details for a song by its Apple Music catalog ID
Check if Sound is running and Apple Music is authorized
Toggle play/pause on Apple Music
Play a specific song by its Apple Music catalog ID
Search the Apple Music catalog for songs, albums, or artists
Set the playback queue to specific songs and start playing
Skip to the next track
Go back to the previous track
Error messages are generic. Handlers return 'Search error: <error>', 'Error getting song details: <error>' without recovery guidance. Per pattern:recovery-guide, errors should suggest next steps (e.g., 'Try search_catalog() first if you only have a name').
Parameter descriptions are minimal. 'Search query', 'Apple Music catalog song ID', 'Max results to return' lack context on format, constraints, or when to use. Baseline for A+ tools is 72 chars avg per param; most here are 20-40 chars.