一个全面的**模型上下文协议(MCP)**服务器,提供AI助手(如Claude Desktop)与Spotify Web API之间的无缝集成。此服务器使AI助手能够通过结构良好、类型安全的接口与Spotify的音乐流服务进行交互。
此MCP服务器作为AI助手与Spotify Web API之间的桥梁,允许用户:
git clone <repository-url>
cd Spotify-OAuth-MCP-server
npm install
# 构建TypeScript代码
npm run build
# 启动MCP服务器
npm start
# 开发模式自动重新加载
npm run dev
要将此MCP服务器与Claude Desktop一起使用,请将其添加到您的MCP配置中:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"spotify": {
"command": "node",
"args": ["/path/to/your/project/src/mcp/server.js"]
}
}
}
一旦与Claude Desktop集成,您可以使用自然语言命令:
"播放我的Discover Weekly播放列表"
"搜索The Beatles的歌曲"
"将这首歌添加到我的最爱"
"跳到下一首曲目"
"创建一个名为'Morning Vibes'的新播放列表"
"搜索带有放松音乐的播放列表"
"显示我本月的热门艺术家"
"现在播放什么?"
"将这首歌添加到我的队列"
"获取我最近播放的曲目"
"显示这首歌的歌词"
"获取纯文本歌词以供分析"
src/
├── mcp/
│ ├── server.ts # 主MCP服务器入口点
│ ├── helpers/
│ │ └── utils.ts # 工具函数和辅助程序
│ ├── schemas/
│ │ └── common.ts # 可重用的模式构建器
│ └── tools/
│ ├── index.ts # 工具注册和注册系统
│ ├── albums.ts # 与专辑相关的工具(4个工具)
│ ├── artists.ts # 与艺术家相关的工具(6个工具)
│ ├── tracks.ts # 与曲目相关的工具(8个工具)
│ ├── playlists.ts # 播放列表管理工具(10个工具)
│ ├── playback.ts # 播放控制工具(10个工具)
│ ├── user.ts # 用户资料工具(1个工具)
│ └── search.ts # 搜索功能工具(2个工具)
└── spotify.ts # Spotify Web API服务类
get_album:检索详细的专辑信息get_album_tracks:从特定专辑获取曲目get_new_releases:发现新的专辑发布search_albums:按关键词搜索专辑get_artist:获取详细的艺术家信息get_artist_albums:检索艺术家的专辑get_artist_top_tracks:获取艺术家的热门曲目search_artists:按关键词搜索艺术家get_followed_artists:获取用户关注的艺术家get_top_artists:获取用户的热门艺术家get_track:获取详细的曲目信息search_tracks:按关键词搜索曲目get_liked_tracks:获取用户保存/喜欢的曲目save_tracks:将曲目添加到用户的库remove_tracks:从用户的库中移除曲目get_top_tracks:获取用户的热门曲目get_recently_played:获取最近播放的曲目get_track_lyrics:获取曲目的纯文本歌词get_playlist:检索播放列表详情get_user_playlists:获取用户的播放列表get_playlist_tracks:从播放列表获取曲目create_playlist:创建一个新的播放列表add_to_playlist:将曲目添加到播放列表remove_from_playlist:从播放列表移除曲目search_playlists:按关键词搜索播放列表get_categories:获取浏览类别save_playlist:关注/保存用户创建的播放列表unsave_playlist:取消关注/保存播放列表get_currently_playing:获取当前播放信息start_playback:开始音乐播放resume_player:恢复暂停的播放pause_player:暂停当前播放skip_to_next:跳到下一首曲目skip_to_previous:跳到上一首曲目set_volume:调整播放音量add_to_queue:将歌曲添加到播放队列get_devices:获取可用的播放设备transfer_playback:在设备之间切换播放get_user_profile:获取当前用户的资料信息search_music:搜索曲目、艺术家、专辑或播放列表search_and_play_music:搜索内容并立即开始播放愉快地用AI听音乐吧! 🎵🤖