这是一个实现模型上下文协议(MCP)的 Spotify 服务器,它能让 AI 助手与 Spotify 的 API 进行交互。该服务器具备搜索曲目、获取艺术家信息以及管理播放列表等功能,为用户提供便捷的音乐交互体验。
本服务器允许 AI 助手与 Spotify 的 API 进行交互,实现搜索曲目、获取艺术家信息等功能。
.env
文件,内容如下:SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:3000/callback
npm install
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
- 刷新用户的访问令牌。// 搜索曲目
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();
// 获取艺术家信息
const artistResponse = await fetch('http://localhost:3000/mcp/artist/1dfeR4HaWDbWqJHLk5g1d1');
const artistData = await artistResponse.json();
该服务器实现了模型上下文协议,允许 AI 助手:
服务器通过环境变量管理敏感凭证,以确保安全。
文档未提及相关内容,故跳过该章节。
⚠️ 重要提示
确保
.env
文件的安全性,切勿将其提交到版本控制。