Spotify MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_CLIENT_ID | Yes | Your Spotify app Client ID from the Developer Dashboard. | |
| SPOTIFY_MCP_CACHE | No | Path to cache OAuth tokens. Default: ~/.spotify-mcp/token.json | |
| SPOTIFY_REDIRECT_URI | No | Redirect URI for OAuth. Must match exactly one in your app. Default: http://127.0.0.1:8888/callback | |
| SPOTIFY_CLIENT_SECRET | No | Optional. If set, uses classic Authorization Code flow instead of PKCE. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authenticateA | Sign in to Spotify via OAuth (opens a browser window). Run this once before using the other tools. Tokens are cached locally and refreshed automatically, so you normally only need to authenticate a single time per machine. Args: force: If true, force Spotify to re-show the consent screen (useful to switch accounts or re-grant scopes). |
| auth_statusA | Report whether the server is currently authenticated with Spotify. |
| get_current_userA | Get the profile of the signed-in Spotify user (id, name, country, etc.). |
| searchA | Search the Spotify catalog. Args:
query: Search text. Supports Spotify field filters, e.g.
|
| get_trackA | Get detailed information about a single song. Args:
track_id: A Spotify track ID, |
| list_my_playlistsA | List the playlists owned or followed by the signed-in user. Args: limit: Number of playlists to return (1-50). Defaults to 20. offset: Index to start from, for paging through large libraries. |
| get_playlistA | Get a playlist's details and its tracks. Args:
playlist_id: A Spotify playlist ID, |
| create_playlistA | Create a new playlist for the signed-in user. Args: name: The playlist name. public: Whether the playlist is public. Defaults to false (private). description: Optional playlist description. collaborative: If true, others can edit it (forces the playlist private). track_uris: Optional list of track IDs/URIs/URLs to add on creation. |
| add_tracks_to_playlistA | Add one or more songs to an existing playlist. Args:
playlist_id: A Spotify playlist ID, URI, or URL.
track_uris: List of track IDs, |
| get_currently_playingA | Show the track currently playing on the user's Spotify account (if any). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/abenke/spotify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server