DeepSeek 导航网:Spotify MCP Server 一个轻量级的模型上下文协议 (MCP) 服务器,使像 Cursor & Claude 这样的 AI 助手能够控制 Spotify 的播放并管理播放列表。
示例交互
- "播放 Elvis 的第一首歌"
- "创建一个 Taylor Swift 和 Slipknot 融合的播放列表"
- "将我锻炼播放列表中的所有 techno 曲目复制到我的工作播放列表中"
工具
读取操作
- searchSpotify
- 描述: 在 Spotify 上搜索曲目、专辑、艺术家或播放列表
- 参数:
query
(字符串): 搜索词type
(字符串): 要搜索的项目类型(track, album, artist, playlist)limit
(数字, 可选): 返回的最大结果数(10-50)
- 返回值: 包含匹配项的 ID、名称和其他详细信息的列表
- 示例:
searchSpotify("bohemian rhapsody", "track", 20)
- getNowPlaying
- 描述: 获取当前在 Spotify 上播放的曲目的信息
- 参数: 无
- 返回值: 包含曲目名称、艺术家、专辑、播放进度、时长和播放状态的对象
- 示例:
getNowPlaying()
- getMyPlaylists
- 描述: 获取当前用户在 Spotify 上的播放列表列表
- 参数:
limit
(数字, 可选): 返回的最大播放列表数(默认:20)offset
(数字, 可选): 返回的第一个播放列表的索引(默认:0)
- 返回值: 包含播放列表的 ID、名称、曲目数量和公开状态的数组
- 示例:
getMyPlaylists(10, 0)
- getPlaylistTracks
- 描述: 获取特定 Spotify 播放列表中的曲目列表
- 参数:
playlistId
(字符串): 播放列表的 Spotify IDlimit
(数字, 可选): 返回的最大曲目数(默认:100)offset
(数字, 可选): 返回的第一个曲目的索引(默认:0)
- 返回值: 包含曲目的 ID、名称、艺术家、专辑、时长和添加日期的数组
- 示例:
getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
播放 / 创建操作
- playMusic
- 描述: 在 Spotify 上开始播放曲目、专辑、艺术家或播放列表
- 参数:
uri
(字符串, 可选): 要播放的项目的 Spotify URI(优先于 type 和 id)type
(字符串, 可选): 要播放的项目类型(track, album, artist, playlist)id
(字符串, 可选): 要播放的项目的 Spotify IDdeviceId
(字符串, 可选): 播放设备的 ID
- 返回值: 成功状态
- 示例:
playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- 替代方式:
playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
- pausePlayback
- 描述: 暂停当前在 Spotify 上播放的曲目
- 参数:
deviceId
(字符串, 可选): 要暂停的设备的 ID
- 返回值: 成功状态
- 示例:
pausePlayback()
- skipToNext
- 描述: 跳到当前播放队列中的下一首曲目
- 参数:
deviceId
(字符串, 可选): 设备的 ID
- 返回值: 成功状态
- 示例:
skipToNext()
- skipToPrevious
- 描述: 跳到当前播放队列中的上一首曲目
- 参数:
deviceId
(字符串, 可选): 设备的 ID
- 返回值: 成功状态
- 示例:
skipToPrevious()
- createPlaylist
- 描述: 在 Spotify 上创建一个新的播放列表
- 参数:
name
(字符串): 新播放列表的名称description
(字符串, 可选): 播放列表的描述public
(布尔值, 可选): 播放列表是否应公开(默认:false)
- 返回值: 包含新播放列表的 ID 和 URL 的对象
- 示例:
createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
- addTracksToPlaylist
- 描述: 向现有的 Spotify 播放列表中添加曲目
- 参数:
playlistId
(字符串): 播放列表的 IDtrackUris
(数组): 要添加的曲目 URI 或 ID 数组position
(数字, 可选): 插入曲目的位置
- 返回值: 成功状态和快照 ID
- 示例:
addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
- addToQueue
- 描述: 将曲目、专辑、艺术家或播放列表添加到当前播放队列
- 参数:
uri
(字符串, 可选): 要添加到队列的项目的 Spotify URI(优先于 type 和 id)type
(字符串, 可选): 要排队的项目类型(track, album, artist, playlist)id
(字符串, 可选): 要添加到队列的项目的 Spotify IDdeviceId
(字符串, 可选): 要排队的设备的 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 开发者应用程序
- 前往 Spotify 开发者仪表板
- 使用你的 Spotify 账户登录
- 点击“创建一个应用”按钮
- 填写应用名称和描述
- 接受服务条款并点击“创建”
- 在你的新应用的仪表板中,你会看到你的 客户端 ID
- 点击“显示客户端密钥”以揭示你的 客户端密钥
- 点击“编辑设置”并添加一个重定向 URI(例如
http://localhost:8888/callback
) - 保存更改
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 进行认证。按照以下步骤来认证你的应用程序:
- 运行认证脚本:
npm run auth
- 脚本将生成一个授权 URL 。在你的网络浏览器中打开这个 URL 。
- 你将被提示登录 Spotify 并授权你的应用程序。
- 授权后, Spotify 将会把你重定向到你指定的重定向 URI ,并且 URL 中会包含一个 code 参数。
- 认证脚本将会自动用这个 code 换取访问令牌和刷新令牌。
- 这些令牌将会被保存到你的
spotify-config.json
文件中,现在它看起来像这样:
{
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost:8888/callback",
"accessToken": "BQAi9Pn...kKQ",
"refreshToken": "AQDQcj...7w",
"expiresAt": 1677889354671
}
- 当需要时,服务器将使用刷新令牌自动刷新访问令牌。
与 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
文本转语音和视频翻译 API 交互