{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"smithery_alexschardin-mcp-spotify","slug":"alexschardin-mcp-spotify","name":"mcp-spotify","type":"mcp","url":"https://github.com/AlexSchardin/mcp-spotify","page_url":"https://unfragile.ai/alexschardin-mcp-spotify","categories":["mcp-servers"],"tags":["mcp","model-context-protocol","smithery:AlexSchardin/mcp-spotify"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"smithery_alexschardin-mcp-spotify__cap_0","uri":"capability://tool.use.integration.spotify.playback.control.via.mcp.protocol","name":"spotify playback control via mcp protocol","description":"Enables AI agents and LLM-based applications to control Spotify playback (play, pause, skip, volume adjustment) through the Model Context Protocol, which standardizes tool calling between AI clients and servers. The MCP server acts as a bridge that translates tool invocations from Claude or other MCP-compatible clients into Spotify Web API calls, handling OAuth2 authentication and session management transparently.","intents":["I want my AI agent to pause music when a user asks without leaving the conversation context","I need to build a voice assistant that can control Spotify playback as one of its capabilities","I want to integrate Spotify control into a multi-tool AI workflow without writing custom API integration code"],"best_for":["AI agent developers building conversational music control interfaces","Teams integrating Spotify into Claude-powered applications","Builders prototyping voice assistants with music playback capabilities"],"limitations":["Requires active Spotify Premium account — free tier accounts cannot use Web API playback controls","MCP protocol overhead adds ~100-200ms latency per command compared to direct REST API calls","No support for queue manipulation or playlist reordering — only basic playback state control","Depends on Spotify Web API rate limits (429 responses when exceeded)"],"requires":["Spotify Premium account with valid OAuth2 credentials","MCP-compatible client (Claude Desktop, or custom MCP client implementation)","Network connectivity to Spotify Web API endpoints","Node.js 16+ or Python 3.8+ (depending on server implementation language)"],"input_types":["tool invocation parameters (play, pause, skip, volume level as integers 0-100)","device ID string for targeting specific Spotify playback device"],"output_types":["JSON structured responses confirming playback state changes","Error messages with Spotify API error codes and descriptions"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_alexschardin-mcp-spotify__cap_1","uri":"capability://search.retrieval.spotify.track.and.artist.search.via.semantic.tool.calling","name":"spotify track and artist search via semantic tool calling","description":"Allows AI agents to search Spotify's catalog for tracks, artists, and playlists by translating natural language queries into structured Spotify Search API calls through MCP tool invocations. The server accepts free-form search strings and optional filters (artist, album, type) and returns paginated results with metadata (track duration, popularity, preview URLs, artist info).","intents":["I want my AI assistant to find a song when a user describes it in natural language without knowing the exact title","I need to build a recommendation engine that searches Spotify's catalog based on user preferences","I want to let users discover artists and playlists through conversational queries"],"best_for":["Music discovery applications powered by AI agents","Conversational music search interfaces (voice or text-based)","Recommendation systems that need to validate track availability before suggesting"],"limitations":["Search results limited to 50 items per query — pagination requires multiple tool calls","No fuzzy matching for misspelled artist/track names — relies on Spotify's built-in search algorithm","Preview URLs (30-second clips) may not be available for all tracks","Search API rate-limited to 180 requests per minute per user"],"requires":["Spotify API credentials (Client ID and Client Secret for server-to-server auth)","MCP-compatible client with tool-calling support","Internet connectivity to Spotify Search API"],"input_types":["search query string (e.g., 'lo-fi hip hop beats')","optional filter parameters: artist name, album name, track type"],"output_types":["JSON array of track objects with: track name, artist(s), album, duration_ms, popularity score, preview_url, spotify_uri","Artist objects with: name, genres, popularity, follower count, artist_uri"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_alexschardin-mcp-spotify__cap_2","uri":"capability://memory.knowledge.current.playback.state.retrieval.and.device.discovery","name":"current playback state retrieval and device discovery","description":"Provides AI agents with real-time visibility into the user's current Spotify playback state (currently playing track, progress, device info, repeat/shuffle modes) and available playback devices through MCP tool calls. The server queries Spotify's Currently Playing and Available Devices endpoints, caching results briefly to reduce API calls while maintaining freshness for agent decision-making.","intents":["I want my AI agent to know what's currently playing before deciding whether to skip or pause","I need to detect which device the user is listening on so I can target playback commands to the right device","I want to build a smart assistant that understands playback context (e.g., 'play the next song' vs 'resume from where we left off')"],"best_for":["Context-aware AI music assistants that need playback state before taking action","Multi-device Spotify setups where agents must target specific speakers or devices","Agents that need to understand user listening patterns for recommendations"],"limitations":["Currently playing endpoint returns null if no active playback session exists — requires error handling","Device list includes inactive devices; agents must filter by 'is_active' flag to find current playback target","Playback progress updates with ~1-2 second latency due to API caching","No historical playback data — only current state snapshot available"],"requires":["Spotify Premium account with active playback session (or device list will be empty)","Valid OAuth2 token with 'user-read-playback-state' scope","MCP client with tool-calling capability"],"input_types":["no parameters required — retrieves user's current state"],"output_types":["JSON object containing: current_track (name, artist, duration, progress_ms), device_id, is_playing, repeat_state, shuffle_state","JSON array of available devices with: device_id, device_name, device_type, is_active, volume_percent"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_alexschardin-mcp-spotify__cap_3","uri":"capability://memory.knowledge.user.profile.and.saved.tracks.retrieval","name":"user profile and saved tracks retrieval","description":"Enables AI agents to access authenticated user's Spotify profile information (display name, follower count, subscription tier) and retrieve their saved/liked tracks library through MCP tool calls. The server implements pagination for the saved tracks endpoint, allowing agents to browse the user's music library and make recommendations based on their existing preferences.","intents":["I want my AI agent to personalize recommendations based on what tracks the user has already saved","I need to display the user's profile information in a conversational context (e.g., 'Hi [name], you have [X] saved tracks')","I want to build a playlist generator that analyzes the user's saved tracks to understand their taste"],"best_for":["Personalized music recommendation agents","User profile display in conversational AI interfaces","Playlist generation tools that analyze user listening history"],"limitations":["Saved tracks endpoint returns max 50 items per request — full library retrieval requires multiple paginated calls","No access to play history or recently played tracks — only explicitly saved/liked tracks","User profile data is read-only — agents cannot modify user settings or preferences","Saved tracks list may be very large (thousands of items) — full retrieval can be slow and expensive in API quota"],"requires":["Spotify user account with OAuth2 authentication","MCP client with tool-calling support","OAuth2 token with 'user-library-read' and 'user-read-private' scopes"],"input_types":["optional pagination parameters: limit (1-50), offset (for cursor-based pagination)"],"output_types":["User profile JSON: display_name, external_urls, followers, images, subscription_level","Paginated saved tracks array with: track_id, track_name, artist(s), album, added_at timestamp, popularity"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_alexschardin-mcp-spotify__cap_4","uri":"capability://tool.use.integration.mcp.protocol.server.implementation.with.oauth2.flow","name":"mcp protocol server implementation with oauth2 flow","description":"Implements a complete MCP server that handles the Model Context Protocol handshake, tool schema registration, and request/response marshaling for all Spotify capabilities. The server manages OAuth2 authentication flows (authorization code grant), token refresh, and secure credential storage, exposing Spotify operations as standardized MCP tools that Claude and other MCP clients can discover and invoke.","intents":["I want to deploy a Spotify integration that works with Claude without writing MCP protocol boilerplate","I need to handle OAuth2 authentication securely so users can authorize Spotify access without sharing credentials","I want to expose Spotify as a tool in my MCP client with proper schema validation and error handling"],"best_for":["Developers integrating Spotify into Claude-powered applications","Teams building MCP servers and needing a reference implementation","Builders who want to avoid implementing MCP protocol details from scratch"],"limitations":["MCP protocol adds ~100-200ms overhead per tool call compared to direct API calls","OAuth2 token refresh requires network round-trip — expired tokens cause brief delays","Server must be deployed and accessible to MCP client (local or remote)","No built-in persistence for user sessions — tokens stored in memory or simple file storage (not production-grade)"],"requires":["Spotify Developer account with registered application (Client ID and Secret)","Node.js 16+ or Python 3.8+ runtime","MCP-compatible client (Claude Desktop, custom implementation, etc.)","Network connectivity between client and server"],"input_types":["MCP protocol messages (initialize, call_tool, etc.)","OAuth2 authorization code from Spotify redirect URI"],"output_types":["MCP protocol responses with tool results","OAuth2 access tokens and refresh tokens","Tool schema definitions in JSON format"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":27,"verified":false,"data_access_risk":"high","permissions":["Spotify Premium account with valid OAuth2 credentials","MCP-compatible client (Claude Desktop, or custom MCP client implementation)","Network connectivity to Spotify Web API endpoints","Node.js 16+ or Python 3.8+ (depending on server implementation language)","Spotify API credentials (Client ID and Client Secret for server-to-server auth)","MCP-compatible client with tool-calling support","Internet connectivity to Spotify Search API","Spotify Premium account with active playback session (or device list will be empty)","Valid OAuth2 token with 'user-read-playback-state' scope","MCP client with tool-calling capability"],"failure_modes":["Requires active Spotify Premium account — free tier accounts cannot use Web API playback controls","MCP protocol overhead adds ~100-200ms latency per command compared to direct REST API calls","No support for queue manipulation or playlist reordering — only basic playback state control","Depends on Spotify Web API rate limits (429 responses when exceeded)","Search results limited to 50 items per query — pagination requires multiple tool calls","No fuzzy matching for misspelled artist/track names — relies on Spotify's built-in search algorithm","Preview URLs (30-second clips) may not be available for all tracks","Search API rate-limited to 180 requests per minute per user","Currently playing endpoint returns null if no active playback session exists — requires error handling","Device list includes inactive devices; agents must filter by 'is_active' flag to find current playback target","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.2,"ecosystem":0.48999999999999994,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:25.635Z","last_scraped_at":"2026-05-03T15:19:33.056Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=alexschardin-mcp-spotify","compare_url":"https://unfragile.ai/compare?artifact=alexschardin-mcp-spotify"}},"signature":"l3+7e0TraxXUA9Jgj4irTpC9QGdv6rah37gMXT2rSwAW3y7hpzWfjvPDBEwRxz94LO05O21c/ZAab9aZppwFBQ==","signedAt":"2026-06-20T17:45:11.789Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/alexschardin-mcp-spotify","artifact":"https://unfragile.ai/alexschardin-mcp-spotify","verify":"https://unfragile.ai/api/v1/verify?slug=alexschardin-mcp-spotify","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}