项目简介

Spotify MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在将Spotify的强大功能开放给大型语言模型(LLM)驱动的AI助手。它将Spotify的Web API封装成标准化的工具,使AI能够通过JSON-RPC协议与服务器通信,实现对Spotify的深度控制。这意味着您可以要求AI助手执行各种任务,例如播放特定歌曲、管理播放列表、搜索音乐或查询您的收听习惯。该项目提供了一个安全、可扩展的框架,以增强LLM应用与Spotify的交互能力。

主要功能点

  • 播放控制: 允许AI助手控制Spotify的音乐播放,包括播放、暂停、跳过歌曲、调节音量以及切换到不同的播放设备。
  • 搜索与发现: AI助手可以搜索Spotify上的歌曲、专辑、艺术家和播放列表,并根据用户的喜好获取个性化的歌曲推荐。
  • 音乐库管理: 用户可以通过AI助手保存(收藏)或移除他们音乐库中的歌曲。
  • 播放列表操作: AI助手能够创建新的播放列表,查看现有播放列表的详情和歌曲,并向播放列表中添加或移除歌曲。
  • 队列管理: AI助手可以查看当前播放队列中的歌曲,并向队列中添加新的歌曲。
  • 用户信息: 获取当前Spotify用户的个人资料信息,以及他们的收听统计数据,例如最常听的歌曲或艺术家。

安装步骤

  1. 创建Spotify应用程序:

    • 访问 Spotify开发者控制台,使用您的Spotify账号登录。
    • 点击“Create app”按钮。
    • 填写应用程序的名称(例如:“我的MCP服务器”)和描述。
    • 重定向URI (Redirect URI) 字段必须设置为 'http://127.0.0.1:8888/callback' (请务必使用 '127.0.0.1' 而非 'localhost',这是Spotify的要求)。
    • 同意条款并点击“保存”。
    • 在应用设置页面,您将找到您的 Client IDClient Secret,请妥善保存。
  2. 安装MCP服务器:

    • 首先,克隆此GitHub仓库到您的本地计算机:
      git clone https://github.com/N1KH1LT0X1N/Spotify-MCP-Server.git
      cd Spotify-MCP-Server
    • 然后,安装服务器及其所有依赖项。建议在一个Python虚拟环境中进行安装:
      # 创建并激活虚拟环境 (可选,但强烈推荐)
      python -m venv venv
      # 在macOS/Linux:
      source venv/bin/activate
      # 在Windows:
      .\venv\Scripts\activate
      
      # 安装服务器 (开发模式安装,包含依赖)
      pip install -e .
  3. 配置环境变量:

    • 在仓库的根目录中,您会找到一个名为 '.env.example' 的文件。请将其复制并重命名为 '.env':
      cp .env.example .env
      # 或者在Windows上
      copy .env.example .env
    • 使用文本编辑器打开新创建的 '.env' 文件,并填入您在第一步中获取的Spotify Client ID 和 Client Secret。
      SPOTIFY_CLIENT_ID=您的实际Client_ID
      SPOTIFY_CLIENT_SECRET=您的实际Client_Secret
      SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback
    • 注意: 'SPOTIFY_REDIRECT_URI' 必须与您在Spotify开发者控制台设置的一致。
  4. 首次认证:

    • 在配置好 '.env' 文件后,第一次运行服务器时需要进行Spotify OAuth认证。服务器将尝试在您的浏览器中自动打开Spotify授权页面。
    • 在浏览器中授予对应用程序的权限。完成后,您的浏览器将被重定向到一个 'http://127.0.0.1:8888/callback' 地址。
    • 重要提示: 浏览器可能会显示“连接被拒绝”或类似错误,这是预期的正常行为。您需要从浏览器地址栏复制完整的URL (包括 '?code=...' 部分),然后将其粘贴回运行服务器的终端中。服务器将自动处理并保存您的Spotify访问令牌和刷新令牌。

服务器配置 (供MCP客户端连接)

MCP客户端(如Claude Desktop)需要知道如何启动和连接到此MCP服务器。以下是配置MCP客户端的关键信息,您需要将其整合到您的MCP客户端的配置文件中(通常是JSON格式)。

  • 服务器名称: 'spotify'
  • 启动命令 (command): 'python' (或您的Python解释器的完整路径,如果不在系统PATH中)
  • 启动参数 (args): '["-m", "spotify_mcp.server"]' (指示Python作为模块运行Spotify MCP服务器的主文件)
  • 环境变量 (env):
    • 'SPOTIFY_CLIENT_ID': 您的Spotify Client ID。
    • 'SPOTIFY_CLIENT_SECRET': 您的Spotify Client Secret。
    • 'SPOTIFY_REDIRECT_URI': 'http://127.0.0.1:8888/callback'。
    • 'PYTHONPATH': (仅当您未在虚拟环境中安装且 'src' 目录不在Python默认搜索路径时需要) 您的 'Spotify-MCP-Server/src' 目录的完整路径。
  • 图标路径 (icon): (可选) 'Spotify-MCP-Server/icon.svg' 文件的完整路径,用于在客户端界面中显示服务器图标。

示例 MCP 客户端配置结构 (请根据您的MCP客户端文档进行实际配置)

{
  "mcpServers": {
    "spotify": {
      "command": "python", // 或指向虚拟环境中的python路径,例如:"/Users/您的用户名/Spotify-MCP-Server/venv/bin/python"
      "args": ["-m", "spotify_mcp.server"],
      "env": {
        "SPOTIFY_CLIENT_ID": "您的Client_ID",
        "SPOTIFY_CLIENT_SECRET": "您的Client_Secret",
        "SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8888/callback",
        // 如果您未使用虚拟环境或未通过pip install -e .安装,
        // 则可能需要添加以下行,将 '/完整/路径/到/Spotify-MCP-Server/src' 替换为实际路径:
        // "PYTHONPATH": "/完整/路径/到/Spotify-MCP-Server/src"
      },
      // (可选) 配置图标,将 '/完整/路径/到/Spotify-MCP-Server/icon.svg' 替换为实际路径:
      // "icon": "/完整/路径/到/Spotify-MCP-Server/icon.svg"
    }
  }
}

基本使用方法

在成功配置并启动MCP客户端后,AI助手现在就能够与您的Spotify MCP服务器进行交互了。您可以通过自然语言向AI助手提出请求:

  • 控制播放: “播放我的Discover Weekly歌单。” / “暂停当前播放的歌曲。” / “跳过这首歌。” / “把音量调到50%。”
  • 搜索与发现: “搜索爵士乐并创建一个播放列表。” / “给我推荐一些舒缓的音乐。”
  • 管理播放列表和音乐库: “将这首歌添加到我的健身歌单中。” / “显示我保存的所有歌曲。”
  • 获取用户信息: “我本月最热门的艺术家是谁?” / “显示我的个人资料。”

信息

分类

AI与计算