使用说明
Spotify MCP服务器
一个模型上下文协议(MCP)服务器,提供Spotify与OAuth授权流的集成,基于 模型上下文协议规范.
文件
index.ts-MCP服务器设置和StreamableHTTPServerTransport工具注册spotify.ts-Spotify API代币管理服务auth.ts-使用Drizzle适配器进行更好的口型配置db/-使用Drizzle ORMotocol(MCP)服务器的数据库模式和连接,该服务器提供Spotify与基于OAuth授权流的集成 模型上下文协议规范.
特性
- OAuth授权流程:使用Spotify OAuth实现MCP的授权规范
- 流式HTTP传输:使用MCP的StreamableHTTPServerTransport进行高效通信
- 自动令牌刷新:处理Spotify访问令牌过期并自动刷新
- 简单架构:身份验证、Spotify API调用和MCP工具之间的清晰分离
- 全面的Spotify工具:用于控制Spotify播放的多种工具
可用工具
回放控制
getCurrentlyPlaying-获取当前播放曲目的信息pausePlayback-暂停Spotify播放resumePlayback-恢复Spotify播放skipToNext-跳到下一首曲目skipToPrevious-跳至上一曲目setVolume-设置播放音量(当前默认为50%)
轨道发现
searchTracks-在Spotify上搜索曲目playTrack-播放特定曲目(增强功能即将推出)
用户信息
getUserProfile-获取用户的Spotify个人资料信息
建筑
文件
index.ts-MCP服务器设置和工具注册spotify.ts-Spotify API代币管理服务auth.ts-更好的身份验证配置db/-数据库架构和连接
许可证管理
这 SpotifyService 类自动处理:
- 令牌到期检查(带5分钟缓冲区)
- 使用刷新令牌自动刷新令牌
- 新令牌的数据库更新
- 刷新失败的错误处理
主要特点
- 令牌刷新:在令牌过期之前自动刷新令牌
- 数据库集成:使用Drizzle ORM和PostgreSQL进行令牌存储
- 错误处理:优雅地处理API错误和令牌问题
- 会话管理:使用Better Auth进行安全会话处理
设置
-
设置环境变量:
SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret -
在中配置数据库连接
db/index.ts -
运行数据库迁移:
bun run drizzle-kit push -
启动服务器:
bun run index.ts
用法
- 引导到
http://localhost:3000/sign-in通过Spotify进行身份验证 - 通过MCP客户端使用MCP工具
- 服务器在后台自动处理令牌刷新
技术说明
- 将BetterAuth与Drizzle适配器一起用于Spotify的OAuth流
- 实施MCP授权规范以进行安全身份验证
- 利用StreamableHTTPServerTransport进行高效通信
- 通过Drizzle ORM将令牌安全地存储在PostgreSQL数据库中
- 清晰地分离身份验证、API调用和MCP工具之间的问题
安装
要安装依赖项,请执行以下操作:
bun install
要运行:
bun run index.ts
此项目是使用创建的 bun init 在bun v1.2.13中。 包子 是一个快速的一体化JavaScript运行时。
许可证
MIT许可证