使用说明
Spotify MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供与Spotify Web API的无缝集成。该项目包括一个功能强大的MCP服务器,具有全面的音乐数据访问功能,以及一个用于音乐发现和探索的漂亮的Streamlit web界面。
特性
核心MCP服务器功能
- 🔍 音乐搜索:搜索包含详细元数据的曲目、艺术家、专辑和播放列表
- 🎤 艺术家探索者:获取全面的艺术家信息、热门曲目、专辑和相关数据
- 💿 专辑发现:浏览包含完整曲目列表和元数据的专辑
- 🎯 播放列表管理:使用完整曲目信息访问和分析播放列表
- 🎨 浏览分类:探索Spotify的音乐类别和基于流派的播放列表
- 🆕 新发布:发现最新专辑和特色内容
- 🔐 客户端凭据身份验证:用于公共数据访问的安全应用程序级身份验证
高级服务器功能
- 许可证管理:自动令牌刷新和缓存系统
- 错误处理:具有重试逻辑和速率限制管理的全面错误处理
- 健康监测:内置健康检查和状态端点(
/health,/tokens) - 市场支持:内容可用性的地理市场选择
- 详细日志记录:全面的日志记录和调试功能
流线型Web界面
- 互动音乐探索:美观、响应迅速的web界面
- 实时搜索:具有丰富元数据和预览的即时搜索结果
- 视觉布局:专辑艺术品、艺术家图像和现代UI设计
- 音频预览:直接在浏览器中收听曲目预览
- 多市场支持:跨不同地理区域的内容发现
- 功能丰富的导航:在不同的发现模式之间轻松切换
MCP工具可用
服务器提供 13个综合工具 使用客户端凭据身份验证:
- 搜索音乐 -搜索曲目、艺术家、专辑、播放列表
- get_track_details -详细的轨迹信息和元数据
- 获取艺术家详细信息 -完整的艺术家简介
- get_artist_top_tracks -艺术家最受欢迎的曲目
- 获取艺术家相册 -艺术家唱片
- 获取白蛋白详细信息 -完整的相册信息
- 获取白蛋白轨迹 -专辑中的所有曲目
- get_playlist_details -播放列表元数据和信息
- get_playlist_tracks -播放列表中的所有曲目
- get_new_releases -最新专辑发行
- get_featured_playlists -Spotify的特色播放列表
- get_类别 -浏览音乐类别
- get_category_playlists -特定类别的播放列表
🚀 快速开始
先决条件
- Python 3.8或更高版本
- Spotify开发者帐户
- 带有客户端ID和客户端密码的Spotify应用程序
安装
# Clone the repository
git clone https://github.com/Rchintalapati0111/mcp_server_spotify.git
cd mcp_server_spotify
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
配置
创建一个 .env 项目根目录中的文件:
# Required: Spotify API Credentials
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
# Server configuration
SPOTIFY_MCP_SERVER_PORT=5050
启动服务器
# Activate virtual environment
source .venv/bin/activate
# Start the server
python server.py --port 5050
验证服务器运行状况
# Check server health
curl http://localhost:5050/health
使用示例
选项A:运行演示脚本
python demo.py
选项B:流线型Web界面
streamlit run streamlit_file.py
选项C:用作MCP服务器
将您的MCP客户端连接到: http://localhost:5050/sse/messages
📁 项目结构
mcp_server_spotify/
├── server.py # Main MCP server
├── demo.py # Demo script
├── streamlit_file.py # Streamlit web interface
├── requirements.txt # Python dependencies
├── .env.example # Environment template
└── README.md # This file
故障排除
服务器无法启动
# Check if port is in use
lsof -i :5050
# Use different port
python server.py --port 5051
身份验证问题
- 确保
.env文件存在有效凭据 - 检查Spotify开发者仪表板以获取正确的客户端ID/密码