Spotify MCP Server
娱乐与多媒体
Spotify MCP Server
🔥 热度:5

轻量级模型上下文协议 MCP

DeepSeek 导航网:Spotify MCP Server 一个轻量级的模型上下文协议 (MCP) 服务器,使像 Cursor & Claude 这样的 AI 助手能够控制 Spotify 的播放并管理播放列表。

示例交互

  • "播放 Elvis 的第一首歌"
  • "创建一个 Taylor Swift 和 Slipknot 融合的播放列表"
  • "将我锻炼播放列表中的所有 techno 曲目复制到我的工作播放列表中"

工具

读取操作

  1. searchSpotify
    • 描述: 在 Spotify 上搜索曲目、专辑、艺术家或播放列表
    • 参数:
      • query (字符串): 搜索词
      • type (字符串): 要搜索的项目类型(track, album, artist, playlist)
      • limit (数字, 可选): 返回的最大结果数(10-50)
    • 返回值: 包含匹配项的 ID、名称和其他详细信息的列表
    • 示例searchSpotify("bohemian rhapsody", "track", 20)
  2. getNowPlaying
    • 描述: 获取当前在 Spotify 上播放的曲目的信息
    • 参数: 无
    • 返回值: 包含曲目名称、艺术家、专辑、播放进度、时长和播放状态的对象
    • 示例getNowPlaying()
  3. getMyPlaylists
    • 描述: 获取当前用户在 Spotify 上的播放列表列表
    • 参数:
      • limit (数字, 可选): 返回的最大播放列表数(默认:20)
      • offset (数字, 可选): 返回的第一个播放列表的索引(默认:0)
    • 返回值: 包含播放列表的 ID、名称、曲目数量和公开状态的数组
    • 示例getMyPlaylists(10, 0)
  4. getPlaylistTracks
    • 描述: 获取特定 Spotify 播放列表中的曲目列表
    • 参数:
      • playlistId (字符串): 播放列表的 Spotify ID
      • limit (数字, 可选): 返回的最大曲目数(默认:100)
      • offset (数字, 可选): 返回的第一个曲目的索引(默认:0)
    • 返回值: 包含曲目的 ID、名称、艺术家、专辑、时长和添加日期的数组
    • 示例getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")

播放 / 创建操作

  1. playMusic
    • 描述: 在 Spotify 上开始播放曲目、专辑、艺术家或播放列表
    • 参数:
      • uri (字符串, 可选): 要播放的项目的 Spotify URI(优先于 type 和 id)
      • type (字符串, 可选): 要播放的项目类型(track, album, artist, playlist)
      • id (字符串, 可选): 要播放的项目的 Spotify ID
      • deviceId (字符串, 可选): 播放设备的 ID
    • 返回值: 成功状态
    • 示例playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • 替代方式playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
  2. pausePlayback
    • 描述: 暂停当前在 Spotify 上播放的曲目
    • 参数:
      • deviceId (字符串, 可选): 要暂停的设备的 ID
    • 返回值: 成功状态
    • 示例pausePlayback()
  3. skipToNext
    • 描述: 跳到当前播放队列中的下一首曲目
    • 参数:
      • deviceId (字符串, 可选): 设备的 ID
    • 返回值: 成功状态
    • 示例skipToNext()
  4. skipToPrevious
    • 描述: 跳到当前播放队列中的上一首曲目
    • 参数:
      • deviceId (字符串, 可选): 设备的 ID
    • 返回值: 成功状态
    • 示例skipToPrevious()
  5. createPlaylist
    • 描述: 在 Spotify 上创建一个新的播放列表
    • 参数:
      • name (字符串): 新播放列表的名称
      • description (字符串, 可选): 播放列表的描述
      • public (布尔值, 可选): 播放列表是否应公开(默认:false)
    • 返回值: 包含新播放列表的 ID 和 URL 的对象
    • 示例createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
  6. addTracksToPlaylist
    • 描述: 向现有的 Spotify 播放列表中添加曲目
    • 参数:
      • playlistId (字符串): 播放列表的 ID
      • trackUris (数组): 要添加的曲目 URI 或 ID 数组
      • position (数字, 可选): 插入曲目的位置
    • 返回值: 成功状态和快照 ID
    • 示例addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
  7. addToQueue
    • 描述: 将曲目、专辑、艺术家或播放列表添加到当前播放队列
    • 参数:
      • uri (字符串, 可选): 要添加到队列的项目的 Spotify URI(优先于 type 和 id)
      • type (字符串, 可选): 要排队的项目类型(track, album, artist, playlist)
      • id (字符串, 可选): 要添加到队列的项目的 Spotify ID
      • deviceId (字符串, 可选): 要排队的设备的 ID
    • 返回值: 成功状态
    • 示例addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • 替代方式addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })

设置

前提条件

  • Node.js v16+
  • 一个 Spotify Premium 账户
  • 一个已注册的 Spotify 开发者应用程序

安装

git clone https://github.com/marcelmarais/spotify-mcp-server.git
cd spotify-mcp-server
npm install
npm run build

创建一个 Spotify 开发者应用程序

  1. 前往 Spotify 开发者仪表板
  2. 使用你的 Spotify 账户登录
  3. 点击“创建一个应用”按钮
  4. 填写应用名称和描述
  5. 接受服务条款并点击“创建”
  6. 在你的新应用的仪表板中,你会看到你的 客户端 ID
  7. 点击“显示客户端密钥”以揭示你的 客户端密钥
  8. 点击“编辑设置”并添加一个重定向 URI(例如 http://localhost:8888/callback
  9. 保存更改

Spotify API 配置

在项目根目录下创建一个 spotify-config.json 文件(你可以复制并修改提供的示例):

# Copy the example config file
cp spotify-config.example.json spotify-config.json

然后使用你的凭证编辑该文件:

{
  "clientId": "your-client-id",
  "clientSecret": "your-client-secret",
  "redirectUri": "http://localhost:8888/callback"
}

认证过程

Spotify API 使用 OAuth 2.0 进行认证。按照以下步骤来认证你的应用程序:

  1. 运行认证脚本:
npm run auth
  1. 脚本将生成一个授权 URL 。在你的网络浏览器中打开这个 URL 。
  2. 你将被提示登录 Spotify 并授权你的应用程序。
  3. 授权后, Spotify 将会把你重定向到你指定的重定向 URI ,并且 URL 中会包含一个 code 参数。
  4. 认证脚本将会自动用这个 code 换取访问令牌和刷新令牌。
  5. 这些令牌将会被保存到你的 spotify-config.json 文件中,现在它看起来像这样:
{
  "clientId": "your-client-id",
  "clientSecret": "your-client-secret",
  "redirectUri": "http://localhost:8888/callback",
  "accessToken": "BQAi9Pn...kKQ",
  "refreshToken": "AQDQcj...7w",
  "expiresAt": 1677889354671
}
  1. 当需要时,服务器将使用刷新令牌自动刷新访问令牌。

与 Claude Desktop 和 Cursor 集成

要将你的 MCP 服务器与 Claude Desktop 一起使用,请将其添加到你的 Claude 配置中:

{
  "mcpServers": {
    "spotify": {
      "command": "node",
      "args": ["spotify-mcp-server/build/index.js"]
    }
  }
}

对于 Cursor ,前往 Cursor 设置 中的 MCP 标签页(command + shift + J)。使用此命令添加一个服务器:

node path/to/spotify-mcp-server/build/index.js

相关推荐