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

Dj MCP Server

MCP Server

一个基于FastAPI和FastAPI-MCP构建的Spotify Web API MCP服务器,允许AI助手通过自然语言操作Spotify功能。

工具数

44

提示词数

0

GitHub Stars

0

资源数

0
自然语言处理PythonClaudeClaude DesktopClaudeCursor

安装说明

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

作者 / 组织

Slevin06

提供方

Slevin06

最后核验

2026/5/17 20:19

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

🎵 DJ Spotify MCP服务器

FastAPI + FastAPI-MCP 中构建的Spotify Web API 的,之MCP(Model Context Protocol)服务器

AI 助手(Claude、Cursor等)用自然语言Spotify 的明细栏样式中定义的设置。FastAPI-MCP 来修改标记元素的显示属性HTTP 经过MCP 提供协议,所有Spotify 功能AI 中所述修改相应参数的值。

](https://github.com/Slevin06/dj-mcp-server-for-spotify) ![Python](https://python.org) ![FastAPI](https://fastapi.tiangolo.com) ![MCP](https://modelcontextprotocol.io)

✨ 特徴

  • 🚀 FastAPI MCP: FastAPI 自动端点MCP 工具化稳定HTTP 通讯
  • 🎵 全面的Spotify 功能:检索、再生、播放列表管理、记录等
  • 🤖 AI 支持助手: Claude、Cursor 等自然语言操作
  • 🔐 OAuth2.0 认证: Spotify 公式API 安全认证
  • 📋 自动工具生成: FastAPI 端点自动MCP 工具化
  • 📖 开发者友好: Swagger UI、ReDoc 根据…;根据API 自动生成文档

🚀 快速启动

1.项目准备

# リポジトリをクローン
git clone https://github.com/Slevin06/dj-mcp-server-for-spotify.git
cd dj-mcp-server-for-spotify

# 仮想環境を作成・アクティベート
python -m venv .venv
source .venv/bin/activate  # macOS/Linux
# または .venv\Scripts\activate  # Windows

# 依存関係をインストール
pip install -r requirements.txt

2. Spotify API 设定

  1. Spotify开发者仪表板 创建应用程序
  2. 重定向URI 在…之上 http://127.0.0.1:8000/auth/callback 添加
  3. .env.example 打开 .env 复制到API 设置信息:
cp .env.example .env

.env 编辑文件:

SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
SPOTIFY_REDIRECT_URI=http://127.0.0.1:8000/auth/callback

3.服务器启动

# FastAPI MCP サーバーを起動
./run_fastapi_mcp.sh

启动后,以下可用:

  • MCP 端点: http://localhost:8000/mcp
  • API 文档: http://localhost:8000/docs
  • Swagger用户界面: http://localhost:8000/redoc

4. AI 助手设置

Cursor 的情况~/。cursor/mcp.jsonClaude Desktop の场合~/.claude_desktop_config.json 添加:

{
  "mcpServers": {
    "dj-spotify-mcp-server": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

5. Spotify 认证

  1. 在浏览器中 http://localhost:8000/auth/login 访问
  2. Spotify 允许帐户登录
  3. 认证完成后AI 助手可用

🎯 主要功能

🔐 认证机能✅ 全部可以自由计划使用

  • start_spotify_authentication - Spotify OAuth2.0 认证开始
  • handle_spotify_callback - OAuth 认证回调处理
  • get_spotify_auth_status -验证状态确认令牌管理
  • disconnect_spotify_account -取消帐户连接
  • clear_auth_cache -认证高速缓存清除

🎵 播放列表管理✅ 全部可以自由计划使用

参照机能

  • get_my_playlists -获取播放列表列表列表
  • get_playlist_tracks -播放列表内乐曲详细显示

编集机能(2段阶确认付き)

  • preview_playlist_creation -创建播放列表预览 \[新机能\]
  • create_playlist -创建新播放列表(需要事先批准)
  • preview_tracks_addition -乐曲追加预览 \[新机能\]
  • add_tracks_to_playlist -向播放列表中添加乐曲(需要事先批准)
  • reorder_playlist_track -更改播放列表中乐曲的顺序

💡 提高用户体验:制作播放列表、追加乐曲可以事先在预览中确认内容后执行,所以可以放心使用。

🔍 検索机能✅ 全部可以自由计划使用

  • search_tracks - 楽曲検索
  • search_artists -艺人搜索
  • get_artist_info -获取艺术家详细信息
  • get_artist_top_tracks -获得艺人的人气歌曲
  • get_multiple_tracks -复数楽曲情报の一括取得
  • search_tracks_with_filters -查找带滤镜的歌曲

🎚️ 播放控件⚠️ 高级计划专用

再生状態取得 ✅ 自由计划可用

  • get_playback_state -获取当前的完整播放状态
  • get_now_playing -现在再生中の楽曲情报取得
  • get_available_devices -获取可用设备列表

再生操作 🔒 高级计划专用

  • play_music -开始播放乐曲
  • pause_music -暂停播放
  • skip_to_next -跳过下一首歌
  • skip_to_previous -回到上一首歌
  • seek_to_position - 楽曲内の再生位置移動

玩家设置🔒 高级计划专用

  • set_volume -音量调整
  • set_shuffle_mode -设置洗牌模式
  • set_repeat_mode -设置重复模式
  • transfer_playback -切换播放设备

排队操作🔒 高级计划专用

  • add_to_queue -将乐曲添加到播放队列

🎯 记录✅ 全部可以自由计划使用

  • get_available_genres -获取可用类型
  • get_recommendations -楽曲推荐取得
  • get_recommendations_by_mood -推荐以心情、类别为标准的乐曲
  • create_playlist_from_recommendations -从推荐歌曲创建自动播放列表

👤 用户信息历史记录✅ 全部可以自由计划使用

  • get_user_profile -获取用户配置文件
  • get_recently_played_tracks -最近播放的歌曲历史记录
  • get_user_top_items -用户首选项(音乐艺术家)
  • get_followed_artists -获得跟踪艺人
  • follow_artists_or_users -跟踪艺术家和用户
  • unfollow_artists_or_users -取消跟踪

🛠️ 实用程序✅ 全部可以自由计划使用

  • health_check -服务器健康检查
  • get_server_version -获取服务器版本信息
  • get_available_markets -获取可用地区(国家/地区代码)

⚠️ Spotify 高级计划要求

🔒 关于高级专用功能

如果自由计划用户使用高级专用功能,则会出现以下错误:

常规权限错误(HTTP403)

{
  "detail": "予期せぬエラー: 403: この操作を実行する権限がありません。"
}

对象机能: play_music, pause_music, skip_to_next, skip_to_previous, set_volume, set_shuffle_mode, set_repeat_mode, seek_to_position, transfer_playback

显式高级请求错误

{
  "detail": "Failed to add to queue: http status: 403, code: -1 - https://api.spotify.com/v1/me/player/queue?uri=spotify:track:xxxxx:\n Player command failed: Premium required, reason: PREMIUM_REQUIRED"
}

对象机能: add_to_queue

✅ 自由计划也可以充分利用

DJ MCP Server 表示自由计划也可以充分利用以下用途

  • 🔍 音楽発见・検索:艺人乐曲的详细检索
  • 📋 播放列表管理:作成・编集・楽曲追加・顺序变更
  • 🎯 记录:根据心情和喜好推荐乐曲
  • 📊 听力分析:再生履历·首位项目·跟踪管理
  • 🎵 音乐库整理:高效的播放列表创建和管理

需要高级计划的是,只有实际的乐曲再生和玩家控制功能。

💡 使用例

AI 助手可以:

# プレイリスト作成
「リラックスできる音楽のプレイリストを作成して」

# 楽曲検索・再生
「藤井風の人気曲を検索して再生して」

# 状態確認
「今再生中の曲は何ですか?」

# レコメンデーション
「jazz っぽい音楽を推薦してください」

📋 AI 利用交互规则

DJ MCP Server 那么AI 它提供了专门的交互规则,以实现与助手的安全、愉快的对话。

🔗 交互规则文件

docs/ai_interaction_rules.mdc 定义了以下规则:

  • 播放列表操作的2阶段确认过程
  • 如何使用预览功能
  • 用户批准流程的最佳做法
  • 播放描述标准化规则

🤖 AI 助手的使用步骤

1.将规则文件添加到上下文中

AI 在与助手的对话中,请参阅以下规则文件:

@docs/ai_interaction_rules.mdc プレイリストを作成したいです

2.自动应用的安全功能

通过浏览规则文件,将自动应用以下内容:

  • 预览显示:作成・追加前の属性确认
  • 等待批准:等待运行,直到用户明确批准
  • 标准化描述:统一的播放列表说明
  • 防止错误:防止意外操作

3.对话例

# ルールに従った安全な対話フロー

You: @docs/ai_interaction_rules.mdc
     チルアウトプレイリストを作成してください

AI: プレイリストを作成します。まず内容を確認いたします。
    📋 作成予定のプレイリスト内容
    • 名前: "チルアウトミックス"
    • 説明: "リラックスタイムに最適な楽曲集。DJ MCP Server for Spotifyで作成。"
    • 公開設定: プライベート
    この内容でプレイリストを作成してよろしいですか?

You: はい、作成してください

AI: ✅ プレイリストを作成しました!

💡 利用的好处

  • 🛡️ 安全性:防止意外操作
  • 👀 透明性:可在运行前确认内容
  • 📝 一贯性:统一的播放列表管理
  • 🤝 可用性:直观易懂的对话

📖 详细规则

有关完整规则的详细信息,请参见docs/ai_interaction_rules.mdc 来修改标记元素的显示属性。

🏗️ 项目结构

dj-mcp-server-for-spotify/
├── src/                          # メインソースコード
│   ├── main.py                  # FastAPI + MCP メインアプリケーション
│   ├── spotify_client.py        # Spotify ツールファクトリー(シンプル)
│   ├── auth/                    # 認証関連
│   │   ├── spotify_auth.py      # Spotify OAuth2 実装
│   │   ├── token_manager.py     # トークン管理
│   │   └── cache_manager.py     # 認証キャッシュ
│   ├── routers/                 # API エンドポイント群
│   │   ├── authentication.py   # 認証エンドポイント
│   │   ├── playlists.py        # プレイリスト操作
│   │   ├── search.py           # 検索機能
│   │   ├── player.py           # 再生コントロール
│   │   ├── recommendations.py  # レコメンデーション
│   │   └── utility.py          # ユーティリティ
│   ├── spotify_features/        # 機能実装マネージャー
│   │   ├── playlist_manager.py  # プレイリスト管理
│   │   ├── search_manager.py    # 検索機能
│   │   ├── artist_manager.py    # アーティスト情報
│   │   ├── player_manager.py    # 再生制御
│   │   ├── recommendation_manager.py # レコメンデーション
│   │   ├── cache_handler.py     # API キャッシュ処理
│   │   └── rate_limit_handler.py # レート制限管理
│   ├── spotify_tools.py        # Spotify ツール統合ファサード
│   └── models.py               # Pydantic モデル
├── tokens/                      # 認証トークン保存
├── cache/                       # 二層キャッシュシステム
│   ├── auth/                   # 認証関連キャッシュ
│   └── spotify_api_cache/      # API レスポンスキャッシュ
├── docs/                        # ドキュメント
│   └── ai_interaction_rules.mdc # AI インタラクションルール
├── .env                        # 環境変数(作成要)
├── requirements.txt            # Python 依存関係
├── run_fastapi_mcp.sh         # サーバー起動スクリプト
├── run.sh / run.bat           # 環境セットアップ + 起動スクリプト
└── README.md                  # このファイル

🔧 技术栈

  • Python 3.11+:基础编程语言
  • 快速API:高性能Web API 框架结构
  • FastAPI MCP: FastAPI 自动端点MCP 工具化
  • Spotipy 的: Spotify Web API Python 程序库
  • 派丹蒂克:数据验证设置管理
  • 乌维科恩: ASGI 服务器

🧪 开发测试

手动测试

# サーバー起動テスト
./run_fastapi_mcp.sh

# API エンドポイント確認
curl http://localhost:8000/utility/health

# MCP エンドポイント確認
curl http://localhost:8000/mcp

开发工具

  • API 文档: http://localhost:8000/docs
  • Swagger用户界面: http://localhost:8000/redoc
  • OpenAPI JSON: http://localhost:8000/openapi.json

🔒 安全性和限制

认证隐私

  • 个人利用专用:我的Spotify 仅使用帐户
  • OAuth2.0: Spotify 正式认证流程
  • 标记管理:本地加密保存和自动更新

API 制限

  • 汇率限制: Spotify API 的限制
  • 范围限制:仅要求最低限度的权限
  • 设备限制:活动Spotify 需要应用程序(部分功能)

🛠️ 故障排除

常见问题

1.服务器未启动

# .env ファイルの確認
ls -la .env

# 仮想環境の確認
which python

2.端口8000正在使用时

# ERROR: [Errno 48] address already in use が発生した場合

# ポート8000を使用しているプロセスを確認
lsof -i :8000

# 表示されたプロセスのPIDを確認してkill
# 例: PID が 12345 の場合
kill -9 12345

# 複数のプロセスが表示された場合は、すべてkill
# 一括でkillする場合(注意して実行)
lsof -ti :8000 | xargs kill -9

# サーバーを再起動
./run_fastapi_mcp.sh

3. MCP 无法识别工具

# mcp.json の設定確認
cat ~/.cursor/mcp.json

# サーバー URL の確認
curl http://localhost:8000/mcp

4.认证错误

# Spotify API 設定確認
echo $SPOTIFY_CLIENT_ID

# 認証状態確認
curl http://localhost:8000/auth/status

5.播放控制不动作

  • Spotify 应用程序(台式机移动Web Player)启动
  • 检查设备列表: curl http://localhost:8000/player/devices

📈 今后的计划

体系结构改进

  • \[x\] Phase 1完了:删除遗留代码(mcp_server.py,spotify_mcp_server.py删除,依存关系整理)
  • \[x\] Phase 2完了:依赖性注入简化(dependencies.py→spotify_client.py、LRU高速缓存部署)
  • \[ \] 第三期:统一管理人集成错误处理(跳过)
  • \[ \] 阶段4:监控测试文档增强(将来适用)

重构结果: 13KB 的旧代码删除,43%的代码简化,大大提高了可维护性。

机能扩张

  • \[ \] Docker Compose 対応完全化
  • \[\]扩展记录功能
  • \[\]播放列表图像设定功能
  • \[\]批量处理功能(大量乐曲操作)
  • \[ \]详细な使用统计・分析机能

🤝 分发

个人发展项目,欢迎反馈和建议!

  1. Issue 制作并报告问题和提案
  2. Fork 发送抽取请求
  3. 文档改进建议

📄 许可证

MIT License - 了解更多信息 许可证 浏览文件

🙏 谢辞

______________________________________________________________________

🎵 音乐和AI 请享受的融合!

目录标签

目录标签

自然语言处理PythonClaude音乐管理本地部署AI集成SpotifyAPI自动化工具

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

44

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP