Spotify音乐控制服务器

一个基于WebSocket和JSON-RPC的Spotify服务器,提供音乐搜索、播放控制等功能,适用于需要集成Spotify音乐服务的开发场景。

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

使用说明

Spotify MCP 服务器(WebSocket + JSON-RPC,已准备好渲染)

这是一个 极简风格,MCP风格 会说话的Spotify服务器 通过WebSocket的JSON-RPC (at /mcp) 并提供一个HTTP OAuth流程 (/auth, /callback) 以获取Spotify令牌。 它旨在部署到支持WebSockets的平台(例如。, 渲染, 铁路, Fly.io)。 一旦获得授权,您就可以指示ChatGPT的 自定义MCP服务器 at: (这个短语在中文里通常不单独翻译,因为它是一个介词短语的一部分,需要根据上下文来确定具体含义。如果直接翻译,可以理解为“在……”或者“关于……”,但具体翻译需结合上下文。)

wss://YOUR-RENDER-DOMAIN/mcp

代币模型为了简化,这个演示程序存储 一个全球通用的Spotify令牌 (在您访问之后 /auth (仅)一次。 所有MCP工具调用都使用此令牌。如有需要,请替换为每个用户的存储(如Redis、数据库等)。

特点/特性

  • 通过 WebSocket 的 JSON-RPC 2.0 在 /mcp (使用)方法:
    • initialize → 返回服务器名称/版本
    • tools/list → 返回可用工具
    • tools/call → { name, args } 调用一个工具
  • 工具:
    • search (q) → 搜索曲目
    • play (上下文URI?,URIs?)
    • pause, next, prev
    • create_playlist (名称,公开=false,追踪URI?)
  • OAuth 端点: /auth, /callback

快速部署(渲染)

  1. 在 https://developer.spotify.com/dashboard 创建一个Spotify应用
    • 添加重定向URI(在您了解您的Render域名后): https://YOUR-RENDER-DOMAIN/callback
  2. 在渲染中,创建一个 网络服务 来自这个仓库(Node 18+)。
    • 构建命令: npm install
    • 启动命令: node server.js
    • 环境变量 (制作):
      • SPOTIFY_CLIENT_ID
      • SPOTIFY_CLIENT_SECRET
      • SPOTIFY_REDIRECT_URI → https://YOUR-RENDER-DOMAIN/callback
      • SESSION_SECRET → 任何随机字符串
  3. 部署后,请访问: https://YOUR-RENDER-DOMAIN/auth 并完成Spotify的授权。
  4. 在ChatGPT → 设置 → 连接器 → 添加MCP服务器:
    • 服务器URL: wss://YOUR-RENDER-DOMAIN/mcp
    • 认证: 未进行身份验证
  5. 在ChatGPT中测试:“搜索一首lo-fi歌曲并播放”。

本地开发

  • 创建一个带有重定向URI的Spotify应用程序 http://localhost:8888/callback
  • 复制 .env.example 到;向;对于;为了 .env,填充值。
  • npm install && npm run dev
  • 访问 http://localhost:8888/auth 先连接一次,然后(继续)连接 ws://localhost:8888/mcp 来自测试MCP客户端。

备注

  • 需要Spotify高级会员才能进行播放/暂停/下一首/上一首操作,并且需要设备处于活跃状态。
  • 在多用户场景中,将内存中的全局令牌替换为持久化存储。
  • 这是一个 最小的;最少的 MCP;根据需要适应您客户的MCP架构。