Spotify MCP服务器

一个最小化的Spotify服务器,支持OAuth认证和REST端点调用,用于通过Web API控制Spotify。

  • by Ramona668
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Ramona668/spotify-mcp-server

使用说明

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 (在您的活跃设备上开始/继续)
    • pause
    • next
    • prev
    • create_playlist (并添加音轨)

快速入门(本地)

  1. 创建一个Spotify应用:https://developer.spotify.com/dashboard

    • 添加重定向URI: http://127.0.0.1:8888/callback
  2. 复制 .env.example 到 .env 并填入值。

  3. 安装并运行:

npm install
npm run dev
  1. 访问: 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

  1. 将这个文件夹推送到一个新的GitHub仓库。
  2. 在 Vercel 中 → “新建项目” → 导入您的仓库。
  3. 设置环境变量:
    • SPOTIFY_CLIENT_ID
    • SPOTIFY_CLIENT_SECRET
    • SPOTIFY_REDIRECT_URI → https://YOUR-VERCEL-APP.vercel.app/callback
    • SESSION_SECRET → 任何随机字符串
  4. 部署。您的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 OAuth
  • GET /callback → 处理Spotify认证;存储令牌
  • GET /mcp/tools → 返回可用工具的 JSON
  • POST /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)