← 返回 Skills 市场
brackyt

Playlistable

作者 Brackyt · GitHub ↗ · v1.0.0
cross-platform ✓ 安全检测通过
342
总下载
1
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install playlistable
功能描述
Create AI-powered Spotify playlists and discover music via Playlistable MCP. Use when the user wants to generate playlists from a mood/prompt, search songs o...
使用说明 (SKILL.md)

Playlistable MCP

Create AI-powered Spotify playlists and discover music using the Playlistable MCP server.

Authentication

Needs a Playlistable API key (PLAYLISTABLE_API_KEY env var or config/auth.json).

To get one:

node {baseDir}/scripts/auth.mjs

Fully automatic — starts a local HTTP server, opens browser for Spotify OAuth, catches the redirect, exchanges the code for an API key via PKCE, and saves it to {baseDir}/config/auth.json. No manual copy-paste needed.

If the key is already saved, scripts read it automatically from config/auth.json.

How it works

The MCP server at https://mcp.playlistable.io exposes tools via Streamable HTTP transport. The mcp-call.mjs script sends JSON-RPC requests directly — no MCP SDK needed.

Common workflows

Generate a playlist: User describes a mood → generate_playlist creates an async Spotify playlist → returns playlist URL immediately. Tracks appear in the background.

Browse playlists: get_playlists lists all user playlists. get_playlist gets details + tracks for a specific one.

Edit a playlist: edit_playlist adds or removes songs by Spotify track ID.

Search music: search_songs and search_artists search Spotify directly.

Get suggestions: playlist_suggestions returns 6 AI-generated mood suggestions based on the user's listening history and time of day.

Scripts

Authenticate

node {baseDir}/scripts/auth.mjs

Call MCP tools

node {baseDir}/scripts/mcp-call.mjs \x3Ctool> [json-params]
node {baseDir}/scripts/mcp-call.mjs --list-tools

Examples:

# Generate a playlist
node {baseDir}/scripts/mcp-call.mjs generate_playlist '{"mood": "chill lo-fi for studying"}'

# Get personalized suggestions
node {baseDir}/scripts/mcp-call.mjs playlist_suggestions '{"userHour": 22}'

# List playlists
node {baseDir}/scripts/mcp-call.mjs get_playlists

# Get playlist details
node {baseDir}/scripts/mcp-call.mjs get_playlist '{"id": "PLAYLIST_ID"}'

# Edit playlist songs
node {baseDir}/scripts/mcp-call.mjs edit_playlist '{"id": "PLAYLIST_ID", "addedSongs": ["4iV5W9uYEdYUVa79Axb7Rh"], "removedSongs": []}'

# Delete playlist
node {baseDir}/scripts/mcp-call.mjs delete_playlist '{"id": "PLAYLIST_ID"}'

# Search songs
node {baseDir}/scripts/mcp-call.mjs search_songs '{"query": "Blinding Lights", "limit": 5}'

# Search artists
node {baseDir}/scripts/mcp-call.mjs search_artists '{"query": "The Weeknd", "limit": 5}'

# List all available tools
node {baseDir}/scripts/mcp-call.mjs --list-tools

Available MCP Tools

Tool Description Key params
generate_playlist Create a playlist from a mood/prompt mood (string, required)
get_playlist Get playlist details + tracks id (string, required)
get_playlists List user's playlists (paginated) lastDocId (string, optional)
edit_playlist Add/remove songs by Spotify track ID id, addedSongs, removedSongs
delete_playlist Delete a playlist id (string, required)
playlist_suggestions Get 6 AI mood suggestions userHour (0-23, optional)
search_songs Search Spotify tracks query, limit (1-10)
search_artists Search Spotify artists query, limit (1-10)

See references/api_reference.md for full parameter details, response formats, and error handling.

Playlist Generation Flow (important)

Playlist generation takes ~30 seconds. Always follow this flow:

  1. Call generate_playlist → returns immediately with id and Spotify URL
  2. Share the Spotify URL with the user right away so they have it
  3. Wait ~15s, then poll get_playlist every 10 seconds until status === "ready"
  4. Once ready, display the track list to the user

Use the --wait flag to handle this automatically:

node {baseDir}/scripts/mcp-call.mjs generate_playlist '{"mood": "..."}' --wait

This generates, polls until ready (~30s), then prints the full playlist with tracks.

Notes

  • Free users get a limited "teaser" playlist. Paid users get full playlists.
  • playlist_suggestions is time-aware — pass userHour for better results (morning workout vs late-night chill).
  • Songs are identified by Spotify track IDs (e.g., 4iV5W9uYEdYUVa79Axb7Rh). Use search_songs to find IDs.
安全使用建议
This skill appears to do what it claims: it uses Node scripts to perform OAuth with the Playlistable MCP server and call MCP tools to create and manage Spotify playlists. Before installing, consider: (1) you will either provide PLAYLISTABLE_API_KEY or run the included auth flow which opens your browser and saves an API key to config/auth.json in the skill directory — treat that file like a secret. (2) The OAuth flow delegates Spotify sign-in and client registration to the external domain https://mcp.playlistable.io — only proceed if you trust that third party to handle your Spotify authorization and data. (3) The scripts start a temporary localhost HTTP server and open your browser during auth (expected for PKCE OAuth). If any of these behaviors are unexpected or you don’t trust the MCP host, do not install or run the auth script. Otherwise the skill is internally consistent and proportional to its stated purpose.
功能分析
Type: OpenClaw Skill Name: playlistable Version: 1.0.0 The skill bundle is designed to interact with the Playlistable MCP service for Spotify playlist management. All code and documentation align with this stated purpose. The `SKILL.md` provides clear instructions without any prompt injection attempts. The `scripts/auth.mjs` handles Spotify OAuth securely, opening a browser via `child_process.exec` to a controlled URL, and saving the API key locally in `config/auth.json`. The `scripts/mcp-call.mjs` makes JSON-RPC calls to the legitimate `https://mcp.playlistable.io` endpoint, handling API keys from environment variables or local configuration. There is no evidence of data exfiltration, persistence mechanisms, or other malicious activities. The use of `child_process.exec` is for a specific, necessary, and internally controlled action (opening a browser for OAuth) and does not present an arbitrary command execution vulnerability.
能力评估
Purpose & Capability
Name/description match the implementation: both scripts implement an MCP client that talks to https://mcp.playlistable.io to generate and manage Spotify playlists. Required binary (node) and required env var (PLAYLISTABLE_API_KEY) are appropriate for this purpose.
Instruction Scope
Runtime instructions and scripts stay within the stated scope: they perform OAuth via the MCP server, open a local browser, start a localhost callback server, save an API key to config/auth.json, and call MCP JSON-RPC endpoints. The scripts only read the declared env var and config path; they do not access unrelated system paths or other credentials.
Install Mechanism
No install spec — instruction-only with included Node scripts. Nothing is downloaded or installed by the skill itself, which minimizes install-time risk.
Credentials
Only PLAYLISTABLE_API_KEY is required (or the saved config/auth.json). This is proportionate. Note: the auth flow will create and store a long-lived API key in config/auth.json on disk; users should be aware of local storage of that secret.
Persistence & Privilege
always:false and no modifications to other skills or system-wide settings. The skill writes its own config/auth.json and runs a temporary localhost server during OAuth — this is normal for an OAuth flow and scoped to the skill.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install playlistable
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /playlistable 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Generate AI Spotify playlists, search music, and manage playlists via the Playlistable MCP server
元数据
Slug playlistable
版本 1.0.0
许可证
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Playlistable 是什么?

Create AI-powered Spotify playlists and discover music via Playlistable MCP. Use when the user wants to generate playlists from a mood/prompt, search songs o... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 342 次。

如何安装 Playlistable?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install playlistable」即可一键安装,无需额外配置。

Playlistable 是免费的吗?

是的,Playlistable 完全免费(开源免费),可自由下载、安装和使用。

Playlistable 支持哪些平台?

Playlistable 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Playlistable?

由 Brackyt(@brackyt)开发并维护,当前版本 v1.0.0。

💬 留言讨论