AI音乐控制服务器

一个基于Flask的模块化控制协议服务器,集成Spotify音乐服务和Google Gemini AI,用于音乐命令的自然语言处理。

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

使用说明

集成人工智能的Spotify MCP服务器

基于Flask的MCP(模块化控制协议)服务器,与Spotify集成,并使用谷歌的Gemini AI对音乐命令进行自然语言处理。

特性

  • 🎵 Spotify集成播放列表管理
  • 🤖 人工智能驱动的自然语言处理
  • 🔒 OAuth2身份验证流程
  • 📜 MCP协议合规性
  • 🚀 以下各项的REST API终结点:
    • 轨迹搜索
    • 播放列表创建
    • 播放列表修改
    • 人工智能辅助命令处理

先决条件

  • Python 3.9+
  • Spotify开发者帐户
  • Google Gemini API密钥
  • 基本的命令行知识

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/spotify-mcp-server.git
cd spotify-mcp-server
  1. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate  # Linux/MacOS
venv\Scripts\activate  # Windows
  1. 安装依赖项:
pip install -r requirements.txt

配置

  1. 创建 .env 文件:
SPOTIPY_CLIENT_ID=your_spotify_client_id
SPOTIPY_CLIENT_SECRET=your_spotify_secret
SPOTIPY_REDIRECT_URI=http://localhost:5001/callback
SPOTIPY_SCOPE=playlist-modify-public playlist-modify-private
GEMINI_API_KEY=your_gemini_api_key
  1. 获取凭据:

用法

  1. 启动服务器:
python app.py
  1. 通过Spotify进行身份验证:

  2. 使用API终结点:

AI驱动的命令

curl -X POST http://localhost:5001/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Create a workout playlist with rock songs"}'

直接API调用

# Search track
curl -X POST http://localhost:5001/mcp/execute \
  -H "Content-Type: application/json" \
  -d '{"action": "search_track", "parameters": {"query": "Thriller Michael Jackson"}}'

API终点

端点 方法 描述
/auth GET 启动Spotify身份验证
/mcp/status GET 服务器健康检查
/mcp/actions GET 列出可用操作
/mcp/execute POST 执行直接命令
/mcp/chat POST 处理自然语言请求

例子

使用AI创建播放列表

curl -X POST http://localhost:5001/mcp/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Make a jazz playlist with Miles Davis and John Coltrane"}'

样本响应:

{
  "result": {
    "id": "3jJ5VR3RJNA",
    "name": "Cool Jazz Night",
    "url": "https://open.spotify.com/playlist/3jJ5VR3RJNA"
  }
}

故障排除

访问令牌无效

rm -rf .spotify_cache  # Clear cached credentials
# Re-authenticate via /auth endpoint

端口冲突

# Edit app.py and change port number
app.run(host='0.0.0.0', port=5001)  # Modify this line

API错误

  • 验证 .env 凭证
  • 检查Spotify开发者仪表板设置
  • 确保OAuth范围正确

许可证

MIT许可证-请参阅 许可证 详见


.