Spotify播放控制服务器

Spotify MCP Server是一个基于Model Context Protocol (MCP)的服务器,用于与Spotify API交互,提供播放、暂停、跳过曲目、播放特定专辑或曲目等功能。

  • by 254binaryninja
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 254binaryninja/spotify-mcp

使用说明

Spotify MCP服务器

这 Spotify MCP服务器 是一个模型上下文协议(MCP)服务器,设计用于与Spotify API交互。它提供了控制Spotify播放的工具,如播放、暂停、跳过曲目、洗牌播放列表等。此服务器是使用 mcp 框架和 spotipy 图书馆。

特性

  • 播放、暂停和跳过曲目。
  • 打乱并重复播放列表。
  • 按名称播放特定专辑或曲目。
  • 用于无缝Spotify播放控制的内置工具。

先决条件

在设置服务器之前,请确保您拥有以下内容:

  1. Python 3.12或更高版本。
  2. 带有注册应用程序的Spotify开发者帐户。您将需要:
    • SPOTIFY_CLIENT_ID
    • SPOTIFY_CLIENT_SECRET
  3. A. .env 包含您的Spotify凭据的文件。
  4. 高级spotify账户

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd spotify-mcp-server
    
  2. 创建虚拟环境并激活它:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装 uv 对于依赖关系管理:

    pip install uv
    

    视窗

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
  4. 使用安装依赖项 uv 从pyproject.toml文件中:

    uv sync
    
  5. 创建一个 .env 在项目根目录中创建文件并添加您的Spotify凭据:

    SPOTIFY_CLIENT_ID=your_client_id
    SPOTIFY_CLIENT_SECRET=your_client_secret
    

用法

  1. 启动MCP服务器:

    python server.py
    
  2. 使用提供的工具控制Spotify播放。例如:

    • play():开始播放当前曲目。
    • pause():暂停当前曲目。
    • next_track():跳到下一首曲目。
    • play_album("album_name"):按名称播放特定专辑。
    • play_track("track_name"):按名称播放特定曲目。
  3. 将MCP工具添加到您的MCP客户端。例如,如果您正在使用Claude: 将此添加到项目的根目录

    uv mcp install server.py
    

使用Calude桌面的示例

这是JSON文件

{
"mcpServers": {
  "spotify-mcp-server": {
    "command": "~path-to-project\\spotify-mcp-server\\.venv\\Scripts\\python.exe",
    "args": [
      "~path-to-project\\spotify-mcp-server\\server.py"
    ],
    "transport": "stdio",
    "env":{
      "SPOTIFY_CLIENT_ID": "############",
      "SPOTIFY_CLIENT_SECRET": "############",
      "TRANSPORT": "stdio"
    }
  }
}
}

故障排除

  • Spotify身份验证失败:确保您的 SPOTIFY_CLIENT_ID 和 SPOTIFY_CLIENT_SECRET 正确设置在 .env 文件。

  • 服务器未启动:验证 __name__ 办理登机 server.py 已正确设置为 __server__:

     if __name__ == "__server__":
      mcp.run()
    

贡献

欢迎投稿!请随时打开问题或提交pull请求。