Spotify MCP Server
Provides tools for controlling Spotify playback, searching tracks, and retrieving user profile information through the Spotify API with automatic token refresh.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spotify MCP ServerSearch for top hits by Queen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Spotify MCP Server
A Model Context Protocol (MCP) server that provides Spotify integration with OAuth authorization flow based on the Model Context Protocol specification.
Files
index.ts- MCP server setup and tool registration with StreamableHTTPServerTransportspotify.ts- Spotify API service with token managementauth.ts- BetterAuth configuration with Drizzle adapterdb/- Database schema and connection using Drizzle ORMotocol (MCP) server that provides Spotify integration with OAuth authorization flow based on the Model Context Protocol specification.
Features
OAuth Authorization Flow: Implements MCP's authorization specification with Spotify OAuth
Streaming HTTP Transport: Uses MCP's StreamableHTTPServerTransport for efficient communication
Automatic Token Refresh: Handles Spotify access token expiration and refresh automatically
Simple Architecture: Clean separation between authentication, Spotify API calls, and MCP tools
Comprehensive Spotify Tools: Multiple tools for controlling Spotify playback
Available Tools
Playback Control
getCurrentlyPlaying- Get information about the currently playing trackpausePlayback- Pause Spotify playbackresumePlayback- Resume Spotify playbackskipToNext- Skip to the next trackskipToPrevious- Skip to the previous tracksetVolume- Set playback volume (currently defaults to 50%)
Track Discovery
searchTracks- Search for tracks on SpotifyplayTrack- Play specific tracks (enhanced functionality coming)
User Info
getUserProfile- Get user's Spotify profile information
Architecture
Files
index.ts- MCP server setup and tool registrationspotify.ts- Spotify API service with token managementauth.ts- Better Auth configurationdb/- Database schema and connection
Token Management
The SpotifyService class automatically handles:
Token expiry checking (with 5-minute buffer)
Automatic token refresh using refresh tokens
Database updates for new tokens
Error handling for failed refreshes
Key Features
Token Refresh: Automatically refreshes tokens before they expire
Database Integration: Uses Drizzle ORM with PostgreSQL for token storage
Error Handling: Graceful handling of API errors and token issues
Session Management: Secure session handling with Better Auth
Setup
Set environment variables:
SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secretConfigure database connection in
db/index.tsRun database migrations:
bun run drizzle-kit pushStart the server:
bun run index.ts
Usage
Navigate to
http://localhost:3000/sign-into authenticate with SpotifyUse the MCP tools through your MCP client
The server automatically handles token refresh in the background
Technical Notes
Uses BetterAuth with Drizzle adapter for OAuth flow with Spotify
Implements the MCP Authorization specification for secure authentication
Utilizes StreamableHTTPServerTransport for efficient communication
Stores tokens securely in PostgreSQL database via Drizzle ORM
Clean separation of concerns between authentication, API calls, and MCP tools
Installation
To install dependencies:
bun installTo run:
bun run index.tsThis project was created using bun init in bun v1.2.13. Bun is a fast all-in-one JavaScript runtime.
License
MIT License
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Tony-ArtZ/mcp-spotify'
If you have feedback or need assistance with the MCP directory API, please join our Discord server