项目简介 Spotify MCP服务器是一个专门为LLM(大型语言模型)设计的后端服务,它通过Model Context Protocol (MCP) 提供对Spotify功能的访问。LLM客户端可以利用这些功能来搜索歌曲、控制播放、管理播放列表和查看用户音乐习惯,从而实现与Spotify的智能交互。
主要功能点
- 播放控制: 支持播放、暂停、下一曲、上一曲、设置音量、切换播放设备、设置随机播放和循环模式,以及精确到毫秒的进度跳转。
- 音乐搜索与播放: 可以按歌曲名称搜索并播放,或直接通过Spotify ID/URI播放特定歌曲或播放列表。
- 库与队列管理: 能够列出用户播放列表、已点赞歌曲、播放列表中的歌曲,并将歌曲添加到已点赞或指定播放列表,以及管理播放队列。
- 用户习惯分析: 获取最近播放的歌曲、用户最常听的歌曲和艺术家。
- 设备管理: 列出所有可用的Spotify设备,并可以将播放转移到不同的设备。
安装步骤 本项目推荐使用Docker部署,无需在本地安装Python环境。
-
获取Spotify API凭据:
- 访问 Spotify Developer Dashboard。
- 创建一个新应用(或使用现有应用)。
- 记录您的 Client ID 和 Client Secret。
- 在应用设置中,将 'http://127.0.0.1:8888/callback' 添加到 Redirect URIs。
- 如果您的应用处于“开发模式”,请将您的Spotify账户邮箱添加到“用户管理”部分。
-
一次性认证(Docker方式,推荐): 运行以下Docker命令进行认证。此步骤会引导您完成Spotify授权流程,并会将生成的认证令牌持久化保存到本地缓存目录。
docker run --rm -it \ -v ${HOME}/.cache/spotify-mcp:/app/.cache \ -e SPOTIPY_CLIENT_ID=your-client-id \ -e SPOTIPY_CLIENT_SECRET=your-client-secret \ -e SPOTIPY_REDIRECT_URI=http://127.0.0.1:8888/callback \ -e SPOTIPY_CACHE_PATH=/app/.cache/token \ docker.io/allesy/spotify-mcp:latest python -u -m spotify_mcp.cli.auth_init- 将 'your-client-id' 和 'your-client-secret' 替换为您的实际凭据。
- 命令执行后,会显示一个URL,请在浏览器中打开并授权应用。
- 授权完成后,从浏览器地址栏复制完整的重定向URL,并将其粘贴回终端中。
- 完成此步骤后,认证令牌将保存,后续运行MCP服务器时可自动复用。
服务器配置(供MCP客户端使用) 在您的MCP客户端(如Cursor, Claude Desktop等)的配置文件中添加以下JSON配置,以便客户端能够启动并连接到Spotify MCP服务器。
请将 'YOUR_USERNAME' 替换为您的实际用户目录名,并将 'your-client-id' 和 'your-client-secret' 替换为您的Spotify API凭据。
{ "mcpServers": { "spotify": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/Users/YOUR_USERNAME/.cache/spotify-mcp:/app/.cache", "-e", "SPOTIPY_CLIENT_ID", "-e", "SPOTIPY_CLIENT_SECRET", "-e", "SPOTIPY_REDIRECT_URI", "-e", "SPOTIPY_CACHE_PATH", "docker.io/allesy/spotify-mcp:latest" ], "env": { "SPOTIPY_CLIENT_ID": "your-client-id", "SPOTIPY_CLIENT_SECRET": "your-client-secret", "SPOTIPY_REDIRECT_URI": "http://127.0.0.1:8888/callback", "SPOTIPY_CACHE_PATH": "/app/.cache/token" } } } }
- 'mcpServers.spotify.command': 设定为 'docker',表示通过Docker启动服务器。
- 'mcpServers.spotify.args': Docker启动命令的参数列表。
- '-v /Users/YOUR_USERNAME/.cache/spotify-mcp:/app/.cache': 挂载卷以持久化Spotify认证令牌缓存。请务必将 '/Users/YOUR_USERNAME' 替换为您的实际用户目录路径。
- '-e SPOTIPY_CLIENT_ID', '-e SPOTIPY_CLIENT_SECRET', '-e SPOTIPY_REDIRECT_URI', '-e SPOTIPY_CACHE_PATH': 这些参数告诉Docker将环境变量传递给容器。
- 'docker.io/allesy/spotify-mcp:latest': 指定要运行的Docker镜像。
- 'mcpServers.spotify.env': 传递给Docker容器的环境变量。
- 'SPOTIPY_CLIENT_ID', 'SPOTIPY_CLIENT_SECRET', 'SPOTIPY_REDIRECT_URI', 'SPOTIPY_CACHE_PATH': 您的Spotify API凭据和缓存路径。这些值会覆盖上面 'args' 中的空占位符。
基本使用方法 配置完成后,重启您的MCP客户端。现在,您可以通过LLM客户端与Spotify MCP服务器进行交互,例如:
- 搜索歌曲: "搜索披头士的歌曲"
- 播放音乐: "播放我最喜欢的歌曲"
- 控制播放: "暂停播放" 或 "下一首"
- 查看播放列表: "列出我的播放列表"
- 获取当前播放: "现在正在播放什么?"
LLM客户端将调用相应的MCP工具来执行这些操作,并返回结果。
信息
分类
AI与计算