modelscope·@iceener/spotify-streamable-mcp-server
暂无描述。
Streamable HTTP MCP server for Spotify search music, control playback, manage playlists and saved songs.
Author: overment
[!WARNING] This warning applies only to the HTTP transport and OAuth wrapper included for convenience. They are intended for personal/local use and are not productionhardened.
The MCP tools and schemas themselves are implemented with strong validation, slim outputs, clear error handling, and other best practices.
If you plan to deploy remotely, harden the OAuth/HTTP layer: proper token validation, secure storage, TLS termination, strict CORS/origin checks, rate limiting, audit logging, and compliance with Spotify's terms.
At first glance, a "Spotify MCP" may seem unnecessarypressing play or skipping a song is often faster by hand. It becomes genuinely useful when you don't know the exact title (e.g., "soundtrack from [movie title]"), when you want to "create and play a playlist that matches my mood", or when you're using voice. This MCP lets an LLM handle the fuzzy intent search selection control loop, and it returns clear confirmations of what happened. It works well with voice interfaces and can be connected to agents/workflows for smarthome automations.

Alice a desktop AI assistant

Claude Desktop
queries[], operations[]) to minimize tool calls_msg with what succeeded/failedcd spotify-mcp
bun install
cp .env.example .env
Edit .env:
PORT=3000
AUTH_ENABLED=true
# From https://developer.spotify.com/dashboard
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
# OAuth
OAUTH_SCOPES=playlist-read-private playlist-read-collaborative playlist-modify-public playlist-modify-private user-read-playback-state user-modify-playback-state user-read-currently-playing user-library-read user-library-modify
OAUTH_REDIRECT_URI=alice://oauth/callback
OAUTH_REDIRECT_ALLOWLIST=alice://oauth/callback
Add redirect URIs in Spotify Developer Dashboard:
http://127.0.0.1:3001/oauth/callback
alice://oauth/callback
bun dev
# MCP: http://127.0.0.1:3000/mcp
# OAuth: http://127.0.0.1:3001
Use these tools to find music, get the current player status, control and transfer playback, and manage playlists and saved songs.
Tools
- search_catalog: Find songs, artists, albums, or playlists
- player_status: Read current player, available devices, queue, and current track
- spotify_control: Batch control playback (play, pause, next, previous, seek, volume, shuffle, repeat, transfer, queue)
- spotify_playlist: Manage playlists (list, get, items, create, update, add/remove items, reorder)
- spotify_library: Manage saved songs (get, add, remove, contains)
CRITICAL: device_id
- device_id is a long alphanumeric hash, NOT a human-readable name
- NEVER use the device name (like "MacBook Pro" or "iPhone") as device_id this will fail!
- Always copy the exact device_id value from player_status devices[].id or player.device_id
search_catalogSearch songs, artists, albums, and playlists.
Input:
{
queries: string[]; // Search terms
types: ("album"|"artist"|"playlist"|"track")[]; // What to search
market?: string; // 2-letter country code
limit?: number; // 1-50 (default 20)
offset?: number; // 0-1000 (default 0)
include_external?: "audio";
}
Output:
{
_msg: string;
batches: Array<{
query: string;
totals: Record<string, number>;
items: Array<{ type, id, uri, name, artists?, album? }>;
}>;
}
player_statusRead current player state, devices, queue, and current track.
Input:
{ include?: ("player"|"devices"|"queue"|"current_track")[] }
Output:
{
_msg: string;
player?: {
is_playing: boolean;
device_id?: string; // Use this for control!
shuffle_state?: boolean;
repeat_state?: "off"|"track"|"context";
progress_ms?: number;
context_uri?: string|null;
};
current_track?: { type, id, uri, name, artists, album, duration_ms } | null;
devices?: Array<{
id: string; // Use this for control!
name: string;
type: string;
is_active: boolean;
volume_percent?: number;
}>;
queue?: { current_id?: string; next_ids: string[] };
}
spotify_controlControl playback with batch operations.
Input:
{
operations: Array<{
action: "play"|"pause"|"next"|"previous"|"seek"|"volume"|"shuffle"|"repeat"|"transfer"|"queue";
device_id?: string; // Long alphan…
通过专门的代理、丰富的资源和强大的工具,促进涵盖云、人工智能和区块链等不同架构领域的全面架构设计和评估。
一个将 Claude Desktop 和其他 MCP 客户端连接到 Cloudflare Workers 的软件包,通过模型上下文协议(Model Context Protocol), enables 自定义功能可以通过自然语言访问。
一种连接到 Kubernetes 集群的服务器,它通过自然语言命令启用管理功能,支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。
一种模型上下文协议服务器, enables 人工智能代理通过标准化接口与阿里云DataWorks进行交互,从而通过DataWorks开放API无缝管理DataWorks资源和操作。
一种模型上下文协议服务器,通过 Graph API 实现与 Microsoft 365 服务(Excel、日历、邮件、OneDrive、Teams 等)的交互,使人工智能助手能够通过自然语言管理 Microsoft 365 资源。
一台使大型语言模型能够通过模型上下文协议发现并与由 OpenAPI 规范定义的 REST API 交互的服务器。