使用说明
Spotify MCP服务器
用于Spotify分析和播放列表分析的模型上下文协议(MCP)服务器。该服务器提供工具,用于与Spotify进行身份验证,并分析播放列表数据,以发现相关艺术家的趋势。
特性
- 播放列表分析:按曲目搜索播放列表,分析艺术家关系
- 轨迹分析:获取曲目受欢迎程度和详细信息
- 艺术家趋势分析:发现相关艺术家和流派模式
快速开始
1.设置Spotify应用程序
- 首选 Spotify开发者仪表板
- 创建新应用程序
- 记下你的 客户端ID 和 客户端密钥
- 添加
https://example.com/callback作为重定向URI(用于OAuth流)
2.安装依赖项
cd spotify-mcp-server
npm install
3.配置环境
cp env.example .env
编辑 .env 使用您的Spotify应用凭据:
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
SPOTIFY_REDIRECT_URI=https://example.com/callback
4.运行MCP服务器
npm run dev
身份验证方法
方法1:简单CLI身份验证(建议用于测试)
使用客户端凭据流-无需浏览器交互:
node spotify-cli.js login
此方法适用于公共数据访问(曲目、专辑、播放列表、艺术家信息)。
方法2:完整的OAuth 2.0流程(针对用户特定数据)
要访问用户的私人播放列表和个人数据:
- 生成身份验证URL:
node spotify-cli.js generate - 用户授权:访问URL,登录Spotify
- 完成身份验证:
node spotify-cli.js auth "CODE" "CODE_VERIFIER"
身份验证持久性
- 令牌保存到
.spotify-tokens.json(忽略) - 过期令牌的自动令牌刷新
- OAuth与客户端凭据令牌的单独存储
可用CLI命令
快速命令参考
# Help
help # Show all commands grouped by category
help CATEGORY # Show detailed help for a given category
# Authentication
login # Simple CLI auth
status # Check auth status
generate # Generate OAuth URL
auth "CODE" "VERIFIER" # Complete OAuth
# User & System
profile # Get user profile
tools # List available MCP tools
# Search
search "TRACK_NAME" "ARTIST" # Search for tracks
albums "ARTIST_NAME" # Find artist's albums
playlists "TRACK_NAME" "ARTIST" # Find playlists containing track
# Analytics
popularity "TRACK_ID" # Get track popularity
album-popularity "ALBUM_ID" # Get album popularity score
artist-popularity "ARTIST_ID" # Get artist popularity score
analyze-single "TRACK_ID" # Comprehensive single analysis
analyze-genre "ARTIST_ID" # Analyze artist genre information
trends "ARTIST_ID" # Analyze artist trends
explore-metrics "ARTIST_ID" # Explore comprehensive artist metrics
# Utility
album-tracks "ALBUM_ID" # Get album tracks with popularity
获取Spotify ID
- 轨道ID:来自Spotify URL
https://open.spotify.com/track/TRACK_ID - 艺术家ID:来自Spotify URL
https://open.spotify.com/artist/ARTIST_ID - 播放列表ID:来自Spotify URL
https://open.spotify.com/playlist/PLAYLIST_ID
可用的MCP工具
-
authenticateSimple:使用客户端凭据的简单CLI身份验证- 无需参数
- 返回:身份验证状态
- 公共数据访问工作
-
generateAuthUrl:为完整OAuth生成Spotify授权URL- 可选:
state安全参数 - 返回:验证URL和代码验证器
- 可选:
-
authenticate:完成OAuth流程- 必修的:
code(来自回调),codeVerifier(来自generateAuthUrl) - 返回:身份验证状态
- 必修的:
-
getAuthStatus:检查当前身份验证状态 -
getCurrentUserProfile:获取当前用户的Spotify个人资料- 返回:用户ID、显示名称、电子邮件、国家、关注者等。
-
testConnection:测试API连接和身份验证 -
getTrackPopularity:获取曲目的流行度得分- 必修的:
trackId(Spotify曲目ID) - 返回:人气得分(0-100),曲目详情
- 必修的:
-
searchPlaylistsByTrack:查找包含特定曲目的播放列表- 必修的:
trackName,artistName - 可选:
limit(默认值:20) - 返回:包含曲目计数、所有者和描述的播放列表列表
- 必修的:
-
analyzeArtistTrends:分析艺术家关系和趋势- 必修的:
artistId(Spotify艺术家ID) - 返回:艺术家信息、相关艺术家、流派分析、流行趋势
- 必修的:
-
searchTracks:按姓名和艺术家搜索曲目- 必修的:
query(搜索查询,例如,'曲目:“歌曲名称”艺术家:“艺术家名称”') - 可选:
limit(默认值:20) - 返回:曲目详细信息,包括ID、流行度、专辑信息
- 必修的:
-
searchArtistAlbums:查找艺术家的专辑和单曲- 必修的:
artistName(要搜索的艺术家姓名) - 可选:
limit(默认值:10) - 返回:艺术家信息、按发行日期排序的完整唱片、最新专辑
- 必修的:
-
getAlbumTracks:获取包含流行度评分的专辑中的所有曲目- 必修的:
albumId(Spotify专辑ID) - 可选:
limit(默认值:50) - 返回:专辑信息、所有受欢迎程度评分的曲目、分析(平均、最受欢迎/最不受欢迎的曲目)
- 必修的:
-
getAlbumPopularity:获取专辑流行度和详细信息- 必修的:
albumId(Spotify专辑ID) - 返回:专辑流行度得分、发行信息、标签、流派、总曲目
- 必修的:
-
getArtistPopularity:获取艺术家人气和个人资料信息- 必修的:
artistId(Spotify艺术家ID) - 返回:艺术家人气评分、关注者数量、流派、个人资料图片
- 必修的:
-
analyzeSingle:具有视觉元素的综合单项分析- 必修的:
trackId(Spotify曲目ID) - 可选:
includeAlbumTracks(分析专辑中的其他曲目,默认值:false) - 回报:曲目与专辑流行度比较、专辑封面、表演见解、营销建议
- 必修的:
故障排除
调试模式
集 NODE_ENV=development 对于详细日志记录:
NODE_ENV=development npm run dev
许可证
麻省理工学院