使用说明
Spotify MCP 服务器(最小模板,已准备好安全重定向)
这是一个 极简风格,MCP风格 Spotify服务器,可快速部署(已适配Vercel)。 它处理Spotify的OAuth认证,并提供了一小套REST端点,供许多MCP(多云平台/管理控制平面等,具体根据上下文确定)使用 客户端或代理运行时可以通过Web API调用以控制Spotify。
重要重定向说明(2025)
Spotify不再接受http://localhost用于OAuth重定向。
对于本地开发,请使用环回IP和HTTP:http://127.0.0.1:<PORT>(或http://[::1]:<PORT>)。
对于生产环境,请使用HTTPS (例如,您的Vercel域名)。
你得到的是
- 使用Spotify进行OAuth登录
/auth→ Spotify 同意 →/callback)。 - 在内存中存储令牌(生产环境中使用Redis/KV进行交换)。
- 工具发现于
/mcp/tools。 - 工具执行于
/mcp/execute支持;扶持search(查询轨迹)play(在您的活跃设备上开始/继续)pausenextprevcreate_playlist(并添加音轨)
快速入门(本地)
-
创建一个Spotify应用:https://developer.spotify.com/dashboard
- 添加重定向URI:
http://127.0.0.1:8888/callback
- 添加重定向URI:
-
复制
.env.example到.env并填入值。 -
安装并运行:
npm install
npm run dev
- 访问:
http://127.0.0.1:8888/auth
认证成功后,您可以调用工具:
# Discover tools
curl http://127.0.0.1:8888/mcp/tools
# Search
curl -X POST http://127.0.0.1:8888/mcp/execute -H "Content-Type: application/json" -d '{"tool":"search","args":{"q":"lofi chill"}}'
部署到Vercel
- 将这个文件夹推送到一个新的GitHub仓库。
- 在 Vercel 中 → “新建项目” → 导入您的仓库。
- 设置环境变量:
SPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRETSPOTIFY_REDIRECT_URI→https://YOUR-VERCEL-APP.vercel.app/callbackSESSION_SECRET→ 任何随机字符串
- 部署。您的MCP基础URL将是:
https://YOUR-VERCEL-APP.vercel.app
环境变量
看 .env.example 对于所需值。
安全与持久性
- 这个演示将令牌存储在内存中(节点进程)。在生产环境中,请使用像Redis这样的键值数据库/数据库。
- 如果公开暴露,需锁定CORS(跨域资源共享)设置。
- 仅在必要时授予范围权限。
适应严格的MCP传输要求
某些MCP客户端可能需要:
- 通过标准输入输出或WebSocket的JSON-RPC
- 工具模式注册
- 会话/握手消息
你可以:
- 在(某个位置)暴露一个 WebSocket
/mcp/socket并实现JSON-RPC。 - 或者运行一个配套适配器,将REST工具转换为客户端期望的传输方式。
终点(或:最终结果)
GET /auth→ 重定向到Spotify OAuthGET /callback→ 处理Spotify认证;存储令牌GET /mcp/tools→ 返回可用工具的 JSONPOST /mcp/execute→ 通过名称执行带有参数的工具POST /logout→ 清除会话
使用的范围(或作用域)
user-read-playback-state
user-modify-playback-state
user-read-currently-playing
playlist-modify-private
playlist-modify-public
playlist-read-private
user-read-email
许可证
麻省理工学院(MIT)