轻量级模型上下文协议 (MCP)服务器,使 Cursor 和 Claude 等 AI 助手能够控制 Spotify 播放和管理播放列表。
交互示例
- “播放猫王的第一首歌曲”
- “创建 Taylor Swift / Slipknot 融合播放列表”
- “将我的健身播放列表中的所有电子音乐复制到我的工作播放列表中”
工具
读取操作
- 搜索Spotify
- 描述:在 Spotify 上搜索曲目、专辑、艺术家或播放列表
- 参数:
query
(字符串):搜索词type
(字符串):要搜索的项目类型(曲目、专辑、艺术家、播放列表)limit
(数字,可选):返回的最大结果数(10-50)
- 返回:匹配商品的列表,包括其 ID、名称和其他详细信息
- 例如:
searchSpotify("bohemian rhapsody", "track", 20)
- 获取正在播放的内容
- 描述:获取有关 Spotify 上当前播放曲目的信息
- 参数:无
- 返回:包含曲目名称、艺术家、专辑、播放进度、时长和播放状态的对象
- 例如:
getNowPlaying()
- 获取我的播放列表
- 描述:获取当前用户在 Spotify 上的播放列表
- 参数:
limit
(数字,可选):返回的播放列表的最大数量(默认值:20)offset
(数字,可选):要返回的第一个播放列表的索引(默认值:0)
- 返回:播放列表数组,包含其 ID、名称、曲目数和公开状态
- 例如:
getMyPlaylists(10, 0)
- 获取播放列表曲目
- 描述:获取特定 Spotify 播放列表中的曲目列表
- 参数:
playlistId
(字符串):播放列表的 Spotify IDlimit
(数字,可选):返回的最大曲目数(默认值:100)offset
(数字,可选):要返回的第一个轨道的索引(默认值:0)
- 返回:曲目数组,包含曲目 ID、名称、艺术家、专辑、时长和添加日期
- 例如:
getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
- 获取最近播放的内容
- 描述:从 Spotify 检索最近播放的曲目列表。
- 参数:
limit
(数字,可选):指定要返回的最大轨道数的数字。
- 返回:如果找到曲目,它将返回最近播放曲目的格式化列表,否则返回一条消息:“您在 Spotify 上没有任何最近播放的曲目”。
- 例如:
getRecentlyPlayed({ limit: 10 })
- 获取最近播放的内容
- 描述:从 Spotify 检索最近播放的曲目列表。
- 参数:
limit
(数字,可选):指定要返回的最大轨道数的数字。
- 返回:如果找到曲目,它将返回最近播放曲目的格式化列表,否则返回一条消息:“您在 Spotify 上没有任何最近播放的曲目”。
- 例如:
getRecentlyPlayed({ limit: 10 })
播放/创建操作
- 播放音乐
- 描述:开始在 Spotify 上播放曲目、专辑、艺术家或播放列表
- 参数:
uri
(字符串,可选):要播放的项目的 Spotify URI(覆盖类型和 ID)type
(字符串,可选):要播放的项目类型(曲目、专辑、艺术家、播放列表)id
(字符串,可选):要播放的项目的 Spotify IDdeviceId
(字符串,可选):要播放的设备的 ID
- 返回:成功状态
- 例如:
playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- 替代方案:
playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
- 暂停播放
- 描述:暂停 Spotify 上当前播放的曲目
- 参数:
deviceId
(字符串,可选):要暂停的设备的 ID
- 返回:成功状态
- 例如:
pausePlayback()
- 跳过下一个
- 描述:跳至当前播放队列中的下一曲目
- 参数:
deviceId
(字符串,可选):设备的 ID
- 返回:成功状态
- 例如:
skipToNext()
- 跳到上一个
- 描述:跳至当前播放队列中的上一首曲目
- 参数:
deviceId
(字符串,可选):设备的 ID
- 返回:成功状态
- 例如:
skipToPrevious()
- 创建播放列表
- 描述:在 Spotify 上创建新的播放列表
- 参数:
name
(字符串):新播放列表的名称description
(字符串,可选):播放列表的描述public
(布尔值,可选):播放列表是否应该公开(默认值:false)
- 返回:带有新播放列表的 ID 和 URL 的对象
- 例如:
createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
- 将曲目添加到播放列表
- 描述:将曲目添加到现有的 Spotify 播放列表
- 参数:
playlistId
(字符串):播放列表的 IDtrackUris
(数组):要添加的轨道 URI 或 ID 数组position
(数字,可选):插入曲目的位置
- 返回:成功状态和快照ID
- 例如:
addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
- 添加到队列
- 描述:将曲目、专辑、艺术家或播放列表添加到当前播放队列
- 参数:
uri
(字符串,可选):要添加到队列的项目的 Spotify URI(覆盖类型和 ID)type
(字符串,可选):要排队的项目类型(曲目、专辑、艺术家、播放列表)id
(字符串,可选):要排队的项目的 Spotify IDdeviceId
(字符串,可选):要排队的设备的 ID
- 返回:成功状态
- 例如:
addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- 替代方案:
addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
设置
先决条件
- Node.js v16+
- Spotify Premium 帐户
- 注册的 Spotify 开发者应用程序
安装
创建 Spotify 开发者应用程序
- 前往Spotify 开发者仪表板
- 使用您的 Spotify 帐户登录
- 点击“创建应用程序”按钮
- 填写应用名称和描述
- 接受服务条款并点击“创建”
- 在新应用的信息中心中,您将看到您的客户端 ID
- 点击“显示客户端密钥”来显示您的客户端密钥
- 单击“编辑设置”并添加重定向 URI(例如,
http://localhost:8888/callback
) - 保存更改
Spotify API 配置
在项目根目录中创建一个spotify-config.json
文件(您可以复制并修改提供的示例):
然后使用您的凭据编辑文件:
身份验证过程
Spotify API 使用 OAuth 2.0 进行身份验证。请按照以下步骤验证您的应用程序:
- 运行身份验证脚本:
- 该脚本将生成一个授权 URL。在您的 Web 浏览器中打开此 URL。
- 系统将提示您登录 Spotify 并授权您的应用程序。
- 授权后,Spotify 将使用 URL 中的代码参数将您重定向到您指定的重定向 URI。
- 身份验证脚本将自动将此代码交换为访问和刷新令牌。
- 这些令牌将保存到您的
spotify-config.json
文件中,该文件现在看起来像这样:
- 服务器将在需要时使用刷新令牌自动刷新访问令牌。
通过 Cline 模型扩展与 Claude Desktop、Cursor 和 VsCode 集成
要将您的 MCP 服务器与 Claude Desktop 一起使用,请将其添加到您的 Claude 配置中:
对于“光标”,请转到Cursor Settings
(Command + Shift + J)中的“MCP”选项卡。使用以下命令添加服务器:
要使用 Cline 正确设置您的 MCP,请确保您具有以下文件配置设置cline_mcp_settings.json
:
您可以将其他工具添加到自动批准阵列中,以便无需干预即可运行这些工具。
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
轻量级模型上下文协议服务器,使 Cursor 和 Claude 等 AI 助手能够控制 Spotify 播放和管理播放列表。
Related MCP Servers
- -security-license-qualityA Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.Last updated -1TypeScript
- -securityAlicense-qualityA Model Context Protocol server that allows AI assistants like Claude and Cursor to create music and control Sonic Pi programmatically through OSC messages.Last updated -JavaScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants like Claude to interact with Spotify, allowing them to search for tracks, control playback, and manage playlists.Last updated -1TypeScript
- AsecurityAlicenseAqualityA Model Context Protocol server that enables real-time interaction with Ableton Live, allowing AI assistants to control song creation, track management, clip operations, and audio recording workflows.Last updated -232019TypeScriptMIT License