io.github.khglynn/spotify-bulk-actions-mcp
Allows batch playlist creation, library exports, and large-scale library management with confidence scoring for track matching and human-in-the-loop review.
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., "@io.github.khglynn/spotify-bulk-actions-mcpimport CSV of podcast songs and create playlist"
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 Bulk Actions MCP
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+ songs efficiently with rate limiting built-in
Library exports - Export your complete library data
Podcast playlist focused - Built specifically for importing song lists from podcast show notes
Support This Project
Made cause I can't not have headphones on, support my 80k+ pocast subscriptions.
Listed On
Directory | Link |
PyPI | |
mcp.so | |
awesome-mcp-servers | PR #1541 (pending) |
Projects I've Built With This
Project | Description | Links |
recordOS | Which albums do you love most? A visual album collection app | |
Festival Navigator | Navigate multi-day festivals with friends |
Playlists Maintained With This MCP
Coming soon: Switched On Pop, This American Life, and more podcast playlists
What This Does
Library Analysis:
Get all your followed artists
Get all saved/liked songs (handles libraries up to 10k songs)
Find unique artists from your library ranked by song count
Find albums where you have 6+ saved songs (great for vinyl shopping!)
Export your complete library summary
Bulk Playlist Creation:
Import song lists from CSV files (for podcast playlists, etc.)
Batch search with confidence scoring (HIGH/MEDIUM/LOW)
Automatic handling of uncertain matches for human review
Create playlists from search results
Quick Start
1. Prerequisites
Python 3.10+
A Spotify account
Spotify Developer credentials (get them here)
2. Clone & Setup
# 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_SECRETAlso on PyPI:
pip install spotify-bulk-actions-mcp- but you'll still need local.envand auth setup.
3. Authenticate with Spotify (One-Time)
This opens a browser for you to log in:
python setup_auth.pyAfter login, your token is saved locally in .spotify_cache/.
4. Test It Works
source venv/bin/activate
python -c "from src.utils.auth import is_authenticated; print('Auth OK!' if is_authenticated() else 'Not authenticated')"5. Connect to Claude Code
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.
Available Tools (18)
Library Analysis
Tool | Description |
| Verify Spotify auth is working |
| Get all artists you follow |
| Get all your liked songs |
| Artists from saved songs, ranked by count |
| Albums with N+ saved songs |
| Complete library export |
Search
Tool | Description |
| Search for a single track |
| Broader search when exact fails |
| Search many tracks with confidence scores |
| Get 30-second preview URL |
Playlists
Tool | Description |
| Create a new playlist |
| Add tracks to existing playlist |
| Full CSV → playlist workflow |
| Create from batch search |
| Add reviewed/corrected tracks |
| Get playlist details |
Utilities
Tool | Description |
| Validate a song CSV |
| Export uncertain matches for review |
Example Workflows
Get Your Library Stats
Ask Claude:
"What artists do I have the most saved songs from?"
Claude will use get_library_artists and show you.
Find Albums for Vinyl
Ask Claude:
"Find albums where I have 6 or more saved songs"
Claude will use get_albums_by_song_count with min_songs=6.
Create Playlist from Song List
Create a CSV file:
title,artist
Bohemian Rhapsody,Queen
Hotel California,Eagles
Billie Jean,Michael JacksonAsk Claude:
"Create a playlist called 'My Mix' from this CSV: [paste CSV]"
Claude will:
Parse the CSV
Search each song with confidence scoring
Create the playlist with high-confidence matches
Show you uncertain matches to review
Bulk Podcast Playlist
For large lists (500+ songs):
Ask Claude to use
batch_search_trackswith your song listReview the results (HIGH goes in automatically)
Use
export_review_csvto get uncertain matchesReview/correct in a spreadsheet
Use
add_reviewed_tracksto add your corrections
Rate Limits
The server handles Spotify's rate limits automatically:
Small delays between API calls
Automatic retry on 429 errors
Caching to reduce repeat calls
For 10k songs, expect the initial library fetch to take 2-3 minutes.
Files & Data
Location | Purpose |
| Your Spotify credentials (gitignored) |
| Auth tokens and cached data (gitignored) |
| Main MCP server |
| Tool implementations |
Troubleshooting
"Not authenticated" error:
python setup_auth.pyRate 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.
Security Notes
Your credentials are in
.env(gitignored, never committed)Auth tokens are stored locally in
.spotify_cache/Never share your
.envor token filesIf credentials are exposed, rotate them in Spotify Dashboard
License
MIT
Made cause I can't not have headphones on. If this helps you, buy me a coffee!
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/khglynn/spotify-bulk-actions-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server