这是一个全面的模型上下文协议(MCP) 服务器,它能让 AI 助手(如 Claude Desktop)与 Spotify Web API 实现无缝集成。该服务器使 AI 助手能够通过一个结构良好、类型安全的接口与 Spotify 的音乐流媒体服务进行交互。
git clone
cd Spotify-OAuth-MCP-server
npm install
# 构建 TypeScript 代码
npm run build
# 启动 MCP 服务器
npm start
# 开发模式,支持自动重新加载
npm run dev
按照快速开始部分的步骤进行操作:
将此 MCP 服务器与 Claude Desktop 集成后,你可以使用自然语言命令,例如:
"播放我的发现周报播放列表"
"搜索披头士乐队的歌曲"
"将这首歌添加到我的收藏"
"跳到下一首曲目"
"创建一个名为 '清晨氛围' 的新播放列表"
"搜索带有轻松音乐的播放列表"
"显示我本月的热门艺术家"
"当前正在播放什么?"
"将这首歌添加到我的播放队列"
"获取我最近播放的曲目"
"显示这首歌的歌词"
"获取纯文本歌词以进行分析"
要在 Claude Desktop 中使用此 MCP 服务器,将其添加到你的 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"]
}
}
}
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 一同享受愉快的音乐流媒体体验!🎵🤖