Spotify MCP服务器

本项目是一个基于Model Context Protocol (MCP) 实现的服务器,旨在让大型语言模型 (LLM) 能够与 Spotify 服务进行交互。通过此服务器,LLM客户端(如 Claude)可以调用预设的工具,实现搜索歌曲、创建播放列表、获取音乐推荐等功能,从而扩展 LLM 在音乐领域的应用能力。

主要功能点

  • 搜索歌曲: 根据歌曲名称、艺术家或关键词在 Spotify 上查找音乐。
  • 查看个人资料: 获取当前 Spotify 用户的个人信息。
  • 创建播放列表: 在用户的 Spotify 账户中创建新的播放列表。
  • 添加歌曲到播放列表: 将指定的歌曲添加到已有的播放列表中。
  • 获取音乐推荐: 基于用户偏好或种子歌曲获取个性化的音乐推荐。

安装步骤

  1. 环境准备:

    • 确保已安装 Node.js v16 或更高版本和 npm。
    • 拥有一个 Spotify 账户。
    • Spotify开发者仪表板 注册一个 Spotify 开发者应用。
  2. 创建 Spotify 开发者应用:

    • 登录 Spotify 开发者仪表板。
    • 点击 "Create an App" 创建应用。
    • 填写应用名称和描述。
    • 在 "Redirect URIs" 中添加 'http://localhost:8888/callback'。
    • 记录应用的 Client IDClient Secret
  3. 安装项目:

    # 克隆或下载仓库
    git clone https://github.com/hrishi0102/spotifyyy-mcp.git
    cd spotifyyy-mcp
    
    # 安装依赖
    npm install
  4. 获取 Spotify 访问令牌:

    • 修改 'spotify-auth.js' 文件,将 'CLIENT_ID' 和 'CLIENT_SECRET' 替换为你 Spotify 应用的凭据。
    • 运行身份验证脚本:
      node spotify-auth.js
      脚本将打开浏览器,引导你登录 Spotify 并授权应用访问你的账户。授权成功后,访问令牌将保存到 'secrets.json' 文件中。
  5. 构建 MCP 服务器:

    npm run build
  6. 配置 MCP 客户端 (以 Claude Desktop 为例):

    • 打开 Claude Desktop 的配置文件 ('claude_desktop_config.json')。
      • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
      • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
    • 在 'mcpServers' 中添加 Spotify 服务器配置:
      {
        "mcpServers": {
          "spotify": {
            "command": "node",
            "args": ["/path/to/spotifyyy-mcp/build/spotify-mcp-server.js"]
          }
        }
      }
      注意: 将 '/path/to/spotifyyy-mcp' 替换为你的项目实际路径。
  7. 重启 Claude Desktop: 关闭并重新打开 Claude Desktop 使配置生效。

基本使用方法

  1. 设置 Spotify 凭据: 在与 Claude 对话开始时,首先需要使用 'set-spotify-credentials' 工具设置你的 Spotify 凭据。凭据信息来源于之前步骤生成的 'secrets.json' 文件。

    Tool: set-spotify-credentials
    Parameters:
    {
      "clientId": "你的 Client ID",
      "clientSecret": "你的 Client Secret",
      "accessToken": "你的 access_token",
      "refreshToken": "你的 refresh_token"
    }
  2. 使用其他 Spotify 工具: 凭据设置成功后,即可使用其他工具与 Spotify 进行交互。例如:

    • 搜索歌曲:

      Tool: search-tracks
      Parameters:
      {
        "query": "周杰伦",
        "limit": 3
      }
    • 创建播放列表:

      Tool: create-playlist
      Parameters:
      {
        "name": "我的中文歌曲",
        "description": "使用 Claude 创建的播放列表"
      }
    • 查看当前用户:

      Tool: get-current-user
      Parameters: {}

    更多工具的使用方法请参考仓库 'README.md' 文件中的 "Example Prompts" 部分。

服务器配置 (MCP 客户端配置):

{
  "mcpServers": {
    "spotify": {
      "command": "node",
      "args": ["/path/to/spotifyyy-mcp/build/spotify-mcp-server.js"]
    }
  }
}
  • 'server name': "spotify" (用户自定义,用于在客户端中标识该服务器)
  • 'command': "node" (启动服务器的命令,这里使用 Node.js 运行时)
  • 'args': '["/path/to/spotifyyy-mcp/build/spotify-mcp-server.js"]' (传递给 'command' 的参数,指向服务器 JavaScript 文件的绝对路径,请务必替换为实际路径)

信息

分类

生产力应用