返回市场
-spotify-mcp服务器

-spotify-mcp服务器

作者:obre10off2 星标更新:2025-03-20

项目介绍

Spotify MCP 服务器

该项目实现了一个 模型上下文协议 (MCP) 服务器,允许您通过 MCP 客户端(如 CursorClaude for Desktop(仅限 macOS 和 Windows))使用自然语言控制 Spotify 播放。

功能

此服务器提供了以下工具:

  • play: 播放曲目、专辑或播放列表,或恢复播放。
  • pause: 暂停播放。
  • next: 跳到下一曲目。
  • previous: 跳到上一曲目。
  • get_current_track: 获取当前播放曲目的信息。
  • search: 搜索曲目、专辑、艺术家或播放列表。

预备条件

  • Bun(版本 1.0.0 或更高)
  • 一个 Spotify Premium 账户。
  • 一个 Spotify 开发者应用:
    • Spotify 开发者仪表板创建一个。
    • 获取您的客户端 ID 和客户端密钥。
    • http://localhost:8888/callback 添加到您应用设置中的重定向 URI 中。
  • 一个 MCP 客户端(例如,Cursor 或 Claude for Desktop)。

安装与设置

  1. 克隆仓库:

    git clone https://github.com/obre10off/spotify-mcp.git
    cd spotify-mcp
    
  2. 安装依赖项:

    bun install
    
  3. 创建 .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=
    
  4. 运行授权脚本:

    此脚本将打开您的浏览器,提示您登录 Spotify 并授予权限,然后检索您的初始访问和刷新令牌。

    bun run auth
    

    脚本将在控制台中打印 SPOTIFY_ACCESS_TOKENSPOTIFY_REFRESH_TOKEN。将这些值复制到您的 .env 文件中。

  5. 配置您的 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):

      • 打开 Claude for Desktop 配置文件:
        • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
        • Windows: %APPDATA%\Claude\claude_desktop_config.json
      • mcpServers 对象添加以下内容(将 /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` 文件中。
      
      
    • 重要提示: 在您的客户端配置中始终使用 绝对 路径。

  6. 重启您的 MCP 客户端

    确保重启您的 MCP 客户端(Cursor/Claude),以应用设置。

运行服务器

bun run start

此命令启动服务器,并在文件更改时自动重新加载(感谢 Bun 的 --watch 标志)。在使用服务器期间,请保持此终端窗口打开。

使用方法

一旦服务器运行且您的 MCP 客户端已配置,您可以开始使用自然语言命令来控制 Spotify。示例如下:

"播放波西米亚狂想曲"

"暂停音乐"

"正在播放什么歌曲?"

"搜索泰勒·斯威夫特的专辑"

"下一曲"

"播放 spotify:track:4uLU6hMCjMI75M1A2tKUQC"