A Model Context Protocol (MCP) server for bulk Spotify operations - batch playlist creation, library exports, and large-scale library management. What makes this different from other Spotify MCPs? - Confidence scoring - Batch searches return HIGH/MEDIUM/LOW confidence for each match - Human-in-the-loop - Uncertain matches are exported for review, then re-imported - Bulk operations - Handle 500+ so
Add this skill
npx mdskills install khglynn/spotify-bulk-actions-mcpComprehensive Spotify bulk operations server with excellent tool variety and human-in-the-loop workflows

A Model Context Protocol (MCP) server for bulk Spotify operations - batch playlist creation, library exports, and large-scale library management.
What makes this different from other Spotify MCPs?
Made cause I can't not have headphones on, support my 80k+ pocast subscriptions.
| Directory | Link |
|---|---|
| PyPI | pypi.org/project/spotify-bulk-actions-mcp |
| mcp.so | mcp.so/server/spotify-bulk-actions-mcp |
| awesome-mcp-servers | PR #1541 (pending) |
| Project | Description | Links |
|---|---|---|
| recordOS | Which albums do you love most? A visual album collection app | Live · Repo |
| Festival Navigator | Navigate multi-day festivals with friends | Repo |
Coming soon: Switched On Pop, This American Life, and more podcast playlists
Library Analysis:
Bulk Playlist Creation:
# Clone the repo
git clone https://github.com/khglynn/spotify-bulk-actions-mcp.git
cd spotify-bulk-actions-mcp
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package
pip install -e .
# Copy env example and add your credentials
cp .env.example .env
# Edit .env with your SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET
Also on PyPI:
pip install spotify-bulk-actions-mcp- but you'll still need local.envand auth setup.
This opens a browser for you to log in:
python setup_auth.py
After login, your token is saved locally in .spotify_cache/.
source venv/bin/activate
python -c "from src.utils.auth import is_authenticated; print('Auth OK!' if is_authenticated() else 'Not authenticated')"
Add this to your Claude Code settings (~/.claude/settings.local.json):
{
"mcpServers": {
"spotify": {
"command": "/path/to/spotify-bulk-actions-mcp/venv/bin/python",
"args": ["/path/to/spotify-bulk-actions-mcp/src/server.py"]
}
}
}
Restart Claude Code after adding this.
| Tool | Description |
|---|---|
check_auth_status | Verify Spotify auth is working |
get_followed_artists | Get all artists you follow |
get_saved_tracks | Get all your liked songs |
get_library_artists | Artists from saved songs, ranked by count |
get_albums_by_song_count | Albums with N+ saved songs |
export_library_summary | Complete library export |
| Tool | Description |
|---|---|
search_track | Search for a single track |
search_track_fuzzy | Broader search when exact fails |
batch_search_tracks | Search many tracks with confidence scores |
get_track_preview_url | Get 30-second preview URL |
| Tool | Description |
|---|---|
create_playlist | Create a new playlist |
add_tracks_to_playlist | Add tracks to existing playlist |
import_and_create_playlist | Full CSV → playlist workflow |
create_playlist_from_search_results | Create from batch search |
add_reviewed_tracks | Add reviewed/corrected tracks |
get_playlist_info | Get playlist details |
| Tool | Description |
|---|---|
parse_song_list_csv | Validate a song CSV |
export_review_csv | Export uncertain matches for review |
Ask Claude:
"What artists do I have the most saved songs from?"
Claude will use get_library_artists and show you.
Ask Claude:
"Find albums where I have 6 or more saved songs"
Claude will use get_albums_by_song_count with min_songs=6.
title,artist
Bohemian Rhapsody,Queen
Hotel California,Eagles
Billie Jean,Michael Jackson
"Create a playlist called 'My Mix' from this CSV: [paste CSV]"
Claude will:
For large lists (500+ songs):
batch_search_tracks with your song listexport_review_csv to get uncertain matchesadd_reviewed_tracks to add your correctionsThe server handles Spotify's rate limits automatically:
For 10k songs, expect the initial library fetch to take 2-3 minutes.
| Location | Purpose |
|---|---|
.env | Your Spotify credentials (gitignored) |
.spotify_cache/ | Auth tokens and cached data (gitignored) |
src/server.py | Main MCP server |
src/tools/ | Tool implementations |
"Not authenticated" error:
python setup_auth.py
Rate limit errors: Wait a few minutes and try again. The server will auto-retry.
Token expired:
The server auto-refreshes tokens. If issues persist, re-run setup_auth.py.
.env (gitignored, never committed).spotify_cache/.env or token filesMIT
Made cause I can't not have headphones on. If this helps you, buy me a coffee!
Install via CLI
npx mdskills install khglynn/spotify-bulk-actions-mcpSpotify Bulk Actions MCP is a free, open-source AI agent skill. A Model Context Protocol (MCP) server for bulk Spotify operations - batch playlist creation, library exports, and large-scale library management. What makes this different from other Spotify MCPs? - Confidence scoring - Batch searches return HIGH/MEDIUM/LOW confidence for each match - Human-in-the-loop - Uncertain matches are exported for review, then re-imported - Bulk operations - Handle 500+ so
Install Spotify Bulk Actions MCP with a single command:
npx mdskills install khglynn/spotify-bulk-actions-mcpThis downloads the skill files into your project and your AI agent picks them up automatically.
Spotify Bulk Actions MCP works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.