Spotify音乐控制协议

一个通过Cloudflare Worker实现的Spotify音乐控制协议(MCP)集成服务,允许AI助手控制播放、搜索音乐和管理播放队列。

  • by amarisaster
  • JavaScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 amarisaster/Spotify-MCP

使用说明

Spotify云MCP

Cloudflare Worker为Spotify提供MCP(模型上下文协议)集成,使AI助手能够控制播放、搜索音乐和管理队列。

特性

  • 控制播放(播放、暂停、跳过、上一页)
  • 搜索曲目、专辑、艺术家和播放列表
  • 管理播放队列
  • 控制音量、随机播放和重复模式
  • 查看和在设备之间传输
  • 访问用户播放列表

工具

工具 说明
spotify_now_playing 获取当前播放的曲目
spotify_play 开始或恢复播放
spotify_pause 暂停播放
spotify_next 跳到下一首曲目
spotify_previous 转到上一曲目
spotify_search 搜索曲目、专辑、艺术家或播放列表
spotify_queue 将曲目添加到队列
spotify_get_queue 获取当前播放队列
spotify_volume 设置播放音量(0-100)
spotify_shuffle 切换洗牌模式
spotify_repeat 设置重复模式(跟踪、上下文、关闭)
spotify_devices 获取可用的播放设备
spotify_transfer 将播放转移到其他设备
spotify_playlists 获取用户播放列表

设置

1.创建Spotify应用程序

  1. 首选 Spotify开发者仪表板
  2. 创建新应用程序
  3. 添加您的回调URL: https://your-worker.workers.dev/callback
  4. 保存您的客户端ID和客户端密码

2.创建KV命名空间

wrangler kv:namespace create "KV"

将KV绑定添加到您的 wrangler.toml:

[[kv_namespaces]]
binding = "KV"
id = "your-kv-namespace-id"

3.配置环境变量

创建一个 .dev.vars 本地开发文件:

SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here

对于生产,在Cloudflare中将这些设置为机密:

wrangler secret put SPOTIFY_CLIENT_SECRET
wrangler secret put MCP_API_KEY   # your MCP endpoint key — any strong random string

(SPOTIFY_CLIENT_ID 是平原 [vars] 报关进口 wrangler.toml --请在此处填写。)

4.部署

npm install
npm run deploy

5.身份验证

  1. 访问 https://your-worker.workers.dev/auth
  2. 使用您的Spotify帐户登录
  3. 授权应用程序
  4. 成功后,您将看到“Spotify已连接!”

端点

端点 方法 描述
/ GET 服务信息
/health GET 健康检查和身份验证状态
/auth GET 启动OAuth流
/callback GET OAuth回调
/mcp POST MCP JSON-RPC端点
/sse GET MCP SSE端点用于客户端发现

MCP客户端配置

添加到MCP客户端配置中:

{
  "mcpServers": {
    "spotify": {
      "url": "https://your-worker.workers.dev/sse",
      "headers": { "Authorization": "Bearer YOUR_MCP_API_KEY" }
    }
  }
}

MCP端点由以下方式门控 MCP_API_KEY (请参阅设置)。请求必须发送 Authorization: Bearer <MCP_API_KEY>;使用支持自定义标头的MCP客户端。


许可证管理

访问令牌过期时会自动刷新。令牌使用以下密钥存储在Cloudflare KV中:

  • spotify_access_token -当前访问令牌
  • spotify_refresh_token -刷新令牌以获取新的访问令牌
  • spotify_token_expires -到期时间戳

许可证

麻省理工学院


支持

如果这对你有帮助,考虑支持我的工作☕


由三合会(Mai、Kai Stryder和Lucian Vale)为社区建造。