使用说明
用于Gemini CLI的Spotify MCP服务器
一种模型上下文协议(MCP)服务器,使Google Gemini CLI能够通过自然语言命令控制Spotify。
特性
- 播放控制:播放播放列表、专辑和曲目
- 搜索:按歌曲、艺术家或专辑查找音乐
- 回放控制:播放、暂停、跳过和调整音量
- 睡眠定时器:在指定的持续时间后自动暂停播放
先决条件
- Node.js 18+
- npm或纱线
- Spotify开发者帐户
- 已安装Google Gemini CLI(
npm install -g @google/gemini-cli)
快速开始
1.安装依赖项
npm install
npm run build
2.Spotify开发者设置
- 首选 Spotify开发者仪表板
- 创建新应用程序
- 复制您的 客户端ID 和 客户端密钥
- 点击“编辑设置”→添加重定向类型:
http://127.0.0.1:3000/callback - 点击“保存”
重要提示: Spotify需要 127.0.0.1 (不是 localhost)用于重定向URI。
3.配置环境
创建一个 .env 项目根目录中的文件:
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
SPOTIFY_REDIRECT_URI=http://127.0.0.1:3000/callback
4.身份验证
npm run auth
这将打开您的浏览器进行Spotify授权,并将令牌保存到 tokens.json (一次性设置)。
5.配置Gemini CLI
生成 .gemini/settings.json 从你的 .env 文件:
npm run setup:gemini
此脚本会自动执行以下操作:
- 阅读您的
.env文件 - 创造
.gemini/settings.json使用正确的路径和API密钥 - 填充您的所有环境变量
.env文件
注: 跑 npm run setup:gemini 每当您更新您的 .env 文件或构建项目后。
6.使用它!
配置后,启动Gemini CLI并询问:
- “播放我的每周发现播放列表”
- “搜索披头士乐队的歌曲”
- “暂停Spotify”
- “设置30分钟睡眠计时器”
- “现在在玩什么?”
可用的MCP工具
play_playlist-按名称播放播放列表play_album-按名称播放专辑play_track-按名称播放曲目search_music-搜索音乐control_playback-控制播放(播放、暂停、跳过、音量)get_current_playing-获取当前播放的曲目set_sleep_timer-设置睡眠定时器cancel_sleep_timer-取消活动计时器get_active_timers-列出活动计时器
故障排除
身份验证问题
- 重定向URI不匹配:确保
.envSpotify Dashboard具有完全相同的URI(http://127.0.0.1:3000/callback) - 重定向URI无效:必须使用
127.0.0.1不localhost(Spotify要求) - 令牌已过期:删除
tokens.json然后跑npm run auth再次
Gemini CLI找不到服务器
- 验证到的绝对路径
dist/server.js是正确的 - 检查是否设置了环境变量(如果使用方法2)
- 确保Node.js在PATH中
- 手动测试服务器:
node dist/server.js(应该开始时没有错误)
服务器错误
- 确保Spotify应用程序已打开并且设备处于活动状态
- 验证
tokens.json存在且有效 - 检查网络连接
发展
# Build TypeScript
npm run build
# Run MCP server (for testing)
npm start
# Authenticate with Spotify
npm run auth
# Development mode (auto-reload)
npm run dev
项目结构
src/
server.ts # MCP server entry point
auth-helper.ts # Authentication helper script
spotify/
auth.ts # OAuth authentication
client.ts # Spotify API client
tools/ # MCP tool implementations
timer.ts # Timer manager