A fork of the original Spotify MCP that adds smart batching and large playlist tools on top of standard playback control, search, and queue management. The enhancements let you add or remove up to 100 tracks per API call and efficiently paginate through thousand-track playlists, cutting API usage by 60-80% for bulk operations. Built on FastMCP with typed schemas, progress notifications, and destructive action confirmations. Requires a Spotify Premium account and OAuth setup through the developer dashboard. Useful when you need Claude to build or reorganize large playlists, bulk-add search results to a queue, or handle discovery workflows that would otherwise hammer the Spotify API with dozens of single-track calls.
Public tool metadata for what this MCP can expose to an agent.
track.statsGet stream count and metadata for a Spotify track. Returns title, artist, total play count, duration in ms, content rating, track number, album info, and artist info.1 paramsGet stream count and metadata for a Spotify track. Returns title, artist, total play count, duration in ms, content rating, track number, album info, and artist info.
track_idstringalbum.statsGet album statistics with per-track stream counts. Returns album name, type, release date, label, copyright, cover art, per-track stream counts and durations, and related albums.1 paramsGet album statistics with per-track stream counts. Returns album name, type, release date, label, copyright, cover art, per-track stream counts and durations, and related albums.
album_idstringartist.statsGet artist statistics including monthly listeners and top tracks. Returns monthly listeners, follower count, world rank, top 5 listener cities, top 10 tracks with stream counts, biography, external links, albums, singles, and verified status.1 paramsGet artist statistics including monthly listeners and top tracks. Returns monthly listeners, follower count, world rank, top 5 listener cities, top 10 tracks with stream counts, biography, external links, albums, singles, and verified status.
artist_idstringsearchSearch Spotify for artists, albums, tracks, and playlists. Returns matching results across all types. Track results include current stream counts.1 paramsSearch Spotify for artists, albums, tracks, and playlists. Returns matching results across all types. Track results include current stream counts.
qstringartist.getGet metadata for one or more artists in a single request. Returns artist names, images, genres, and follower counts.1 paramsGet metadata for one or more artists in a single request. Returns artist names, images, genres, and follower counts.
idsstringartist.overviewGet overview data for an artist. Returns detailed artist profile including biography, images, top tracks, discography summary, and related artists.1 paramsGet overview data for an artist. Returns detailed artist profile including biography, images, top tracks, discography summary, and related artists.
artist_idstringartist.albumsGet all albums in an artist's discography, paginated. Returns album names, IDs, types, release dates, and cover art.3 paramsGet all albums in an artist's discography, paginated. Returns album names, IDs, types, release dates, and cover art.
limitintegeroffsetintegerartist_idstringartist.singlesGet all singles in an artist's discography, paginated. Returns single names, IDs, release dates, and cover art.3 paramsGet all singles in an artist's discography, paginated. Returns single names, IDs, release dates, and cover art.
limitintegeroffsetintegerartist_idstringartist.relatedGet artists similar to the given artist. Returns a list of related artists with their names, IDs, images, and follower counts.1 paramsGet artists similar to the given artist. Returns a list of related artists with their names, IDs, images, and follower counts.
artist_idstringalbum.getGet metadata for one or more albums in a single request. Returns album names, artists, release dates, track listings, and cover art.1 paramsGet metadata for one or more albums in a single request. Returns album names, artists, release dates, track listings, and cover art.
idsstringtrack.getGet metadata for one or more tracks in a single request. Returns track names, artists, albums, durations, and preview URLs.1 paramsGet metadata for one or more tracks in a single request. Returns track names, artists, albums, durations, and preview URLs.
idsstringtrack.previewGet preview audio URL for a Spotify track. Returns a short preview URL that can be used to listen to a snippet of the track.1 paramsGet preview audio URL for a Spotify track. Returns a short preview URL that can be used to listen to a snippet of the track.
track_idstringplaylist.getGet metadata for a Spotify playlist. Returns playlist name, description, owner, follower count, and cover image.1 paramsGet metadata for a Spotify playlist. Returns playlist name, description, owner, follower count, and cover image.
playlist_idstringplaylist.tracksGet tracks in a Spotify playlist, paginated. Returns track names, artists, albums, durations, and add dates.3 paramsGet tracks in a Spotify playlist, paginated. Returns track names, artists, albums, durations, and add dates.
limitintegeroffsetintegerplaylist_idstringplaylist.permissionsGet permissions for a Spotify playlist. Returns whether the playlist is collaborative, public, and who can modify it.1 paramsGet permissions for a Spotify playlist. Returns whether the playlist is collaborative, public, and who can modify it.
playlist_idstringmcp-name: io.github.jamiew/spotify-mcp
MCP server connecting Claude with Spotify. This fork of varunneal/spotify-mcp adds smart-batching tools and advanced playlist features that optimize API usage.
Requires a Spotify Premium account and uv >= 0.54.
http://127.0.0.1:8888 — it must match exactly what you set below.Every client runs the same command — uvx spotify-mcp-jamiew — with your three Spotify env vars. No clone, no local path.
Standard config (works in most clients):
{
"mcpServers": {
"spotify": {
"command": "uvx",
"args": ["spotify-mcp-jamiew"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888"
}
}
}
}
claude mcp add spotify \
-e SPOTIFY_CLIENT_ID=your_client_id \
-e SPOTIFY_CLIENT_SECRET=your_client_secret \
-e SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888 \
-- uvx spotify-mcp-jamiew
Add -s user to install it globally across all projects. Verify with claude mcp list.
Add the standard config above to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then fully restart Claude Desktop.
codex mcp add spotify \
--env SPOTIFY_CLIENT_ID=your_client_id \
--env SPOTIFY_CLIENT_SECRET=your_client_secret \
--env SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888 \
-- uvx spotify-mcp-jamiew
Or add to ~/.codex/config.toml:
[mcp_servers.spotify]
command = "uvx"
args = ["spotify-mcp-jamiew"]
[mcp_servers.spotify.env]
SPOTIFY_CLIENT_ID = "your_client_id"
SPOTIFY_CLIENT_SECRET = "your_client_secret"
SPOTIFY_REDIRECT_URI = "http://127.0.0.1:8888"
Add to ~/.hermes/config.yaml, then run /reload-mcp (or restart Hermes):
mcp_servers:
spotify:
command: uvx
args: [spotify-mcp-jamiew]
env:
SPOTIFY_CLIENT_ID: your_client_id
SPOTIFY_CLIENT_SECRET: your_client_secret
SPOTIFY_REDIRECT_URI: http://127.0.0.1:8888
Add the standard config above to ~/.openclaw/openclaw.json (under mcpServers), then openclaw gateway restart.
Most MCP clients read a JSON file with an mcpServers block — drop the standard config above into it.
Using something else? Paste this to your agent:
Install the spotify-mcp MCP server from https://github.com/jamiew/spotify-mcp — it's on PyPI as
spotify-mcp-jamiew, run it withuvx spotify-mcp-jamiew, and set env varsSPOTIFY_CLIENT_ID,SPOTIFY_CLIENT_SECRET, andSPOTIFY_REDIRECT_URI=http://127.0.0.1:8888.
git clone https://github.com/jamiew/spotify-mcp.git
cd spotify-mcp
uv sync
Then point your client at the checkout:
{
"mcpServers": {
"spotify": {
"command": "uv",
"args": ["--directory", "/path/to/spotify-mcp", "run", "spotify-mcp"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id",
"SPOTIFY_CLIENT_SECRET": "your_client_secret",
"SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888"
}
}
}
}
To run the latest unpublished commit without cloning: uvx --from git+https://github.com/jamiew/spotify-mcp.git spotify-mcp.
On first use the server opens a browser for Spotify OAuth; the token is cached locally for later runs.
Built with the FastMCP framework — focused single-purpose tools spanning playback, search, queue, and playlist management, with type-safe APIs and comprehensive test coverage.
Debug with MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/spotify_mcp run spotify-mcp
SPOTIFY_CLIENT_ID*secretSpotify app Client ID from developer.spotify.com
SPOTIFY_CLIENT_SECRET*secretSpotify app Client Secret from developer.spotify.com
SPOTIFY_REDIRECT_URI*default: http://127.0.0.1:8888OAuth redirect URI registered in your Spotify app
io.github.socialapishub/social-media-api
io.github.xpaysh/social-media
com.thenextgennexus/youtube-media-mcp-server
io.github.ludmila-omlopes/youtube-video-analyzer
csoai-org/social-media-ai-mcp
com.ezbizservices/social-media