Slevin06/dj-mcp-server-for-spotify
If you are the rightful owner of dj-mcp-server-for-spotify and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The DJ Spotify MCP Server is a personal development project that allows AI assistants to control Spotify using natural language through a Model Context Protocol (MCP) server built with FastAPI and FastAPI-MCP.
ðµ DJ Spotify MCP Server
FastAPI + FastAPI-MCP ã§æ§ç¯ããã Spotify Web API ã® MCPïŒModel Context ProtocolïŒãµãŒããŒ
AI ã¢ã·ã¹ã¿ã³ãïŒClaudeãCursor ãªã©ïŒããèªç¶èšèªã§ Spotify ãæäœã§ããå人éçºãããžã§ã¯ãã§ããFastAPI-MCP ã䜿çšã㊠HTTP çµç±ã§ MCP ãããã³ã«ãæäŸãããã¹ãŠã® Spotify æ©èœã AI ããå©çšå¯èœã«ãªããŸãã
âš ç¹åŸŽ
- ð 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 èšå®
- Spotify Developer Dashboard ã§ã¢ããªãäœæ
- ãªãã€ã¬ã¯ã URI ã«
http://127.0.0.1:8000/auth/callback
ã远å .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 UI:
http://localhost:8000/redoc
4. AI ã¢ã·ã¹ã¿ã³ãã®èšå®
Cursor ã®å Žå ~/.cursor/mcp.jsonãClaude Desktop ã®å Žå ~/.claude_desktop_config.json ã«ä»¥äžã远å ïŒ
{
"mcpServers": {
"dj-spotify-mcp-server": {
"url": "http://localhost:8000/mcp"
}
}
}
5. Spotify èªèšŒ
- ãã©ãŠã¶ã§
http://localhost:8000/auth/login
ã«ã¢ã¯ã»ã¹ - Spotify ã¢ã«ãŠã³ãã§ãã°ã€ã³ã»èš±å¯
- èªèšŒå®äºåŸã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 ãã¬ãã¢ã ãã©ã³èŠä»¶
ð ãã¬ãã¢ã å°çšæ©èœã«ã€ããŠ
ããªãŒãã©ã³ãŠãŒã¶ãŒããã¬ãã¢ã å°çšæ©èœã䜿çšããå Žåã以äžã®ãšã©ãŒãçºçããŸãïŒ
äžè¬çãªæš©éãšã©ãŒïŒHTTP 403ïŒ
{
"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 ã¢ã·ã¹ã¿ã³ãïŒCursorïŒã§ã®æŽ»çšæé
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+: åºç€ããã°ã©ãã³ã°èšèª
- FastAPI: 髿§èœ Web API ãã¬ãŒã ã¯ãŒã¯
- FastAPI-MCP: FastAPI ãšã³ããã€ã³ãã®èªå MCP ããŒã«å
- Spotipy: Spotify Web API Python ã©ã€ãã©ãª
- Pydantic: ããŒã¿ããªããŒã·ã§ã³ã»èšå®ç®¡ç
- Uvicorn: ASGI ãµãŒããŒ
𧪠éçºã»ãã¹ã
æåãã¹ã
# ãµãŒããŒèµ·åãã¹ã
./run_fastapi_mcp.sh
# API ãšã³ããã€ã³ã確èª
curl http://localhost:8000/utility/health
# MCP ãšã³ããã€ã³ã確èª
curl http://localhost:8000/mcp
éçºããŒã«
- API ããã¥ã¡ã³ã:
http://localhost:8000/docs
- Swagger UI:
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
ð ä»åŸã®äºå®
ã¢ãŒããã¯ãã£æ¹å
- Phase 1å®äº: ã¬ã¬ã·ãŒã³ãŒãåé€ïŒmcp_server.py, spotify_mcp_server.pyé€å»ãäŸåé¢ä¿æŽçïŒ
- Phase 2å®äº: äŸåæ§æ³šå ¥ç°¡çŽ åïŒdependencies.py â spotify_client.pyãLRUãã£ãã·ã¥å°å ¥ïŒ
- Phase 3: ãããŒãžã£ãŒçµ±åã»ãšã©ãŒãã³ããªã³ã°çµ±äžïŒã¹ãããæžã¿ïŒ
- Phase 4: ç£èŠã»ãã¹ãã»ããã¥ã¡ã³ã匷åïŒå°æ¥å¯Ÿå¿ïŒ
ãªãã¡ã¯ã¿ãªã³ã°ææ: 13KB ã®ã¬ã¬ã·ãŒã³ãŒãåé€ã43%ã®ã³ãŒãç°¡çŽ åãå®çŸããä¿å®æ§ãå€§å¹ ã«åäžã
æ©èœæ¡åŒµ
- Docker Compose 察å¿å®å šå
- ã¬ã³ã¡ã³ããŒã·ã§ã³æ©èœã®æ¡åŒµ
- ãã¬ã€ãªã¹ãç»åèšå®æ©èœ
- ãããåŠçæ©èœïŒå€§éæ¥œæ²æäœïŒ
- 詳现ãªäœ¿çšçµ±èšã»åææ©èœ
ð€ ã³ã³ããªãã¥ãŒã·ã§ã³
å人éçºãããžã§ã¯ãã§ããããã£ãŒãããã¯ãææ¡ãæè¿ããŸãïŒ
- Issue ãäœæããŠåé¡ã»ææ¡ãå ±å
- Fork ããŠãã«ãªã¯ãšã¹ããéä¿¡
- ããã¥ã¡ã³ãæ¹åã®ææ¡
ð ã©ã€ã»ã³ã¹
MIT License - 詳现㯠ãã¡ã€ã«ãåç §
ð è¬èŸ
- Spotify Web API - è±å¯ãªé³æ¥œããŒã¿ã®æäŸ
- FastAPI - 髿§èœãª Web API ãã¬ãŒã ã¯ãŒã¯
- MCP Protocol - AI ã¢ã·ã¹ã¿ã³ã飿ºã®æšæºå
- Spotipy - Spotify API ã® Python ã©ãããŒ
ðµ 鳿¥œãš AI ã®èåãæ¥œããã§ãã ããïŒ