原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Spotify MCP

作者:NovaLux12版本 3.1.1i★ –i在你的电脑上运行
注册名称io.github.NovaLux12/spotify-mcp-server

安装

概览

作者提供的说明(英文原文)

Spotify Web API MCP: playback, library, playlists, search, podcasts. Not affiliated with Spotify.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 游戏、体育、美食与学习
  • 你需要填写:SPOTIFY_CLIENT_ID

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "spotify": {
      "command": "npx",
      "args": [
        "-y",
        "@novalux12/spotify-mcp"
      ],
      "env": {
        "SPOTIFY_CLIENT_ID": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add spotify --env SPOTIFY_CLIENT_ID=your-value -- npx -y @novalux12/spotify-mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "spotify": {
      "command": "npx",
      "args": [
        "-y",
        "@novalux12/spotify-mcp"
      ],
      "env": {
        "SPOTIFY_CLIENT_ID": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "spotify": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@novalux12/spotify-mcp"
      ],
      "env": {
        "SPOTIFY_CLIENT_ID": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • SPOTIFY_CLIENT_ID 必填 env
    Spotify developer app client ID (from developer.spotify.com/dashboard)

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 NovaLux12 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“游戏、体育、美食与学习”中的其他服务器比较i

  • 星标数多于此分类中其他 1283 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1283 个服务器的 61% 更新
  • 基础检查结果等于或优于此分类中其他 1283 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Spotify MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:SPOTIFY_CLIENT_ID

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(3.1.1)于20天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Anna's Archive and OpenAlex, Neural Cosmology, slopped.site

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Anna's Archive and OpenAlex

作者:SokolskyNikita

Find books, papers and dissertations with Anna's Archive and OpenAlex, then download or read them.

在你的电脑上运行今天更新
安装

Neural Cosmology

作者:neuralcosmology.com

Answers, essays, experiments and books on consciousness and cosmology: search, read, buy.

在云端运行今天更新
安装

slopped.site

作者:slopped.site

Read-only tools over slopped.site: AI-made art, lore, games, sites, the curriculum.

在云端运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

SpotifyMCP

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 and later

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.

`


Why this one

CompletePlayback, 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.
Safedry_run previews on writes, receipts that prove what landed, human confirmation for bulk deletes, and READONLY to hide write-capable modules.
Honest about the surfaceTools 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.
HonestNo 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.
PolishedPaginated (up to 500), podcasts first-class, device-aware playback, spotify_doctor self-diagnosis, real test suite.

Quick start

1. Create a Spotify app

Spotify Developer Dashboard → Create app → add this Redirect URI exactly:

http://127.0.0.1:8888/callback

Copy the Client ID.

2. Authenticate
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

prints a URL → open it on any machine → paste the redirect back

Check: npx -y @novalux12/spotify-mcp@latest doctor — exit 0 means you're good.

3. Add to your MCP host
{

"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.

What you can ask

  • "What are my top tracks this month?"
  • "Make a late-night driving playlist"
  • "Add Blinding Lights to my workout playlist"
  • "What podcasts have new episodes?"
  • "Clean duplicates across all my playlists"
  • "What does my taste look like? Build a playlist from it"
  • "Do my stats.fm lifetime genres match what I've played this month?"

Configuration

All via env vars — no config file. Only SPOTIFY_CLIENT_ID is required.

VariableExamplePurpose
SPOTIFY_MCP_TOOLSETSunsetTrim 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_STATSFM1Register 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_READONLY1Hide write-capable modules; read-only resources and prompts remain available.
SPOTIFY_MCP_HISTORY1Log mutations to JSONL for undo and audit.
SPOTIFY_MCP_RECEIPTS1Persist mutation receipts so verify_receipt/undo_mutation survive a restart.
SPOTIFY_MCP_ATTRIBUTION0Turn 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.

Upgrading to 2.0

2.0 is a contract release. One tool name is gone, four things moved, and one guarantee tightened:

  1. `get_show_episodes` is removed. Use 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.
  1. Destructive writes fail closed. Any confirmation-gated bulk write now refuses when the client cannot elicit, instead of proceeding unprompted. 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.
  2. Playlist set-operation inputs are canonical. A/B pairs are 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:
familycanonicalthe spelling that tool used to declare
A/B pairplaylist_a, playlist_ba/b, or playlist_id_a/playlist_id_b, or playlist_a_id/playlist_b_id — one of them, per tool

| ordered list | playlists

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx