Spotify音乐数据服务器

一个通过Spotify Web API提供音乐数据访问的FastMCP服务器,支持搜索歌曲、艺术家及获取艺术家热门曲目。

  • by akarnik23
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 akarnik23/mcp-spotify

使用说明

Spotify MCP 服务器

一个通过Spotify Web API提供访问Spotify音乐数据的FastMCP服务器。

🎵 特点

  • 搜索曲目按歌曲名、歌手或歌词查找歌曲
  • 搜索艺术家发现艺术家并获取他们的信息
  • 艺术家热门曲目获取任何艺术家的最热门曲目

注自2024年11月27日起,推荐API将不再适用于新的Spotify应用。请参阅 Spotify的公告 如需更多详情。

🚀 快速入门

先决条件

  • Python 3.8及以上版本
  • Spotify开发者账户
  • Spotify 应用凭据(客户端ID和客户端密钥)

本地开发

  1. 克隆并导航到仓库:

    git clone <your-repo-url>
    cd mcp-spotify
    
  2. 创建一个虚拟环境:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 设置Spotify API凭据:

    export SPOTIFY_CLIENT_ID="your_client_id"
    export SPOTIFY_CLIENT_SECRET="your_client_secret"
    
  5. 启动服务器:

    python src/server.py
    

服务器将在 http://localhost:8000 以MCP端点位于 http://localhost:8000/mcp。

获取Spotify API凭据

  1. 首选 Spotify开发者仪表板
  2. 使用您的Spotify帐户登录
  3. 点击“创建应用”
  4. 填写应用程序详情:
    • 应用名称: Your MCP Server (或任何你喜欢的名字)
    • 应用描述: MCP server for Spotify integration
    • 网站: https://spotify-mcp.onrender.com (使用您已部署的URL)
    • 重定向URI: https://spotify-mcp.onrender.com (使用你已部署的URL)
  5. 选择“Web API” 当被问及API/SDK时
  6. 点击“保存”
  7. 复制你的 Client ID 和 Client Secret

注: 由于Spotify出于安全考虑要求使用HTTPS,因此请使用您已部署的Render URL(而非localhost)作为重定向URI。

🚢 部署

部署到Render

步骤:

  1. 点击下方的“部署到Render”按钮 (或者前往 render.com(可直接作为域名翻译,不改变其形式,意为“渲染网”或保持原域名不变,具体翻译取决于上下文或品牌意图) 并注册/登录)
  2. 将您的GitHub帐户连接到Render (如果你还没有的话)
  3. 创建一个新的Web服务:
    • 连接这个仓库
    • 名字: spotify-mcp
    • 环境: Python 3
    • 计划: Free
    • 构建命令: pip install -r requirements.txt
    • 启动命令: python src/server.py
  4. 设置环境变量:
    • 前往您的渲染服务仪表板
    • 点击“环境”选项卡
    • 添加:
      • SPOTIFY_CLIENT_ID = your_client_id
      • SPOTIFY_CLIENT_SECRET 等于 your_client_secret
    • 点击“保存更改”
  5. 部署!

注:在Render的免费套餐中,服务在无活动约15分钟后会进入闲置状态,并且可能需要手动执行“部署”操作来唤醒服务或获取最新的提交。与Vercel不同,默认情况下推送不会自动部署。

您的服务器将在 https://spotify-mcp.onrender.com/mcp

🎯 披萨(Poke)集成

  1. 首选 poke.com/设置/连接
  2. 添加MCP URL: https://spotify-mcp.onrender.com/mcp
  3. 给它起个像“Spotify”这样的名字
  4. 尝试:“你能用Spotify的MCP来搜索‘Bohemian Rhapsody’这首歌吗?”

参考文献

🛠️ 可用工具

search_tracks(query, limit=10)

在Spotify上搜索歌曲。

参数:

  • query (字符串):搜索查询(歌曲名、艺术家、歌词等)
  • limit (int, 可选): 要返回的结果数量 (1-50,默认: 10)

示例:

search_tracks("Bohemian Rhapsody", 5)

search_artists(query, limit=10)

在Spotify上搜索艺术家。

参数:

  • query (字符串):搜索查询(艺术家名称、流派等)
  • limit (int, 可选):要返回的结果数量(1-50,默认:10)

示例:

search_artists("Queen", 3)

get_artist_top_tracks(artist_id, market="US")

获取特定艺术家的热门曲目。

参数:

  • artist_id (字符串):Spotify 艺术家 ID
  • market (字符串,可选):市场代码(默认:“US”)

示例:

get_artist_top_tracks("1dfeR4HaWDbWqFHLkxsg1d")  # Queen's artist ID

🧪 测试

在本地测试服务器:

# Test health endpoint
curl http://localhost:8000/

# Test MCP endpoint
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'

📝 笔记

  • 速率限制Spotify API设有速率限制。服务器包含自动令牌刷新功能。
  • 认证使用Spotify的客户端凭证流(无需用户登录)。
  • 数据格式所有响应均采用JSON格式,便于集成。
  • 错误处理全面的错误处理,附带描述性错误信息。