使用说明
Spotify MCP服务器
用于Spotify的生产就绪模型上下文协议(MCP)服务器,具有防弹错误处理和令牌管理功能。
特性
- 🔐 一次性OAuth身份验证 -认证一次,永远使用(如spotifyd)
- 🛡️ 防弹错误处理 -永远不会在瞬态故障时使令牌无效
- 🔄 自动令牌刷新 -通过并发请求重复数据删除实现无缝刷新
- 💾 原子证书存储 -防止进程崩溃时出现损坏
- ⚡ 智能重试逻辑 -具有速率限制处理的指数回退
- 🎯 保守的代币管理 -仅在可证明无效时清除凭据
示例用法
设置后,您可以使用Claude的自然语言提示来控制Spotify:
🎵 搜索与发现
"Search for AC/DC songs"
"Find albums by The Beatles"
"Search for rock playlists"
"Find tech podcasts"
"Search for The Beatles - show me tracks, albums, and playlists"
▶️ 回放控制
"Play Back in Black by AC/DC"
"Play the album Highway to Hell"
"Play my Discover Weekly playlist"
"Pause the music"
"Skip to the next song"
"Go back to the previous track"
"What's currently playing?"
🎚️ 高级控制
"Set volume to 50%"
"Turn on shuffle"
"Enable repeat"
"Set repeat to one song only"
"Turn off repeat"
📱 设备管理
"Show my Spotify devices"
"Switch playback to my phone"
"Transfer playback to my speaker"
所有这些操作都与自动令牌刷新、速率限制和错误恢复无缝协作。
安装
之前:
你需要设置一个Spotify开发者应用程序来获取客户端id和密码。这将用于对MCP服务器进行身份验证。
方法1:基于提示的设置(最简单)
通过Claude CLI安装,让Claude指导您完成安装:
# Install the MCP server
claude mcp add --transport stdio spotify -- npx -y @tbrgeek/spotify-mcp-server
# Restart Claude Code
# (Fully quit and reopen)
服务器在没有凭据的情况下启动,并在需要时提供设置说明。只需问克劳德:
- “对spotify mcp服务器进行身份验证”
Claude将提供分步设置说明,包括:
- 创建Spotify应用程序
- 运行身份验证脚本
- 配置凭据
看 基于提示的安装指南 详见下文。
方法2:交互式身份验证(存储凭据)
对于重启后仍然有效的持久凭据:
# Install globally
npm install -g @tbrgeek/spotify-mcp-server
# Run authentication
spotify-mcp-server auth
# Add to Claude Code config
claude mcp add --transport stdio spotify -- spotify-mcp-server
看 Claude CLI安装指南 获取完整说明。
方法3:环境变量(高级)
对于共享配置或CI/CD:
# Set environment variables (see docs/CLAUDE_CLI_SETUP.md)
export SPOTIFY_CLIENT_ID="your_client_id"
export SPOTIFY_CLIENT_SECRET="your_client_secret"
export SPOTIFY_REFRESH_TOKEN="your_refresh_token"
export SPOTIFY_ACCESS_TOKEN="your_access_token"
# Install with environment variables
claude mcp add --transport stdio spotify -- npx -y @tbrgeek/spotify-mcp-server
看 Claude CLI安装指南 用于完整的环境变量设置。
本地开发
git clone https://github.com/thebigredgeek/spotify-mcp-server.git
cd spotify-mcp-server
npm install
npm run build
npm link
设置
1.创建Spotify应用程序
- 首选 Spotify开发者仪表板
- 创建新应用程序
- 注意你的 客户端ID 和 客户端密钥
- 添加重定向URI:
http://127.0.0.1:8888/callback
2.身份验证
npm run auth
按照提示操作:
- 输入您的客户端ID和客户端密码
- 在浏览器中授权
- 凭据保存到
~/.spotify-mcp/credentials.json
3.配置MCP客户端
克劳德CLI/克劳德代码(推荐)
编辑 ~/.claude/settings.local.json:
{
"mcpServers": {
"spotify": {
"type": "stdio",
"command": "spotify-mcp-server"
}
}
}
或使用环境变量(请参见 Claude CLI安装指南):
{
"mcpServers": {
"spotify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@tbrgeek/spotify-mcp-server"],
"env": {
"SPOTIFY_CLIENT_ID": "${SPOTIFY_CLIENT_ID}",
"SPOTIFY_CLIENT_SECRET": "${SPOTIFY_CLIENT_SECRET}",
"SPOTIFY_ACCESS_TOKEN": "${SPOTIFY_ACCESS_TOKEN}",
"SPOTIFY_REFRESH_TOKEN": "${SPOTIFY_REFRESH_TOKEN}"
}
}
}
}
克劳德桌面
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"spotify": {
"command": "npx",
"args": ["-y", "@tbrgeek/spotify-mcp-server"]
}
}
}
对于当地发展:
{
"mcpServers": {
"spotify": {
"command": "node",
"args": ["/Users/YOUR_USERNAME/opensource/spotify-mcp-server/dist/index.js"]
}
}
}
基于提示的安装指南
设置Spotify MCP服务器的最简单方法是先安装它,然后让Claude引导您完成身份验证。
步骤1:安装服务器
# Install via Claude CLI
claude mcp add --transport stdio spotify -- npx -y @tbrgeek/spotify-mcp-server
# Restart Claude Code (fully quit and reopen)
第二步:向克劳德询问安装说明
重新启动后,问克劳德以下任何问题:
- “如何设置Spotify?”
- “检查Spotify健康状况”
- “获取Spotify身份验证状态”
Claude将提供详细的设置说明,包括:
创建Spotify应用程序:
- 首选https://developer.spotify.com/dashboard
- 点击“创建应用”
- 填写应用程序名称和重定向URI:
http://127.0.0.1:8888/callback - 保存您的客户端ID和客户端密码
正在运行身份验证:
# Install globally
npm install -g @tbrgeek/spotify-mcp-server
# Run authentication
spotify-mcp-server auth
身份验证脚本将:
- 提示输入您的客户ID和密码
- 打开浏览器进行授权
- 将凭据保存到
~/.spotify-mcp/credentials.json
重新启动Claude代码 -凭据现在已自动加载!
步骤3:验证
问克劳德:“检查Spotify的健康状况”
您应该看到:✅ Spotify MCP服务器已通过身份验证并可运行!
手动配置
如果您更喜欢直接编辑配置文件,请按照以下方式操作:
选项1:使用存储的凭据
-
运行身份验证 生成凭据:
npm install -g @tbrgeek/spotify-mcp-server spotify-mcp-server auth -
编辑Claude代码配置 在
~/.claude/settings.local.json:{ "mcpServers": { "spotify": { "type": "stdio", "command": "spotify-mcp-server" } } } -
重新启动Claude代码 -凭据从加载
~/.spotify-mcp/credentials.json
选项2:使用环境变量
-
获取您的凭据 (运行一次身份验证以获取刷新令牌):
spotify-mcp-server auth cat ~/.spotify-mcp/credentials.json -
设置环境变量 在您的shell配置文件中(
~/.zshrc或~/.bashrc):export SPOTIFY_CLIENT_ID="your_client_id_here" export SPOTIFY_CLIENT_SECRET="your_client_secret_here" export SPOTIFY_ACCESS_TOKEN="your_access_token_here" export SPOTIFY_REFRESH_TOKEN="your_refresh_token_here" -
编辑Claude代码配置 在
~/.claude/settings.local.json:{ "mcpServers": { "spotify": { "type": "stdio", "command": "npx", "args": ["-y", "@tbrgeek/spotify-mcp-server"], "env": { "SPOTIFY_CLIENT_ID": "${SPOTIFY_CLIENT_ID}", "SPOTIFY_CLIENT_SECRET": "${SPOTIFY_CLIENT_SECRET}", "SPOTIFY_ACCESS_TOKEN": "${SPOTIFY_ACCESS_TOKEN}", "SPOTIFY_REFRESH_TOKEN": "${SPOTIFY_REFRESH_TOKEN}" } } } } -
重新加载外壳 和 重新启动克劳德代码:
source ~/.zshrc # or ~/.bashrc
查找配置文件
克劳德代码配置:
~/.claude/settings.local.json # User-specific (not version-controlled)
~/.claude/settings.json # Global defaults
Spotify凭据:
~/.spotify-mcp/credentials.json # Stored credentials (from auth script)
编辑配置:
# macOS/Linux
code ~/.claude/settings.local.json
# or
vim ~/.claude/settings.local.json
编辑任何配置后:
- 完全退出Claude Code(不仅仅是关闭窗口)
- 重新打开Claude代码以加载新配置
建筑亮点
错误处理
服务器实现了一个复杂的错误分类系统 从不 除非绝对必要,否则令牌无效:
- ✅ 从不清除令牌:500/502/503、429(速率限制)、网络错误、超时
- ✅ 检索瞬态错误:403个错误(Spotify错误),网络故障
- ✅ 仅在以下情况下清除令牌:刷新令牌返回
invalid_grant
许可证管理
- 并发刷新重复数据消除:多个同时进行的API调用仅触发一个令牌刷新
- 刷新令牌保存:如果未返回新的刷新令牌,则保留现有的刷新令牌(Spotify行为)
- 5分钟过期缓冲:在令牌过期之前刷新令牌
- 原子写入:将凭据写入临时文件,然后自动重命名
重试逻辑
- 指数退避: 1s → 2s → 4s延迟(可配置)
- 费率限制处理:尊重
Retry-After标头 - 智能重试:瞬态故障最多可尝试3次
发展
看 Developpent.md 用于本地测试、调试和发布工作流。
构建
npm run build
测试
npm test
棉绒
npm run lint
项目状态
当前版本:功能齐全的Spotify控件,具有全面的搜索和播放功能
✅ 已实现的功能:
- 具有防弹错误处理和令牌管理的核心基础设施
- 全面搜索(曲目、专辑、播放列表、播客)
- 完全播放控制(播放、暂停、下一个、上一个、音量)
- 高级播放功能(随机播放、重复模式、设备管理)
- 具有传输功能的多设备支持
- 实时回放状态监控
🚀 未来的增强功能:
- 用户库管理(保存的曲目、专辑、播放列表)
- 播放列表创建和编辑
- 最近播放的曲目
- 用户热门曲目和艺术家
许可证
麻省理工学院-见 许可证
作者
安德鲁·莱恩 andrew.rhyne@shopify.com