使用说明
项目简介
本项目是一个 Spotify MCP 服务器,旨在为 AI 助手等 MCP 客户端提供访问 Spotify 音乐数据的功能。通过此服务器,AI 助手可以搜索音乐、获取艺术家和曲目信息、管理用户个人音乐库,从而扩展 AI 的音乐理解和交互能力。
主要功能点
- 音乐搜索: 根据关键词搜索 Spotify 曲目、艺术家和专辑。
- 艺术家信息查询: 获取艺术家的详细信息,如流派、粉丝数等。
- 曲目信息查询: 获取曲目的详细信息,如专辑、时长、热度等。
- 播放列表信息查询: 获取 Spotify 播放列表的详细信息,包括曲目列表。
- 用户个性化音乐数据: 在用户授权后,可以获取用户的热门曲目、播放列表和已保存曲目等个性化音乐数据。
- OAuth 认证: 支持 Spotify OAuth 认证流程,允许用户授权访问其 Spotify 账户数据。
- Token 刷新: 支持 OAuth Token 刷新机制,保证用户授权的持久性。
安装步骤
-
注册 Spotify 开发者账号并创建应用:
- 访问 Spotify Developer Dashboard 注册并创建一个新的应用。
- 获取应用的 Client ID 和 Client Secret。
-
配置环境变量:
- 在项目根目录下创建 '.env' 文件。
- 将以下内容复制到 '.env' 文件中,并替换为你自己的 Spotify 应用信息和回调 URI:
注意: 'SPOTIFY_REDIRECT_URI' 需要与你在 Spotify 开发者应用中配置的回调 URI 一致。SPOTIFY_CLIENT_ID=你的_Client_ID SPOTIFY_CLIENT_SECRET=你的_Client_Secret SPOTIFY_REDIRECT_URI=http://localhost:3000/callback
-
安装依赖:
- 确保你已安装 Node.js 和 npm。
- 在项目根目录下打开终端,运行以下命令安装项目依赖:
npm install
-
启动服务器:
- 在项目根目录下打开终端,运行以下命令启动服务器:
服务器默认运行在 'http://localhost:3000'。npm start
- 在项目根目录下打开终端,运行以下命令启动服务器:
服务器配置 (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