Integrations
Allows interaction with Spotify, providing tools for music playback control, searching for tracks/albums/artists/playlists, creating and managing playlists, and getting personalized music recommendations.
MCP Claude Spotify
特征
- Spotify 身份验证
- 搜索曲目、专辑、艺术家和播放列表
- 播放控制(播放、暂停、下一首、上一首)
- 创建和管理播放列表
- 获得个性化推荐
- 访问用户在不同时间段内最常播放的曲目
演示
要求
- Node.js 16 或更高版本
- Spotify 帐户
- 克劳德桌面
- Spotify API 凭证(客户端 ID 和客户端密钥)
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 MCP Claude Spotify:
手动安装
- 克隆或下载此存储库:
- 安装依赖项:
- 构建项目(如果您想修改源代码):
存储库已在build
目录中包含预构建文件,因此如果您不打算修改源代码,则可以跳过步骤 3。
设置 Spotify 凭证
要使用此 MCP,您需要获取 Spotify API 凭证:
- 前往Spotify 开发者仪表板
- 使用您的 Spotify 帐户登录
- 点击“创建应用程序”
- 填写您的应用信息:
- 应用程序名称:“MCP Claude Spotify”(或任何你喜欢的名称)
- 应用程序描述:“Spotify 与 Claude Desktop 的集成”
- 网站:您可以留空或输入任何 URL
- 重定向 URI:重要- 添加
http://127.0.0.1:8888/callback
- 接受条款和条件并点击“创建”
- 在您的应用信息中心,您将看到“客户端 ID”
- 点击“显示客户端密钥”即可显示您的“客户端密钥”
保存这些凭据,因为您将需要它们进行配置。
运行 MCP 服务器
运行 MCP 服务器有两种方式:
选项 1:手动运行(建议用于首次设置和故障排除)
- 打开终端或命令提示符
- 导航到项目目录
- 直接运行服务器:
使用 Claude Desktop 时,请保持此终端窗口打开。服务器将一直运行,直到您关闭终端。
选项 2:使用 Claude Desktop 自动启动(建议定期使用)
Claude Desktop 可以在需要时自动启动 MCP 服务器。设置方法如下:
配置
Claude Desktop 配置文件位于:
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows :
%APPDATA%\Claude\claude_desktop_config.json
编辑此文件以添加 Spotify MCP 配置。如果该文件不存在,请创建它:
重要提示:替换:
ABSOLUTE_PATH_TO_DIRECTORY
为您安装 MCP 的完整绝对路径- macOS/Linux 示例:
/Users/username/mcp-claude-spotify
- Windows 示例:
C:\\Users\\username\\mcp-claude-spotify
- macOS/Linux 示例:
your_client_id_here
是您从 Spotify 获取的客户端 IDyour_client_secret_here
是您从 Spotify 获取的客户端密钥
如果您已经配置了其他 MCP,只需在“mcpServers”对象中添加“spotify”部分。
设置自动启动脚本(可选)
为了获得更可靠的体验,您可以设置自动启动脚本:
- 在项目目录中创建一个名为
start-spotify-mcp.bat
的文件,内容如下:
- 创建此BAT文件的快捷方式
- 按
Win+R
,输入shell:startup
并按 Enter 键 - 将快捷方式移动到此文件夹,使其随 Windows 启动
- 在
~/Library/LaunchAgents/
中创建一个名为com.spotify.mcp.plist
的文件,内容如下:
- 用您的实际值替换路径和凭据
- 使用以下命令加载代理:
launchctl load ~/Library/LaunchAgents/com.spotify.mcp.plist
- 在
~/.config/systemd/user/
中创建一个名为spotify-mcp.service
的文件(如果目录不存在则创建该目录):
- 用您的实际值替换路径和凭据
- 启用并启动服务:
- 检查状态:
用法
- 修改配置后重启Claude Desktop
- 在 Claude 中,使用
auth-spotify
命令启动身份验证过程 - 将打开一个浏览器窗口供您授权该应用程序
- 使用您的 Spotify 帐户登录并授权该应用程序
- 重要提示:身份验证成功后,请重新启动 Claude Desktop 以正确初始化 MCP 的工具注册表和 WebSocket 会话令牌缓存
- 重启后,所有 Spotify MCP 工具将正确注册并可供使用
MCP 服务器作为 Claude Desktop 管理的子进程运行。Claude 运行时,它会根据claude_desktop_config.json
中的配置自动启动并管理 Node.js 服务器进程。
可用工具
授权 spotify
启动 Spotify 身份验证过程。
搜索 spotify
搜索曲目、专辑、艺术家或播放列表。
参数:
query
:搜索文本type
:搜索类型(曲目、专辑、艺术家、播放列表)limit
:结果数量(1-50)
播放曲目
播放特定曲目。
参数:
trackId
:Spotify 曲目 IDdeviceId
:(可选)要播放的 Spotify 设备 ID
获取当前播放
获取有关当前播放的信息。
暂停播放
暂停播放。
下一首曲目
跳至下一曲目。
上一曲目
返回上一曲目。
获取用户播放列表
获取用户的播放列表。
创建播放列表
创建新的播放列表。
参数:
name
:播放列表名称description
:(可选)描述public
:(可选)是公开的还是私有的
添加曲目到播放列表
将曲目添加到播放列表。
参数:
playlistId
:播放列表IDtrackIds
:轨道 ID 数组
获取建议
根据种子获取建议。
参数:
seedTracks
:(可选)轨道 ID 数组seedArtists
:(可选)艺术家 ID 数组seedGenres
:(可选)流派数组limit
:(可选)建议数量(1-100)
获取热门曲目
获取用户在指定时间范围内播放次数最多的曲目。
参数:
limit
:(可选)返回的曲目数量(1-50,默认值:20)offset
:(可选)要返回的第一个轨道的索引(默认值:0)time_range
:(可选)计算亲和力的时间范围:short_term
:大约持续 4 周medium_term
:大约过去 6 个月(默认)long_term
:几年的数据
故障排除
“服务器断开连接”错误
如果您在 Claude Desktop 中看到错误“MCP Spotify:服务器已断开连接”:
- 验证服务器正在运行:
- 打开终端并从项目目录手动运行
node build/index.js
- 如果服务器启动成功,则使用 Claude 并保持此终端打开
- 打开终端并从项目目录手动运行
- 检查您的配置:
- 确保
claude_desktop_config.json
中的绝对路径对于您的系统来说是正确的 - 仔细检查 Windows 路径是否使用了双反斜杠 (
\\
) - 验证您使用的文件系统根目录的完整路径
- 确保
- 尝试自动启动选项:
- 按照“设置自动启动脚本”部分中的说明为您的操作系统设置自动启动脚本
- 这确保服务器在您需要时始终运行
浏览器不会自动打开
如果认证过程中浏览器没有自动打开,请手动访问: http://127.0.0.1:8888/login
8888/login
身份验证错误
确保您已在 Spotify 开发者仪表板中正确配置了重定向 URI: http://127.0.0.1:8888/callback
8888/callback
服务器启动错误
验证:
- 您的
claude_desktop_config.json
或启动脚本中的环境变量已正确配置 - Node.js 已安装并兼容(v16+)
- 所需端口(8888)可用且未被防火墙阻止
- 您有权限在指定位置运行该脚本
Claude 中未出现的工具
如果身份验证后 Spotify 工具未出现在 Claude 中:
- 确保在成功验证后重新启动 Claude Desktop
- 检查 Claude Desktop 日志中是否存在任何 MCP 通信错误
- 确保 MCP 服务器进程正在运行(手动运行以确认)
- 验证 MCP 服务器是否已在 Claude Desktop MCP 注册表中正确注册
检查服务器是否正在运行
检查服务器是否正在运行:
- Windows :打开任务管理器,转到“详细信息”选项卡,然后查找“node.exe”
- macOS/Linux :打开终端并运行
ps aux | grep node
如果您没有看到服务器运行,请手动启动它或使用自动启动方法。
测试
该项目包含自动化测试,以确保代码质量和功能。测试套件使用支持 TypeScript 的 Jest,涵盖以下内容:
- Zod 模式验证 - 验证所有输入模式是否正确验证数据
- Spotify API 交互 - 测试 API 请求处理和错误处理
- MCP 服务器功能 - 确保工具的正确注册和执行
运行测试
首先,确保所有开发依赖项都已安装:
运行所有测试:
要运行特定的测试文件:
如果您遇到 ESM 模块问题,请确保您使用的是 Node.js v16 或更高版本,并且 NODE_OPTIONS 环境变量包含 package.json 中配置的--experimental-vm-modules
标志。
测试结构
tests/schemas.test.ts
:测试输入验证模式tests/spotify-api.test.ts
:Spotify API 交互测试tests/server.test.ts
:测试 MCP 服务器功能
添加新测试
添加新功能时,请包含相应的测试:
- 对于新模式,在
schemas.test.ts
中添加验证测试 - 对于 Spotify API 函数,在
spotify-api.test.ts
中添加测试 - 对于 MCP 工具,在
server.test.ts
中添加测试
所有测试都应使用 Jest 和 TypeScript 的 ESM 模块格式编写。
安全说明
- 切勿分享您的客户端 ID 和客户端密钥
- 访问令牌现在存储在用户主目录
~/.spotify-mcp/tokens.json
中,以实现会话和多个实例之间的持久性 - 磁盘上不存储任何用户数据
撤销应用程序访问权限
出于安全原因,您可能希望在以下情况下撤销应用程序对您的 Spotify 帐户的访问权限:
- 您不再使用此集成
- 您怀疑未经授权的访问
- 您正在解决身份验证问题
要撤销访问权限:
- 前往您的Spotify 帐户页面
- 在菜单中导航至“应用程序”
- 找到“MCP Claude Spotify”(或您为应用选择的名称)
- 点击“删除访问权限”
这会立即使所有访问和刷新令牌失效。下次使用auth-spotify
命令时,您需要再次授权该应用程序。
贡献
欢迎贡献!以下是一些需要遵循的准则:
开发工作流程
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 进行更改
- 运行测试以确保它们通过(
npm test
) - 提交您的更改(
git commit -m 'Add some amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 打开拉取请求
代码风格指南
该项目遵循以下编码标准:
- 使用 TypeScript 进行严格类型检查
- 遵循 ESM 模块格式
- 使用 2 个空格缩进
- 对变量和函数使用驼峰命名法
- 对类和接口使用 PascalCase
- 带有 JSDoc 注释的文档函数
- 保持行长在 100 个字符以内
项目结构
该项目遵循以下结构:
拉取请求流程
- 确保您的代码遵循样式指南
- 如果需要,更新文档
- 添加新功能测试
- 确保所有测试通过
- 您的 PR 将由维护人员审核
相关链接
执照
该项目根据 Mozilla 公共许可证 2.0 获得许可 - 有关详细信息,请参阅LICENSE文件。
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
该集成允许 Claude Desktop 与 Spotify 进行交互,使用户能够通过自然语言命令控制播放、搜索音乐、管理播放列表和获取推荐。
Related MCP Servers
- AsecurityFlicenseAqualityA server that connects Claude with Spotify, allowing users to control playback, search content, get information about tracks/albums/artists/playlists, and manage the Spotify queue.Last updated -4273Python
- AsecurityFlicenseAqualityConnects Claude with Spotify, allowing users to control playback, search for content, get music information, and manage the Spotify queue.Last updated -81Python
- -securityFlicense-qualityConnects Claude with Spotify, enabling playback control, search functionality, and queue management through Spotify's API.Last updated -Python
- -securityFlicense-qualityConnects Claude with Spotify to control playback, search music, get track information, and manage the queue through conversation.Last updated -Python