Spotify MCP Server
Provides tools for controlling Spotify playback, searching tracks, and retrieving user profile information through the Spotify API with automatic token refresh.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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
Related MCP server: spotify-mcp-server
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
Related MCP Connectors
Spotify MCP — Web API via client_credentials OAuth
Full Spotify Web API coverage - albums, artists, playlists, player controls, and more.
One OAuth connector for your team's remote MCP servers, with Tool Packs, guardrails and logs.
Sonos MCP server: control your Sonos speakers from any MCP client. Play songs, artists and playlists, set volume, group rooms, move music to another room, switch to TV, spoken announcements and reminders. 27 tools, English and Chinese. Works through the official Sonos cloud, so there is no home bridge to install; sign in with OAuth. Requires the free ZoneFoundry iOS app.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Spotify through MCP, providing tools for searching tracks, artists, albums, playlists, and accessing user data like top tracks and recently played.-
- FlicenseAqualityDmaintenanceExposes Spotify controls as MCP tools for playback, playlist management, and AI playlist generation; includes a web app and supports multi-user profiles.14-
- FlicenseNot gradedqualityCmaintenanceEnables connecting a Spotify account to remote MCP clients to search music, manage libraries and playlists, and control playback with per-user OAuth authorization.-
- AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible AI assistants to control Spotify Premium accounts by searching music, managing playback and devices, handling queues, creating and editing playlists, and browsing or modifying the library.MIT