Spotify MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTIFY_CLIENT_ID | Yes | Your Spotify application client ID | |
| SPOTIFY_REDIRECT_URI | Yes | Redirect URI for OAuth callback (e.g., http://localhost:8888/callback) | |
| SPOTIFY_CLIENT_SECRET | Yes | Your Spotify application client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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 |
|---|---|
| create_playlistA | Create a new Spotify playlist Arguments: request (PlaylistCreateRequest): - name (str): Name of the playlist to create - description (str, optional): Description of the playlist (default: "") - public (bool, optional): Whether the playlist is public (default: False) - collaborative (bool, optional): Whether the playlist is collaborative (default: False) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - playlist_id (str): ID of the created playlist - playlist_name (str): Name of the created playlist - playlist_url (str): Spotify URL of the playlist - message (str): Success message - error (str, optional): Error message if failed |
| search_artistsA | Search for artists on Spotify Arguments: request (ArtistSearchRequest): - query (str): Search query for artist name - limit (int, optional): Maximum number of results to return (default: 10, max: 50) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - artists (List[Dict]): List of artist objects containing: - id (str): Spotify artist ID - name (str): Artist name - popularity (int): Artist popularity score (0-100) - followers (int): Number of followers - genres (List[str]): List of genres - spotify_url (str): Spotify profile URL - total_found (int): Number of artists found - message (str): Success message - error (str, optional): Error message if failed |
| get_artistA | Get detailed information about an artist Arguments: artist_id (str): Spotify artist ID to get information for Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - artist (Dict): Detailed artist information containing: - id (str): Spotify artist ID - name (str): Artist name - popularity (int): Artist popularity score (0-100) - followers (int): Number of followers - genres (List[str]): List of genres - spotify_url (str): Spotify profile URL - images (List[Dict]): List of artist images with: - url (str): Image URL - height (int): Image height - width (int): Image width - message (str): Success message - error (str, optional): Error message if failed |
| get_artist_albumsA | Get albums for an artist Arguments: artist_id (str): Spotify artist ID to get albums for include_groups (str, optional): Album types to include (default: "album,single") - "album": Full albums - "single": Singles - "appears_on": Appearances on other albums - "compilation": Compilation albums limit (int, optional): Maximum number of albums to return (default: 20, max: 50) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - artist (Dict): Basic artist information: - id (str): Artist ID - name (str): Artist name - albums (List[Dict]): List of album objects containing: - id (str): Spotify album ID - name (str): Album name - album_type (str): Type of album (album, single, compilation) - release_date (str): Release date - total_tracks (int): Number of tracks - spotify_url (str): Spotify album URL - images (List[Dict]): Album cover images - total_albums (int): Number of albums found - message (str): Success message - error (str, optional): Error message if failed |
| get_artist_top_tracksA | Get top tracks for an artist Arguments: artist_id (str): Spotify artist ID to get top tracks for market (str, optional): Market/country code for track availability (default: "US") Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - artist (Dict): Information about the artist: - id (str): Artist ID - name (str): Artist name - tracks (List[Dict]): List of track objects containing: - id (str): Spotify track ID - name (str): Track name - album (str): Album name - popularity (int): Track popularity score (0-100) - duration_ms (int): Track duration in milliseconds - spotify_url (str): Spotify track URL - message (str): Success message - error (str, optional): Error message if failed |
| add_tracks_to_playlistA | Add tracks to an existing playlist Arguments: request (AddTracksRequest): - playlist_id (str): Spotify playlist ID to add tracks to - track_uris (List[str]): List of Spotify track URIs to add Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - playlist_id (str): ID of the playlist - tracks_added (int): Number of tracks added - message (str): Success message - error (str, optional): Error message if failed |
| get_user_playlistsA | Get current user's playlists Arguments: None (no parameters required) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - playlists (List[Dict]): List of playlist objects containing: - id (str): Spotify playlist ID - name (str): Playlist name - description (str): Playlist description - public (bool): Whether the playlist is public - tracks_count (int): Number of tracks in the playlist - spotify_url (str): Spotify playlist URL - total_playlists (int): Total number of playlists - message (str): Success message - error (str, optional): Error message if failed |
| get_albumA | Get detailed information about an album Arguments: album_id (str): Spotify album ID to get information for market (str, optional): Market/country code for album availability (default: "US") Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - album (Dict): Detailed album information containing: - id (str): Spotify album ID - name (str): Album name - album_type (str): Type of album (album, single, compilation) - release_date (str): Release date - total_tracks (int): Number of tracks - popularity (int): Album popularity score (0-100) - spotify_url (str): Spotify album URL - artists (List[Dict]): List of artists with: - id (str): Artist ID - name (str): Artist name - images (List[Dict]): Album cover images - genres (List[str]): List of genres - message (str): Success message - error (str, optional): Error message if failed |
| get_album_tracksA | Get tracks from an album Arguments: album_id (str): Spotify album ID to get tracks for market (str, optional): Market/country code for track availability (default: "US") limit (int, optional): Maximum number of tracks to return (default: 20, max: 50) offset (int, optional): Index of the first track to return (default: 0) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - album (Dict): Basic album information: - id (str): Album ID - name (str): Album name - tracks (List[Dict]): List of track objects containing: - id (str): Spotify track ID - name (str): Track name - track_number (int): Track number on the album - duration_ms (int): Track duration in milliseconds - spotify_url (str): Spotify track URL - artists (List[Dict]): List of artists with: - id (str): Artist ID - name (str): Artist name - total_tracks (int): Total number of tracks in the album - message (str): Success message - error (str, optional): Error message if failed |
| get_new_releasesA | Get new album releases Arguments: country (str, optional): Country code to get new releases for (default: "US") limit (int, optional): Maximum number of albums to return (default: 20, max: 50) offset (int, optional): Index of the first album to return (default: 0) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - albums (List[Dict]): List of new release albums containing: - id (str): Spotify album ID - name (str): Album name - album_type (str): Type of album (album, single, compilation) - release_date (str): Release date - total_tracks (int): Number of tracks - spotify_url (str): Spotify album URL - artists (List[Dict]): List of artists with: - id (str): Artist ID - name (str): Artist name - images (List[Dict]): Album cover images - total_albums (int): Number of albums found - message (str): Success message - error (str, optional): Error message if failed |
| get_user_top_artistsA | Get user's top artists from Spotify Arguments:
time_range (str, optional): Time period for top artists (default: "medium_term")
- "short_term": Last 4 weeks
- "medium_term": Last 6 months Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - artists (List[Dict]): List of artist objects containing: - id (str): Spotify artist ID - name (str): Artist name - popularity (int): Artist popularity score (0-100) - followers (int): Number of followers - genres (List[str]): List of genres - spotify_url (str): Spotify profile URL - images (List[Dict]): Artist images with url, height, width - time_range (str): Time range used for the query - total_artists (int): Number of artists returned - message (str): Success message - error (str, optional): Error message if failed |
| get_user_top_tracksA | Get user's top tracks from Spotify Arguments: time_range (str, optional): Time period for top tracks (default: "medium_term") - "short_term": Last 4 weeks - "medium_term": Last 6 months - "long_term": Several years limit (int, optional): Maximum number of tracks to return (default: 20, max: 50) offset (int, optional): Index of the first track to return (default: 0) Returns: Dict[str, Any]: - success (bool): Whether the operation was successful - tracks (List[Dict]): List of track objects containing: - id (str): Spotify track ID - name (str): Track name - album (Dict): Album info with id, name, images - artists (List[Dict]): List of artists with id, name - popularity (int): Track popularity score (0-100) - duration_ms (int): Track duration in milliseconds - spotify_url (str): Spotify track URL - time_range (str): Time range used for the query - total_tracks (int): Number of tracks returned - message (str): Success message - error (str, optional): Error message if failed |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/nlevy/spotify-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server