项目简介 Spotify MCP服务器是一个专门为LLM(大型语言模型)设计的后端服务,它通过Model Context Protocol (MCP) 提供对Spotify功能的访问。LLM客户端可以利用这些功能来搜索歌曲、控制播放、管理播放列表和查看用户音乐习惯,从而实现与Spotify的智能交互。

主要功能点

  • 播放控制: 支持播放、暂停、下一曲、上一曲、设置音量、切换播放设备、设置随机播放和循环模式,以及精确到毫秒的进度跳转。
  • 音乐搜索与播放: 可以按歌曲名称搜索并播放,或直接通过Spotify ID/URI播放特定歌曲或播放列表。
  • 库与队列管理: 能够列出用户播放列表、已点赞歌曲、播放列表中的歌曲,并将歌曲添加到已点赞或指定播放列表,以及管理播放队列。
  • 用户习惯分析: 获取最近播放的歌曲、用户最常听的歌曲和艺术家。
  • 设备管理: 列出所有可用的Spotify设备,并可以将播放转移到不同的设备。

安装步骤 本项目推荐使用Docker部署,无需在本地安装Python环境。

  1. 获取Spotify API凭据:

    • 访问 Spotify Developer Dashboard
    • 创建一个新应用(或使用现有应用)。
    • 记录您的 Client IDClient Secret
    • 在应用设置中,将 'http://127.0.0.1:8888/callback' 添加到 Redirect URIs
    • 如果您的应用处于“开发模式”,请将您的Spotify账户邮箱添加到“用户管理”部分。
  2. 一次性认证(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与计算