项目简介

这是一个使用 Model Context Protocol (MCP) 构建的服务器,旨在与大型语言模型 (LLM) 客户端集成。它通过连接Spotify API,允许LLM根据用户提供的情感信息,自动生成、填充和管理Spotify播放列表。

主要功能点

  • 情感分析: 分析用户的文本输入,提取情感关键词,并生成用于音乐搜索的增强提示。
  • 在线搜索歌曲: 根据情感相关的搜索提示,通过在线搜索引擎(例如 Brave Search)查找合适的歌曲列表。
  • 获取Spotify歌曲信息: 将找到的歌曲标题转换为 Spotify Track URI。
  • 创建播放列表: 在用户的 Spotify 账户中创建一个新的播放列表,并可指定名称和描述。
  • 向播放列表添加歌曲: 将获取到的 Spotify Track URI 添加到指定的播放列表中。
  • 播放指定播放列表: 控制用户的 Spotify 播放器开始播放某个指定的播放列表。
  • 资源暴露: 向 LLM 客户端暴露可用的功能(工具)和交互指南(资源,如播放列表创建流程)。

安装步骤

  1. 安装依赖管理器 'uv': 如果您还没有安装 'uv',请运行以下命令进行安装:
    brew install uv 
    # 或者参考 uv 官方文档获取其他系统的安装方式
  2. 克隆仓库: 将此项目仓库克隆到您的本地计算机:
    git clone https://github.com/dldnlee/custom_spotify_mcp.git custom_spotify_mcp
    cd custom_spotify_mcp
  3. 初始化环境并安装依赖: 在项目目录下运行以下命令,'uv' 将会自动创建虚拟环境并安装所需的库:
    uv init
    如果在运行 'uv init' 时遇到问题,您可以手动添加所需的库:
    uv add "mcp[cli]"
    uv add "requests"
  4. 获取 Spotify 开发者凭据: 访问 Spotify for Developers 创建一个应用程序,获取您的 Client ID 和 Client Secret。同时,您需要设置一个重定向 URI,例如 'http://127.0.0.1:8888/callback'。请确保这个 URI 与您在 Spotify 开发者控制台中设置的完全一致。
  5. 配置环境变量: 在项目根目录下创建一个 '.env' 文件(如果不存在),并添加以下信息,将占位符替换为您真实的凭据和重定向 URI:
    SPOTIFY_CLIENT_ID=your-spotify-client-id
    SPOTIFY_CLIENT_SECRET=your-spotify-client-secret
    SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback
    # 添加 Brave Search API Key,用于在线搜索歌曲
    BRAVE_API_KEY=your-brave-api-key 
  6. 进行 Spotify 授权: 在项目目录下运行授权脚本。这会打开浏览器,引导您登录 Spotify 并授权应用访问您的账户。授权成功后,Access Token 和 Refresh Token 将会自动保存到您的 '.env' 文件中。
    python util/spotify_auth.py
    # 或根据您的Python版本使用 python3
    注意: Spotify Access Token 会过期,Refresh Token 用于获取新的 Access Token。本项目包含自动刷新 Access Token 的逻辑。
  7. 安装 MCP 服务器: 使用 MCP CLI 命令将此服务器安装到您的 MCP 环境中:
    mcp install server.py

服务器配置(供MCP客户端使用)

此 MCP 服务器需要由支持 MCP 协议的客户端(如特定的 LLM 应用)来连接和使用。客户端在配置此服务器时,通常需要以下信息:

  • 服务器名称 (Server Name): 'Custom Spotify MCP'
  • 启动命令 (Command): 'python' (或根据您的环境使用 'python3')
  • 启动参数 (Args): '["server.py"]'
  • 通信协议: 该服务器默认使用标准输入/输出 (Stdio) 协议进行通信。

用户需要在其MCP客户端的配置界面或配置文件中添加相应的服务器条目,指定以上信息,以便客户端能够发现并运行此服务器。

基本使用方法

成功安装并配置到 MCP 客户端后,此 Spotify MCP 服务器将作为 LLM 可用的一个“能力”出现。您的 LLM(如果它集成了此 MCP 客户端)将能够:

  1. 发现服务器提供的资源和工具(例如通过访问 'list://resources' 资源)。
  2. 通过与 'playlist://create' 资源互动,获取创建情感播放列表的指南和所需的用户输入(如心情、歌曲数量)。
  3. 根据用户提供的信息和内部逻辑,自动调用服务器提供的工具(如 'analyze_emotion', 'search_tracks_online', 'search_tracks', 'create_playlist', 'add_tracks_to_playlist', 'play_playlist')来完成整个播放列表的生成和管理过程。

用户只需通过与 LLM 进行自然语言交互,描述他们的情感和需求,LLM 便会协同此 MCP 服务器完成后续的 Spotify 操作。

信息

分类

AI与计算