项目简介
这是一个使用 Model Context Protocol (MCP) 构建的服务器,旨在与大型语言模型 (LLM) 客户端集成。它通过连接Spotify API,允许LLM根据用户提供的情感信息,自动生成、填充和管理Spotify播放列表。
主要功能点
- 情感分析: 分析用户的文本输入,提取情感关键词,并生成用于音乐搜索的增强提示。
- 在线搜索歌曲: 根据情感相关的搜索提示,通过在线搜索引擎(例如 Brave Search)查找合适的歌曲列表。
- 获取Spotify歌曲信息: 将找到的歌曲标题转换为 Spotify Track URI。
- 创建播放列表: 在用户的 Spotify 账户中创建一个新的播放列表,并可指定名称和描述。
- 向播放列表添加歌曲: 将获取到的 Spotify Track URI 添加到指定的播放列表中。
- 播放指定播放列表: 控制用户的 Spotify 播放器开始播放某个指定的播放列表。
- 资源暴露: 向 LLM 客户端暴露可用的功能(工具)和交互指南(资源,如播放列表创建流程)。
安装步骤
- 安装依赖管理器 'uv': 如果您还没有安装 'uv',请运行以下命令进行安装:
brew install uv # 或者参考 uv 官方文档获取其他系统的安装方式 - 克隆仓库: 将此项目仓库克隆到您的本地计算机:
git clone https://github.com/dldnlee/custom_spotify_mcp.git custom_spotify_mcp cd custom_spotify_mcp - 初始化环境并安装依赖: 在项目目录下运行以下命令,'uv' 将会自动创建虚拟环境并安装所需的库:
如果在运行 'uv init' 时遇到问题,您可以手动添加所需的库:uv inituv add "mcp[cli]" uv add "requests" - 获取 Spotify 开发者凭据: 访问 Spotify for Developers 创建一个应用程序,获取您的 Client ID 和 Client Secret。同时,您需要设置一个重定向 URI,例如 'http://127.0.0.1:8888/callback'。请确保这个 URI 与您在 Spotify 开发者控制台中设置的完全一致。
- 配置环境变量: 在项目根目录下创建一个 '.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 - 进行 Spotify 授权: 在项目目录下运行授权脚本。这会打开浏览器,引导您登录 Spotify 并授权应用访问您的账户。授权成功后,Access Token 和 Refresh Token 将会自动保存到您的 '.env' 文件中。
注意: Spotify Access Token 会过期,Refresh Token 用于获取新的 Access Token。本项目包含自动刷新 Access Token 的逻辑。python util/spotify_auth.py # 或根据您的Python版本使用 python3 - 安装 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 客户端)将能够:
- 发现服务器提供的资源和工具(例如通过访问 'list://resources' 资源)。
- 通过与 'playlist://create' 资源互动,获取创建情感播放列表的指南和所需的用户输入(如心情、歌曲数量)。
- 根据用户提供的信息和内部逻辑,自动调用服务器提供的工具(如 'analyze_emotion', 'search_tracks_online', 'search_tracks', 'create_playlist', 'add_tracks_to_playlist', 'play_playlist')来完成整个播放列表的生成和管理过程。
用户只需通过与 LLM 进行自然语言交互,描述他们的情感和需求,LLM 便会协同此 MCP 服务器完成后续的 Spotify 操作。
信息
分类
AI与计算