obre10off
服务介绍
Spotify MCP 服务器
本项目实现了一个 Model Context Protocol (MCP) 服务器,允许您通过自然语言使用 MCP 客户端(如 Cursor 或 Claude for Desktop(仅限 macOS 和 Windows))来控制 Spotify 播放。
功能
该服务器提供了以下工具:
play:播放曲目、专辑或播放列表,或恢复播放。pause:暂停播放。next:跳到下一首曲目。previous:跳到上一首曲目。get_current_track:获取当前播放曲目的信息。search:搜索曲目、专辑、艺术家或播放列表。
前提条件
- Bun(版本 1.0.0 或更高)
- 一个 Spotify Premium 账户。
- 一个 Spotify 开发者应用程序:
- 在 Spotify 开发者仪表板创建一个。
- 获取您的 Client ID 和 Client Secret。
- 将
http://localhost:8888/callback添加到您的应用设置中的 Redirect URIs。
- 一个 MCP 客户端(例如 Cursor 或 Claude for Desktop)。
安装和设置
-
克隆仓库:
bash
git clone https://github.com/obre10off/spotify-mcp.git
cd spotify-mcp -
安装依赖项:
bash
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 并授予权限,然后检索您的初始访问令牌和刷新令牌。
bash
bun run auth脚本会将
SPOTIFY_ACCESS_TOKEN和SPOTIFY_REFRESH_TOKEN打印到控制台。将这些值复制到您的.env文件中。 -
配置您的 MCP 客户端:
-
Cursor:
-
打开 Cursor 设置(Cmd+, 或 Ctrl+,)。
-
搜索 "Model Context Protocol"。
-
点击 "Edit in settings.json"。
-
向
mcp.servers数组中添加以下内容(将/absolute/path/to/your/spotify-mcp替换为您的spotify-mcp目录的绝对路径):json
{
"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:8888/callback",
"SPOTIFY_ACCESS_TOKEN": "your_spotify_access_token",
"SPOTIFY_REFRESH_TOKEN": "your_spotify_refresh_token"
}
}
}
]
}建议使用
.env文件,并仅在其中放置与 Spotify 相关的环境变量,而不是将值添加到 settings.json 文件中。
-
-
Claude for Desktop (macOS/Windows):
- 打开 Claude for Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%Claudeclaude_desktop_config.json* 在mcpServers对象中添加以下内容(将/absolute/path/to/your/spotify-mcp替换为您的spotify-mcp目录的绝对路径):
json
{
"mcpServers": {
"spotify": {
"command": "bun",
"args": ["/absolute/path/to/your/spotify-mcp/src/index.ts"]
}
}
}
- macOS:
- 打开 Claude for Desktop 配置文件:
建议使用
.env文件,并仅在其中放置与 Spotify 相关的环境变量,而不是将这些值添加到claude_desktop_config.json文件中。 -
- 重要提示: 在客户端配置中始终使用绝对路径。
-
重启您的MCP客户端
确保重启您的MCP客户端(Cursor/Claude),以应用设置。
运行服务器
bash
bun run start
此命令会启动服务器,并在文件更改时自动重新加载(感谢Bun的 --watch 标志)。在使用服务器期间,请保持此终端窗口打开。
使用方法
一旦服务器运行并且您的MCP客户端已配置完毕,您可以开始使用自然语言命令来控制Spotify。示例:
- "播放《波西米亚狂想曲》"
- "暂停音乐"
- "正在播放什么歌曲?"
- "搜索泰勒·斯威夫特的专辑"
- "下一首"
- "播放 spotify:track:4uLU6hMCjMI75M1A2tKUQC"