Spotify音乐API服务

一个基于Express.js的Spotify API服务,允许AI助手通过MCP协议与Spotify交互,实现音乐搜索、艺术家信息获取和播放列表管理等功能。

  • by addy07s
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 addy07s/mcp-server

使用说明

Spotify MCP服务器(Express.js)

这是一个模型上下文协议(MCP)服务器实现,允许人工智能助手与Spotify的API交互。服务器提供端点用于搜索曲目、获取艺术家信息和管理播放列表。

设置

  1. 在以下网址创建Spotify开发者帐户并创建新应用程序 Spotify开发者仪表板.
  2. 得到你的 客户端ID 和 客户端密钥 从您的Spotify应用程序。
  3. 创建一个 .env 根目录中的文件,内容如下:
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:3000/callback
  1. 安装依赖项:
npm install
  1. 运行服务器:
npm start

可用端点

服务器实现了以下MCP端点:

  • 发布 /mcp/search -搜索曲目、艺术家或专辑。
  • 获取 /mcp/artist/{artistId} -获取艺术家的详细信息。
  • 获取 /mcp/track/{trackId} -获取有关赛道的详细信息。
  • 获取 /mcp/playlist/{playlistId} -获取播放列表信息。
  • 获取 /mcp/me/top-tracks -获取用户的热门曲目(需要身份验证)。
  • 获取 /mcp/me/playlists -获取用户的播放列表(需要身份验证)。
  • 获取 /mcp/me/tracks -获取用户保存的曲目(需要身份验证)。
  • 获取 /mcp/auth/login -生成用于用户身份验证的Spotify登录URL。
  • 获取 /callback -处理Spotify OAuth回调并交换访问令牌的授权码。
  • 发布 /mcp/auth/refresh -刷新用户的访问令牌。

示例用法

以下是一个AI助手如何与服务器交互的示例:

// Search for a track
const searchResponse = await fetch('http://localhost:3000/mcp/search', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    query: 'Bohemian Rhapsody',
    type: 'track'
  })
});
const searchData = await searchResponse.json();

// Get artist information
const artistResponse = await fetch('http://localhost:3000/mcp/artist/1dfeR4HaWDbWqJHLk5g1d1');
const artistData = await artistResponse.json();

MCP协议实现

该服务器实现了模型上下文协议,允许AI助手:

  1. 通过Spotify进行身份验证。
  2. 搜索音乐内容。
  3. 检索有关艺术家、曲目和播放列表的详细信息。
  4. 访问个性化用户数据(通过适当的身份验证)。

安全说明

确保你的 .env 文件安全,永远不要将其提交给版本控制。服务器使用环境变量来管理敏感凭据。