Spotify API访问服务

ArtistLens是一个强大的模型上下文协议(MCP)服务器,提供对Spotify Web API的访问,支持搜索曲目、专辑和艺术家,以及获取艺术家特定信息如热门曲目和相关艺术家。

  • by superseoworld
  • TypeScript
  • 本地部署
  • 23 星标
  • 更新于
在 GitHub 查看 superseoworld/mcp-spotify

使用说明

ArtistLens

功能强大的模型上下文协议(MCP)服务器,提供对Spotify Web API的访问。ArtistLens实现了与Spotify音乐目录的无缝交互,包括搜索曲目、专辑和艺术家,以及访问特定于艺术家的信息,如热门曲目和相关艺术家。

当前版本: 0.4.12

安装

通过Smithery安装

通过以下方式自动安装ArtistLens for Claude Desktop 史密瑟里:

npx -y @smithery/cli install @superseoworld/artistlens --client claude

手动安装

您可以全局安装该软件包:

npm install -g @thomaswawra/artistlens

或者直接用npx运行它:

npx -y @thomaswawra/artistlens

配置

添加到您的MCP设置文件(例如。, claude_desktop_config.json 或 cline_mcp_settings.json):

{
  "mcpServers": {
    "spotify": {
      "command": "npx",
      "args": ["-y", "@thomaswawra/artistlens"],
      "env": {
        "SPOTIFY_CLIENT_ID": "your_client_id",
        "SPOTIFY_CLIENT_SECRET": "your_client_secret"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

您需要提供您的Spotify API证书:

  1. 首选 Spotify开发者仪表板
  2. 创建新应用程序
  3. 获取您的客户ID和客户密码
  4. 将它们添加到配置中,如上所示

特性

  • 搜索曲目、专辑、艺术家和播放列表
  • 获取艺术家信息,包括热门曲目和相关艺术家
  • 获取专辑信息和曲目
  • 访问新版本和建议
  • 获取具有特定市场内容和章节的有声读物信息
  • 注意:有声读物端点可能需要额外的身份验证或特定市场的访问权限
  • 获取和修改播放列表信息(名称、描述、公共/私人状态)
  • 使用分页支持访问播放列表曲目和项目
  • 同时支持Spotify ID和URI
  • 具有客户端凭据流的自动令牌管理
  • 针对所有功能的全面测试套件
  • 组织良好的代码,关注点分离

可用工具

  • get_access_token:获取有效的Spotify访问令牌
  • search:搜索曲目、专辑、艺术家或播放列表
  • get_artist:获取艺术家信息
  • get_artist_top_tracks:获取艺术家的热门曲目
  • get_artist_related_artists:获得与给定艺术家相似的艺术家
  • get_artist_albums:获取艺术家的专辑
  • get_album:获取相册信息
  • get_album_tracks:获取专辑的曲目
  • get_track:获取跟踪信息
  • get_available_genres:获取可用流派列表以供推荐
  • get_new_releases:获取新专辑发行
  • get_recommendations:根据种子曲目、艺术家或流派获取曲目推荐
  • get_audiobook:获取带有可选市场参数的有声读物信息
  • get_multiple_audiobooks:获取多个有声读物的信息(最多50个)
  • get_audiobook_chapters:获取支持分页的有声读物章节(每次请求1-50章)
  • get_playlist:获取Spotify用户拥有的播放列表
  • get_playlist_tracks:获取播放列表曲目的完整详细信息(每个请求1-100首曲目)
  • get_playlist_items:获取播放列表中项目的完整详细信息(每个请求1-100个项目)
  • modify_playlist:更改播放列表详细信息(名称、描述、公共/私人状态、协作状态)
  • add_tracks_to_playlist:使用可选位置将一首或多首曲目添加到播放列表中
  • remove_tracks_from_playlist:从播放列表中删除一首或多首带有可选位置和快照ID的曲目
  • get_current_user_playlists:获取当前Spotify用户拥有或关注的播放列表列表(每次请求1-50个播放列表)
  • get_featured_playlists:获取具有可选区域设置和分页支持的Spotify特色播放列表列表
  • get_category_playlists:获取标记有特定类别的Spotify播放列表列表

更新中

要更新到最新版本:

# If installed globally
npm update -g @thomaswawra/artistlens

# If using npx, it will automatically use the latest version
npx -y @thomaswawra/artistlens

发展

这个项目是开源的,可以在GitHub上找到 https://github.com/superseoworld/artistlens.

项目结构

代码库组织在以下目录中:

  • src/handlers/:包含不同Spotify API端点的处理程序类
  • src/types/:请求和响应对象的TypeScript接口
  • src/utils/:API通信的实用程序函数和类
  • src/__tests__/:所有功能的Jest测试文件

测试

该项目使用Jest进行测试。要运行测试,请执行以下操作:

npm test

在开发过程中以监视模式运行测试:

npm run test:watch

贡献

贡献:

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 为您的更改添加测试
  4. 提交您的更改(git commit -m 'Add some amazing feature')
  5. 推到分支(git push origin feature/amazing-feature)
  6. 打开拉取请求

许可证

MIT许可证