Context7
Up-to-date docs for AI agents
Beschreibung vom Entwickler (englisches Original)
Spotify Web API MCP: playback, library, playlists, search, podcasts. Not affiliated with Spotify.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
SPOTIFY_CLIENT_IDDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"-y",
"@novalux12/spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add spotify --env SPOTIFY_CLIENT_ID=your-value -- npx -y @novalux12/spotify-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": [
"-y",
"@novalux12/spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"spotify": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@novalux12/spotify-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto NovaLux12 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: SPOTIFY_CLIENT_ID
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (3.1.1) kam vor 19 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Context7, Codebase Memory, Exa
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Spotify Web API MCP: playback, library, playlists, search, podcasts. Not affiliated with Spotify.
A broad Spotify Web API tool surface, plus extras most servers skip. Registration-gated wrappers are explained rather than hidden; see Registration-gated endpoints for the generated list.
What you get by default, and what to do about the rest. A server started with no environment registers a curated surface — search, playback, playlists, library, following — sized so the tool list does not dominate the context window before you have typed anything. SPOTIFY_MCP_TOOLSETS=all registers the entire registry instead, and the stats.fm tools are opt-in with SPOTIFY_MCP_STATSFM=1. Both are one line in docs/configuration.md.
A server started with no SPOTIFY_MCP_TOOLSETS registers 131 tools (150,111 bytes of schema) — the curated default surface (#889). SPOTIFY_MCP_TOOLSETS=all registers all 562 tools, along with 17 fixed resources, 28 resource templates, and 14 prompts. Toolsets and production gates can trim a configured host further; both figures describe a real production tools/list after finalizers.
3.0 was the release where the open issue list went to zero — every epic, every issue under it, every contradiction we turned up auditing ourselves. Most of that backlog was never "bugs" in the crashing sense; it was places where this server reported a value it had not actually checked, which is the only kind of wrong that is genuinely dangerous.
It also *removed* tools, because Spotify deleted the endpoints underneath them in February 2026 — including artist follows, which have no migration target at all.
→ [Read the 3.0 roadmap](docs/v3-roadmap.md)
### 🤖 Paste this to your agent
Copy the block below into Claude Code, Cursor, OpenClaw, or any coding agent — it will set SpotifyMCP up for you.
⚠️ Never paste your Spotify credentials into a chat. Spotify's Developer Terms treat the Client ID as a credential: §VI.1.1 groups "I.D.s, client I.D.s, keys, passwords, security codes, or tokens" together as *Security Codes*, §VI.1.3 forbids disclosing them to any other party, and §VI.1.4 makes you responsible for their confidentiality. Anything you type into a conversation is retained by the model provider, written to shell history, and carried in the agent's context window. The Client ID is the only credential this server needs, and it is a *Security Code* rather than a public identifier — treat it like a password.
`
Set up the Spotify MCP server from https://github.com/NovaLux12/spotify-mcp-server.
1. Walk me through creating a Spotify app at https://developer.spotify.com/dashboard
with redirect URI http://127.0.0.1:8888/callback. Point me at where the dashboard
shows the Client ID, then stop — I will copy it myself.
2. Clone and build:
git clone https://github.com/NovaLux12/spotify-mcp-server.git
cd spotify-mcp-server && npm ci && npm run build
3. Show me which file my MCP host reads server environment from. The host's server
config is the one that always works; a local .env is read only when you launch
through this repo's npm run dev or npm start, which pass --env-file-if-exists
on Node >=22.9 — the published binary does not read it. Print the exact line to
add. I will type the Client ID in myself. Do not ask me for it and never echo
it back.
4. Start the server and run the auth command yourself, then finish the browser login
when it opens. This server uses PKCE, so there is no client secret and no
credential to fetch beyond the Client ID.
5. Verify with the read-only spotify_doctor tool and report its rows.
`
| Complete | Playback, search, catalog, library, playlists, following, plus extras like duplicate cleanup, M3U/CSV import-export, podcast sessions, snapshot diffing, listening analytics, market checks, stats.fm taste reads, and taste composite briefs, playlists, and reports. |
| Safe | dry_run previews on writes, receipts that prove what landed, human confirmation for bulk deletes, and READONLY to hide write-capable modules. |
| Honest about the surface | Tools that turn your listening history into derived metrics — hourly histograms, weekday profiles, discovery ratios — are off unless you ask for them with SPOTIFY_MCP_EXPERIMENTAL_ANALYTICS=1, because Spotify's Developer Policy Sec. III.13 prohibits building derived listenership metrics. The rest of the analytics surface, which re-presents your own data, is always on. See docs/compliance.md. |
| Honest | No tool claims to work when it cannot. Gated endpoints keep their wrappers, read replacements where one exists, and explain the 403 in plain English instead of crashing — see Registration-gated endpoints, generated from src/gating.ts. |
| Polished | Paginated (up to 500), podcasts first-class, device-aware playback, spotify_doctor self-diagnosis, real test suite. |
Spotify Developer Dashboard → Create app → add this Redirect URI exactly:
http://127.0.0.1:8888/callback
Copy the Client ID.
SPOTIFY_CLIENT_ID=your_client_id_here npx -y @novalux12/spotify-mcp@latest auth
Opens a browser, saves tokens to ~/.spotify-mcp/tokens.json, auto-refreshes after.
Windows & headless
Windows (Command Prompt):
set SPOTIFY_CLIENT_ID=your_client_id_here && npx -y @novalux12/spotify-mcp@latest auth
Windows (PowerShell):
$env:SPOTIFY_CLIENT_ID="your_client_id_here"; npx -y @novalux12/spotify-mcp@latest auth
Windows is supported for install and everyday use, and is not covered by CI.
The commands above are the supported path, but the test suite runs on Linux
only, so a Windows-specific regression would not be caught before release.
See docs/platform-support.md for exactly what is
and is not verified there, and what the known gaps are.
Headless / remote host:
SPOTIFY_HEADLESS=1 SPOTIFY_CLIENT_ID=your_client_id_here npx -y @novalux12/spotify-mcp@latest auth
Check: npx -y @novalux12/spotify-mcp@latest doctor — exit 0 means you're good.
{
"mcpServers": { "spotify": { "command": "npx", "args": ["-y", "@novalux12/spotify-mcp@latest"], "env": { "SPOTIFY_CLIENT_ID": "your_client_id_here" } } } }
Restart the host. A hammer icon in the chat input means it's connected.
Claude Code · OpenClaw · other hosts
Claude Code (no JSON editing):
claude mcp add spotify -- npx -y @novalux12/spotify-mcp@latest
export SPOTIFY_CLIENT_ID=your_client_id_here
OpenClaw — ~/.openclaw/openclaw.json → mcp.servers:
"spotify": {
"command": "node", "args": ["/path/to/spotify-mcp-server/dist/index.js"], "cwd": "/path/to/spotify-mcp-server", "env": { "SPOTIFY_CLIENT_ID": "your_client_id_here" } }
Any spec-compliant host works — same command/args/env shape under mcpServers or servers. If the host can't pass env vars, authenticate once beforehand; the token cache persists.
All via env vars — no config file. Only SPOTIFY_CLIENT_ID is required.
| Variable | Example | Purpose |
|---|---|---|
SPOTIFY_MCP_TOOLSETS | unset | Trim by group for hosts that cap tool counts. Unset registers the curated default surface; all registers everything. The tool count for each is in the generated census above. |
SPOTIFY_MCP_STATSFM | 1 | Register the 50 stats.fm-backed tools across four registration keys — statsfm, taste, tastecomposites and tastejukebox. Off by default: they need a separate stats.fm username. Two of them write to Spotify (taste_to_playlist and statsfm_jukebox); the rest are read-only. spotify-mcp tools counts what your environment actually registers. |
SPOTIFY_MCP_READONLY | 1 | Hide write-capable modules; read-only resources and prompts remain available. |
SPOTIFY_MCP_HISTORY | 1 | Log mutations to JSONL for undo and audit. |
SPOTIFY_MCP_RECEIPTS | 1 | Persist mutation receipts so verify_receipt/undo_mutation survive a restart. |
SPOTIFY_MCP_ATTRIBUTION | 0 | Turn off the "Music data supplied by Spotify" footer and the per-row open.spotify.com link. On unless set to 0/false/no/off; the disclosure is mandatory, so only an explicit falsy value removes it. |
Full reference: docs/configuration.md
spotify_doctor (CLI + in-server tool) diagnoses token state, scope gaps, Premium gating, rate-limit cooldowns, request/quota usage (cumulative + rolling-window counts, #904), and read-cache pressure (entries held, bytes retained, responses too large to cache, #894) without extra setup.
2.0 is a contract release. One tool name is gone, four things moved, and one guarantee tightened:
list_show_episodes (same endpoint, same arguments, minus the drifted alias). It was the only name that changed; everything else in the surface keeps its name. The exact registry totals are generated at the top of this file, so this sentence deliberately carries no count of its own to fall behind.archive_played_episodes's confirm: true no longer authorises the delete (it is still accepted, and every result says it was ignored). For headless automation, set SPOTIFY_MCP_CONFIRM=never deliberately.playlist_a/playlist_b; ordered lists are playlists; playlist_subtract takes the base as base_playlist_id. This was the 2.0 contract; the old spellings it was allowed to keep alongside it were withdrawn in 3.0 (#1287). They are no longer in any tool's schema, and a call that still sends one is refused before any Spotify request with a validation error whose reason is retired_input, naming both what was sent and what to send instead. Each tool declared exactly one alias pair or one alias list, so the table below is a per-tool migration map rather than a bundle:| family | canonical | the spelling that tool used to declare |
|---|---|---|
| A/B pair | playlist_a, playlist_b | a/b, or playlist_id_a/playlist_id_b, or playlist_a_id/playlist_b_id — one of them, per tool |
| ordered list | playlists
Nur der Anfang wird gezeigt; den Rest findest du im Repo