音乐数据协议服务器

一个与Spotify Web API无缝集成的Model Context Protocol (MCP)服务器,提供全面的音乐数据访问和交互式音乐发现功能。

  • by Rchintalapati0111
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 rchintalapati0111/mcp_server_spotify

使用说明

Spotify MCP服务器

一个全面的模型上下文协议(MCP)服务器,提供与Spotify Web API的无缝集成。该项目包括一个功能强大的MCP服务器,具有全面的音乐数据访问功能,以及一个用于音乐发现和探索的漂亮的Streamlit web界面。

特性

核心MCP服务器功能

  • 🔍 音乐搜索:搜索包含详细元数据的曲目、艺术家、专辑和播放列表
  • 🎤 艺术家探索者:获取全面的艺术家信息、热门曲目、专辑和相关数据
  • 💿 专辑发现:浏览包含完整曲目列表和元数据的专辑
  • 🎯 播放列表管理:使用完整曲目信息访问和分析播放列表
  • 🎨 浏览分类:探索Spotify的音乐类别和基于流派的播放列表
  • 🆕 新发布:发现最新专辑和特色内容
  • 🔐 客户端凭据身份验证:用于公共数据访问的安全应用程序级身份验证

高级服务器功能

  • 许可证管理:自动令牌刷新和缓存系统
  • 错误处理:具有重试逻辑和速率限制管理的全面错误处理
  • 健康监测:内置健康检查和状态端点(/health, /tokens)
  • 市场支持:内容可用性的地理市场选择
  • 详细日志记录:全面的日志记录和调试功能

流线型Web界面

  • 互动音乐探索:美观、响应迅速的web界面
  • 实时搜索:具有丰富元数据和预览的即时搜索结果
  • 视觉布局:专辑艺术品、艺术家图像和现代UI设计
  • 音频预览:直接在浏览器中收听曲目预览
  • 多市场支持:跨不同地理区域的内容发现
  • 功能丰富的导航:在不同的发现模式之间轻松切换

MCP工具可用

服务器提供 13个综合工具 使用客户端凭据身份验证:

  1. 搜索音乐 -搜索曲目、艺术家、专辑、播放列表
  2. get_track_details -详细的轨迹信息和元数据
  3. 获取艺术家详细信息 -完整的艺术家简介
  4. get_artist_top_tracks -艺术家最受欢迎的曲目
  5. 获取艺术家相册 -艺术家唱片
  6. 获取白蛋白详细信息 -完整的相册信息
  7. 获取白蛋白轨迹 -专辑中的所有曲目
  8. get_playlist_details -播放列表元数据和信息
  9. get_playlist_tracks -播放列表中的所有曲目
  10. get_new_releases -最新专辑发行
  11. get_featured_playlists -Spotify的特色播放列表
  12. get_类别 -浏览音乐类别
  13. 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/密码