Spotify Bulk Actions Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Spotify Bulk Actions Mcp (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="center"> <img src="logo.png" alt="Spotify Bulk Actions MCP" width="200"> </p>
<!-- mcp-name: io.github.khglynn/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?
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_SECRETAlso 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.pyAfter 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.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.
.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!
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.