使用说明

项目简介

本项目是一个 Spotify MCP 服务器,旨在为 AI 助手等 MCP 客户端提供访问 Spotify 音乐数据的功能。通过此服务器,AI 助手可以搜索音乐、获取艺术家和曲目信息、管理用户个人音乐库,从而扩展 AI 的音乐理解和交互能力。

主要功能点

  • 音乐搜索: 根据关键词搜索 Spotify 曲目、艺术家和专辑。
  • 艺术家信息查询: 获取艺术家的详细信息,如流派、粉丝数等。
  • 曲目信息查询: 获取曲目的详细信息,如专辑、时长、热度等。
  • 播放列表信息查询: 获取 Spotify 播放列表的详细信息,包括曲目列表。
  • 用户个性化音乐数据: 在用户授权后,可以获取用户的热门曲目、播放列表和已保存曲目等个性化音乐数据。
  • OAuth 认证: 支持 Spotify OAuth 认证流程,允许用户授权访问其 Spotify 账户数据。
  • Token 刷新: 支持 OAuth Token 刷新机制,保证用户授权的持久性。

安装步骤

  1. 注册 Spotify 开发者账号并创建应用:

  2. 配置环境变量:

    • 在项目根目录下创建 '.env' 文件。
    • 将以下内容复制到 '.env' 文件中,并替换为你自己的 Spotify 应用信息和回调 URI:
      SPOTIFY_CLIENT_ID=你的_Client_ID
      SPOTIFY_CLIENT_SECRET=你的_Client_Secret
      SPOTIFY_REDIRECT_URI=http://localhost:3000/callback
      注意: 'SPOTIFY_REDIRECT_URI' 需要与你在 Spotify 开发者应用中配置的回调 URI 一致。
  3. 安装依赖:

    • 确保你已安装 Node.js 和 npm。
    • 在项目根目录下打开终端,运行以下命令安装项目依赖:
      npm install
  4. 启动服务器:

    • 在项目根目录下打开终端,运行以下命令启动服务器:
      npm start
      服务器默认运行在 'http://localhost:3000'。

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

MCP 客户端需要配置以下信息才能连接到此 Spotify MCP 服务器:

{
  "serverName": "SpotifyMCP",
  "command": "npm",
  "args": ["start"]
}

参数注释:

  • 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。例如 "SpotifyMCP"。
  • 'command': 启动服务器的命令。由于项目使用 'npm start' 启动,因此设置为 "npm"。
  • 'args': 启动命令的参数。这里使用 'npm start',参数为 '["start"]'。

请注意:

  • 确保 MCP 客户端能够访问到运行 Spotify MCP Server 的机器和端口(默认为 'http://localhost:3000')。
  • 如果服务器部署在远程机器上,请将上述配置中的服务器地址更改为相应的远程地址。

基本使用方法

启动服务器后,你可以使用 HTTP 客户端(如 'curl'、Postman 或编程语言中的 HTTP 库)向服务器发送请求,与 Spotify API 进行交互。

示例 1: 搜索歌曲

使用 'POST' 请求访问 '/mcp/search' 接口,并传递 JSON 格式的请求体,例如搜索 "Bohemian Rhapsody" 这首歌:

curl -X POST \
  http://localhost:3000/mcp/search \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Bohemian Rhapsody",
    "type": "track"
  }'

服务器将返回 JSON 格式的搜索结果。

示例 2: 获取艺术家信息

使用 'GET' 请求访问 '/mcp/artist/{artistId}' 接口,例如获取 ID 为 '1dfeR4HaWDbWqJHLk5g1d1' 的 Queen 乐队的信息:

curl http://localhost:3000/mcp/artist/1dfeR4HaWDbWqJHLk5g1d1

服务器将返回 JSON 格式的艺术家详细信息。

更多接口: 请参考仓库的 'README.md' 文件或 'mcp-server.js' 代码,了解更多可用的 MCP 接口和使用方法,例如获取曲目信息、播放列表信息以及用户个性化数据接口等。

信息

分类

网页与API