该项目实现了一个 模型上下文协议 (MCP) 服务器,允许您通过 MCP 客户端(如 Cursor 或 Claude for Desktop(仅限 macOS 和 Windows))使用自然语言控制 Spotify 播放。
此服务器提供了以下工具:
play: 播放曲目、专辑或播放列表,或恢复播放。pause: 暂停播放。next: 跳到下一曲目。previous: 跳到上一曲目。get_current_track: 获取当前播放曲目的信息。search: 搜索曲目、专辑、艺术家或播放列表。http://localhost:8888/callback 添加到您应用设置中的重定向 URI 中。克隆仓库:
git clone https://github.com/obre10off/spotify-mcp.git
cd spotify-mcp
安装依赖项:
bun install
创建 .env 文件:
在项目根目录下创建一个名为 .env 的文件。添加以下内容,并用您的实际 Spotify 凭证替换占位符:
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:8888/callback
# 这些将在运行授权脚本后填写:
SPOTIFY_ACCESS_TOKEN=
SPOTIFY_REFRESH_TOKEN=
运行授权脚本:
此脚本将打开您的浏览器,提示您登录 Spotify 并授予权限,然后检索您的初始访问和刷新令牌。
bun run auth
脚本将在控制台中打印 SPOTIFY_ACCESS_TOKEN 和 SPOTIFY_REFRESH_TOKEN。将这些值复制到您的 .env 文件中。
配置您的 MCP 客户端:
Cursor:
打开 Cursor 的设置(Cmd+, 或 Ctrl+,)。
搜索“模型上下文协议”。
点击“在 settings.json 中编辑”。
向 mcp.servers 数组添加以下内容(将 /absolute/path/to/your/spotify-mcp 替换为您 spotify-mcp 目录的 绝对 路径):
{
"mcp.servers": [
{
"spotify": {
"command": "bun",
"args": ["/absolute/path/to/your/spotify-mcp/src/index.ts"],
"env": {
"SPOTIFY_CLIENT_ID": "your_spotify_client_id",
"SPOTIFY_CLIENT_SECRET": "your_spotify_client_secret",
"SPOTIFY_REDIRECT_URI": "http://localhost:8_888/callback",
"SPOTIFY_ACCESS_TOKEN": "your_spotify_access_token",
"SPOTIFY_REFRESH_TOKEN": "your_spotify_refresh_token"
}
}
}
]
}
建议使用 .env 文件,并仅将与 Spotify 相关的环境变量放在那里,而不是添加到 settings.json 文件中。
Claude for Desktop (macOS/Windows):
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonmcpServers 对象添加以下内容(将 /absolute/path/to/your/spotify-mcp 替换为您 spotify-mcp 目录的 绝对 路径): {
"mcpServers": {
"spotify": {
"command": "bun",
"args": ["/absolute/path/to/your/spotify-mcp/src/index.ts"]
}
}
}
```
建议使用 `.env` 文件,并仅将与 Spotify 相关的环境变量放在那里,而不是添加到 `claude_desktop_config.json` 文件中。
重要提示: 在您的客户端配置中始终使用 绝对 路径。
重启您的 MCP 客户端
确保重启您的 MCP 客户端(Cursor/Claude),以应用设置。
bun run start
此命令启动服务器,并在文件更改时自动重新加载(感谢 Bun 的 --watch 标志)。在使用服务器期间,请保持此终端窗口打开。
一旦服务器运行且您的 MCP 客户端已配置,您可以开始使用自然语言命令来控制 Spotify。示例如下:
"播放波西米亚狂想曲"
"暂停音乐"
"正在播放什么歌曲?"
"搜索泰勒·斯威夫特的专辑"
"下一曲"
"播放 spotify:track:4uLU6hMCjMI75M1A2tKUQC"