Token导航 LogoToken导航TokenDH.com
Mood Playlist MCP Server logo
音视频stdio官方级别未说明来源级核验

Mood Playlist MCP Server

MCP Server

一个智能的MCP服务器,利用AI生成个性化的Spotify播放列表,结合Google Gemini AI和Spotify音乐库,根据自然语言提示创建定制播放列表。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
Python自然语言处理语音音频

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ghoshsoham71

提供方

ghoshsoham71

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

🎵 Spotify AI播放列表生成器

智能MCP(模型上下文协议)服务器,使用人工智能生成个性化的Spotify播放列表。该项目将谷歌的Gemini人工智能与Spotify丰富的音乐目录相结合,根据自然语言提示创建精心策划的播放列表。

✨ 特性

  • 人工智能驱动的策展:使用Google Gemini生成智能搜索查询并策划曲目选择
  • Spotify集成:与Spotify的API完全集成,用于身份验证、搜索和播放列表创建
  • 个性化推荐:分析用户的收听历史,以获得更好的建议
  • 自然语言处理:使用简单的提示创建播放列表,如“欢快的锻炼音乐”或“周日早晨的凉爽氛围”
  • 灵活的持续时间:指定播放列表长度,范围为1到300分钟
  • MCP服务器:作为模型上下文协议服务器运行,便于与AI助手集成
  • 健康监测:内置健康检查和日志记录

🚀 快速开始

先决条件

  • Python 3.8+
  • Spotify高级帐户(推荐)
  • Spotify开发者应用程序凭据
  • Google Gemini API密钥

安装

  1. 克隆存储库
   git clone 
   cd spotify-playlist-generator
  1. 安装依赖项
   pip install -r requirements.txt
  1. 设置环境变量
   cp .env.example .env
   # Edit .env with your credentials
  1. 运行服务器
   python main.py

服务器将于启动 http://127.0.0.1:10000 默认情况下。

🔧 配置

环境变量

创建一个 .env 项目根目录中的文件,包含以下变量:

# Spotify API Credentials
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret

# Google Gemini API Key
GEMINI_API_KEY=your_gemini_api_key

# Server Configuration
PORT=10000

# Optional: Your phone number for validation
MY_NUMBER=+1234567890

Spotify开发者设置

  1. 首选 Spotify开发者仪表板
  2. 创建新应用程序
  3. 记下您的客户端ID和客户端密码
  4. 添加重定向URI: http://127.0.0.1:10000/callback
  5. 添加所需的范围(由应用程序自动处理)

Google Gemini API设置

  1. 首选 谷歌人工智能工作室
  2. 创建新的API密钥
  3. 将密钥添加到您的 .env 文件

📖 用法

1.健康检查

curl http://127.0.0.1:10000/health

2.通过Spotify进行身份验证

服务器将提供一个身份验证URL。访问它以授权应用程序。

3.获取用户数据

身份验证后,获取您的Spotify收听历史记录以进行个性化推荐。

4.生成播放列表

使用自然语言提示创建播放列表:

  • “45分钟充满活力的健身音乐”
  • “为学习而放松独立歌曲”
  • “90年代公路旅行摇滚歌曲”
  • “雨天的情感歌谣”

🛠️ API终点

MCP工具

服务器公开了以下MCP工具:

  • health:检查服务器运行状况
  • validate:验证配置
  • authenticate:获取Spotify身份验证URL
  • fetch_data:获取并存储用户的Spotify数据
  • generate_playlist:生成人工智能策划的播放列表

生成播放列表参数

{
  "prompt": "string (required) - Description of desired playlist",
  "duration_minutes": "integer (optional, default: 60) - Playlist length",
  "playlist_name": "string (optional, default: 'AI Generated Playlist') - Playlist name"
}

🏗️ 建筑

组件

  1. 主服务器(main.py):FastMCP服务器处理HTTP请求和路由
  2. Spotify处理器(spotify_handler.py):Spotify API集成使用Tekore
  3. 播放列表生成器(playlist_generator.py):使用Gemini进行AI驱动的播放列表管理

数据流

  1. 用户提供自然语言提示
  2. Gemini AI生成相关搜索查询
  3. Spotify API搜索匹配曲目
  4. 系统根据用户历史记录获取其他推荐
  5. Gemini AI策划最终曲目选择
  6. 创建并填充Spotify播放列表

文件结构

├── main.py                 # MCP server and main entry point
├── spotify_handler.py      # Spotify API integration
├── playlist_generator.py   # AI playlist generation logic
├── requirements.txt        # Python dependencies
├── .env.example           # Environment variables template
└── README.md              # This file

📊 数据存储

应用程序为以下对象创建本地JSON文件:

  • 用户数据: user_data_YYYYMMDD_HHMMSS.json -Spotify收听历史
  • 播放列表数据: playlist_YYYYMMDD_HHMMSS.json -生成的播放列表元数据

这些文件用于改进推荐并提供播放列表历史记录。

🔍 日志记录

该应用程序提供全面的日志记录:

  • 信息:一般应用流程和成功操作
  • 警告:非关键问题(例如,回退到简单模式)
  • 错误:关键错误和失败

日志输出到控制台,带有时间戳和日志级别。

⚙️ 回退模式

无Gemini API

如果Gemini API不可用,系统将回退到:

  • 基于关键字的简单搜索查询生成
  • 基于流行度的随机曲目选择

无用户身份验证

该系统仍然可以:

  • 使用Spotify的公共API搜索曲目
  • 根据搜索结果创建播放列表(个性化程度有限)

🚨 错误处理

该应用程序包括强大的错误处理功能,用于:

  • 身份验证失败:清除错误消息和重试机制
  • API费率限制:优雅的降级和重试
  • 网络问题:超时处理和回退选项
  • 无效输入:输入验证和用户友好的错误消息

🔒 隐私和安全

  • 无持久存储:用户令牌仅在会话期间保存在内存中
  • 本地数据:所有用户数据都存储在本地计算机上
  • 最小范围:仅请求必要的Spotify权限
  • 环境变量:存储在环境变量中的敏感凭据

📋 需求

Python依赖关系

fastmcp>=0.1.0
tekore>=4.0.0
google-generativeai>=0.3.0
asyncio
logging
typing
datetime
json
os
random
glob

系统要求

  • 记忆:最低512MB RAM
  • 存储:100MB用于应用程序和数据文件
  • 网络:用于API调用的稳定互联网连接

🐛 故障排除

常见问题

  1. 认证错误

- 在中检查Spotify凭据 .env - 验证Spotify应用程序设置中的重定向URI - 确保启用了所有必需的作用域

  1. 未找到曲目

- 尝试更具体或不同的提示 - 检查互联网连接 - 验证Spotify API的访问权限

  1. Gemini API错误

- 验证API密钥是否正确 - 检查API配额限制 - 如果需要,系统将回退到简单模式

  1. 端口已在使用中

- 更改端口 .env 文件 - 终止端口上的现有进程

调试模式

通过修改中的日志记录级别启用调试日志记录 main.py:

logging.basicConfig(level=logging.DEBUG)

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📜 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📞 支持

如有疑问、问题或功能请求:

  1. 检查 问题
  2. 创建包含详细信息的新问题
  3. 报告错误时包括日志和错误消息

______________________________________________________________________

由以下材料制成❤️ 适合音乐爱好者和人工智能爱好者

目录标签

目录标签

Python自然语言处理语音音频AI音乐推荐本地部署Spotify集成个性化播放列表MCP服务器

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-keyremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP