# Spotify MCP (npm · @novalux12/spotify-mcp)

The most complete Spotify MCP: playback, library, playlists, search, podcasts and audiobooks.

- Trust score: 53/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- npm · `@novalux12/spotify-mcp`: 53/100 (this document), [markdown](https://verifymcp.io/servers/novalux12-spotify-mcp-server/novalux12-spotify-mcp.md), [page](https://verifymcp.io/servers/novalux12-spotify-mcp-server/novalux12-spotify-mcp)

## Channel facts

- Registry: `npm`
- Package: `@novalux12/spotify-mcp`
- Version: `1.30.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 34 of 108 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to NovaLux12/spotify-mcp-server).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 0/100
  - Schema quality not yet verified: the captured schema was too large for us to store in full, so we will not judge it on a partial copy.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: the captured schema was too large for us to store in full, and comparing a partial copy would report our own trimming as a change.
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: the captured tool definitions were too large for us to store in full, so we will not judge them on a partial copy.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: the captured tool definitions were too large for us to store in full, and the trim removes the very descriptions this category reads.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 4 categories.** Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you.

## Install

### How do I install the Spotify MCP server?

Spotify MCP runs locally as an npm package, launched with npx -y @novalux12/spotify-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add novalux12-spotify-mcp-server -- npx -y @novalux12/spotify-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "novalux12-spotify-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@novalux12/spotify-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "novalux12-spotify-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@novalux12/spotify-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add novalux12-spotify-mcp-server -- npx -y @novalux12/spotify-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "novalux12-spotify-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@novalux12/spotify-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add novalux12-spotify-mcp-server --command npx --arg -y --arg @novalux12/spotify-mcp
```

### Hermes

```yaml
mcp_servers:
  novalux12-spotify-mcp-server:
    command: "npx"
    args: ["-y", "@novalux12/spotify-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "novalux12-spotify-mcp-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@novalux12/spotify-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add novalux12-spotify-mcp-server -t stdio -c npx -a -y @novalux12/spotify-mcp
```

### Other

```json
{
  "mcpServers": {
    "novalux12-spotify-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@novalux12/spotify-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-15 (score 53, 0)

- [functional] Package version: 1.22.0 → 1.30.0

### 2026-09-14 (score 53, 0)

- [functional] Package version: 1.22.0 → 1.30.0

### 2026-09-12 (score 53, 0)

- [functional] Package version: 1.22.0 → 1.30.0

### 2026-09-10 (score 53, 0)

- [functional] Package version: 1.22.0 → 1.30.0

### 2026-09-09 (score 53, 0)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [security] Tool safety: Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional] Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional] Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.
- [functional] Package version: 1.29.0 → 1.30.0

### 2026-09-08 (score 53, 0)

- [functional] Package version: 1.22.0 → 1.29.0

### 2026-09-06 (score 53, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-05 (score 38, −15)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 1.22.0 → 1.29.0

## MCP tools (608)

The latest capture was truncated, so this tool list may be partial.

### `get_now_playing` (~164 tokens)

Input parameters:

- `additional_types` (array)
- `market` (string)
- `response_format` (string)

### `get_currently_playing` (~159 tokens)

Input parameters:

- `additional_types` (array)
- `market` (string)
- `response_format` (string)

### `play_from_search` (~182 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `market` (string)
- `query` (string, required)
- `response_format` (string)
- `search_type` (string)

### `play` (~213 tokens)

Input parameters:

- `context_uri` (string)
- `device_id` (string)
- `dry_run` (boolean)
- `offset` (integer)
- `offset_uri` (string)
- `position_ms` (integer)
- `response_format` (string)
- `uris` (array)

### `pause` (~80 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `skip_next` (~102 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `skip_previous` (~113 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `seek` (~93 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `position_ms` (integer, required)
- `response_format` (string)

### `set_volume` (~96 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `volume_percent` (integer, required)

### `set_shuffle` (~96 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `state` (boolean, required)

### `set_repeat` (~103 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `state` (string, required)

### `get_queue` (~97 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `add_to_queue` (~134 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `uri` (string, required)

### `get_devices` (~73 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `transfer_playback` (~104 tokens)

Input parameters:

- `device_id` (string, required)
- `dry_run` (boolean)
- `play` (boolean)
- `response_format` (string)

### `handoff` (~131 tokens)

Input parameters:

- `device_id` (string, required)
- `dry_run` (boolean)
- `response_format` (string)
- `volume` (integer)

### `search` (~338 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)
- `types` (array)

### `get_track` (~60 tokens)

Input parameters:

- `id` (string, required)
- `response_format` (string)

### `get_artist` (~57 tokens)

Input parameters:

- `id` (string, required)
- `response_format` (string)

### `get_artist_albums` (~210 tokens)

Input parameters:

- `fetch_all` (boolean)
- `id` (string, required)
- `include_groups` (array)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_album` (~115 tokens)

Input parameters:

- `id` (string, required)
- `market` (string)
- `max_results` (integer)
- `response_format` (string)

### `get_album_tracks` (~191 tokens)

Input parameters:

- `fetch_all` (boolean)
- `id` (string, required)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_show` (~77 tokens)

Input parameters:

- `id` (string, required)
- `market` (string)
- `response_format` (string)

### `get_show_episodes` (~249 tokens)

Input parameters:

- `fetch_all` (boolean)
- `id` (string, required)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_episode` (~83 tokens)

Input parameters:

- `id` (string, required)
- `market` (string)
- `response_format` (string)

### `get_me` (~78 tokens)

Input parameters:

- `response_format` (string)

### `get_artist_top_tracks` (~141 tokens)

Input parameters:

- `id` (string, required)
- `market` (string)
- `max_results` (integer)
- `response_format` (string)

### `get_available_markets` (~99 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `get_several_tracks` (~117 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_several_albums` (~118 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_several_artists` (~118 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_several_episodes` (~119 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_several_shows` (~119 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_several_audiobooks` (~142 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_several_chapters` (~119 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `get_category` (~116 tokens)

Input parameters:

- `category_id` (string, required)
- `country` (string)
- `locale` (string)
- `response_format` (string)

### `search_tracks` (~165 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `search_artists` (~166 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `search_albums` (~166 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `search_playlists` (~166 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `search_shows` (~167 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `search_episodes` (~167 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `search_audiobooks` (~189 tokens)

Input parameters:

- `include_external` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)

### `catalog_batch_lookup` (~143 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `uris` (array, required)

### `get_artist_singles` (~159 tokens)

Input parameters:

- `artist_id` (string, required)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_artist_appearances` (~176 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (array)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `market_validate` (~119 tokens)

Input parameters:

- `include_account_market` (boolean)
- `markets` (array)
- `response_format` (string)

### `browse_category_deepdive` (~207 tokens)

Input parameters:

- `category_id` (string, required)
- `country` (string)
- `limit` (integer)
- `locale` (string)
- `max_results` (integer)
- `peek_items` (boolean)
- `response_format` (string)

### `show_episode_search` (~218 tokens)

Input parameters:

- `fetch_all` (boolean)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `query` (string, required)
- `response_format` (string)
- `show_id` (string, required)

### `get_top_tracks` (~132 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `time_range` (string)

### `get_top_artists` (~133 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `time_range` (string)

### `get_recently_played` (~127 tokens)

Input parameters:

- `after` (integer)
- `before` (integer)
- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)

### `listening_streaks` (~93 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `top_artists_by_range` (~95 tokens)

Input parameters:

- `limit` (integer)
- `response_format` (string)
- `time_range` (string)

### `taste_shift_report` (~84 tokens)

Input parameters:

- `limit` (integer)
- `response_format` (string)

### `listening_report` (~146 tokens)

Input parameters:

- `include_recent` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `time_range` (string)

### `statsfm_taste_profile` (~144 tokens)

Input parameters:

- `max_results` (integer)
- `range` (string)
- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_profile` (~156 tokens)

Input parameters:

- `max_results` (integer)
- `range` (string)
- `response_format` (string)
- `statsfm_user` (string, required)

### `statsfm_artist_affinity` (~121 tokens)

Input parameters:

- `artist` (string, required)
- `response_format` (string)
- `statsfm_user` (string, required)

### `artist_affinity` (~134 tokens)

Input parameters:

- `artist` (string, required)
- `response_format` (string)
- `statsfm_user` (string, required)

### `statsfm_exposure_check` (~137 tokens)

Input parameters:

- `response_format` (string)
- `statsfm_user` (string, required)
- `subject` (string, required)
- `subject_type` (string)

### `exposure_check` (~149 tokens)

Input parameters:

- `response_format` (string)
- `statsfm_user` (string, required)
- `subject` (string, required)
- `subject_type` (string)

### `statsfm_listening_eras` (~124 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `listening_eras` (~137 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `statsfm_listening_sessions` (~155 tokens)

Input parameters:

- `gap_minutes` (integer)
- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `listening_sessions` (~167 tokens)

Input parameters:

- `gap_minutes` (integer)
- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `statsfm_forgotten_favorites` (~139 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)
- `top_limit` (integer)

### `forgotten_favorites` (~152 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)
- `top_limit` (integer)

### `statsfm_taste_recommendations` (~135 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_recommendations` (~149 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `statsfm_record_feedback` (~148 tokens)

Input parameters:

- `action` (string)
- `note` (string)
- `rating` (string)
- `response_format` (string)
- `subject` (string)
- `subject_type` (string)

### `record_feedback` (~160 tokens)

Input parameters:

- `action` (string)
- `note` (string)
- `rating` (string)
- `response_format` (string)
- `subject` (string)
- `subject_type` (string)

### `taste_to_playlist` (~182 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `seed` (string)
- `statsfm_user` (string, required)
- `track_count` (integer)

### `taste_daily_brief` (~116 tokens)

Input parameters:

- `date` (string)
- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_era_playlist` (~150 tokens)

Input parameters:

- `era_index` (integer)
- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)
- `track_count` (integer)

### `taste_forgotten_bangers` (~156 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)
- `top_limit` (integer)
- `track_count` (integer)

### `taste_obsession_ladder` (~131 tokens)

Input parameters:

- `max_results` (integer)
- `range` (string)
- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_diamond_rotation` (~143 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)
- `track_count` (integer)

### `taste_weekly_recap` (~114 tokens)

Input parameters:

- `days` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_genre_bridge` (~171 tokens)

Input parameters:

- `from_genre` (string)
- `max_results` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)
- `to_genre` (string)
- `track_count` (integer)

### `taste_novelty_loyalty` (~120 tokens)

Input parameters:

- `range` (string)
- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_listening_clock` (~94 tokens)

Input parameters:

- `response_format` (string)
- `statsfm_user` (string, required)

### `taste_revival_queue` (~140 tokens)

Input parameters:

- `max_results` (integer)
- `queue_size` (integer)
- `response_format` (string)
- `statsfm_user` (string, required)

### `library_hygiene` (~114 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `restore_library_snapshot` (~243 tokens)

Input parameters:

- `backup_path` (string, required)
- `categories` (array)
- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)

### `backup_library` (~189 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `notes` (string)
- `response_format` (string)

### `list_backups` (~70 tokens)

Input parameters:

- `response_format` (string)

### `get_artist_genres` (~69 tokens)

Input parameters:

- `artist_id` (string, required)
- `response_format` (string)

### `get_categories` (~153 tokens)

Input parameters:

- `country` (string)
- `limit` (integer)
- `locale` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_category_playlists` (~162 tokens)

Input parameters:

- `category_id` (string, required)
- `country` (string)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_artist_discography` (~185 tokens)

Input parameters:

- `album_types` (array)
- `artist_id` (string, required)
- `include_groups` (array)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `resolve_artist` (~121 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `query` (string, required)
- `response_format` (string)

### `save_artist_new_releases` (~123 tokens)

Input parameters:

- `artist_id` (string, required)
- `limit` (integer)
- `market` (string)
- `response_format` (string)

### `watch_artists` (~84 tokens)

Input parameters:

- `artist_ids` (array, required)
- `name` (string)
- `response_format` (string)

### `check_artist_releases` (~241 tokens)

Input parameters:

- `dry_run` (boolean)
- `limit` (integer)
- `lookback_days` (integer)
- `max_artists` (integer)
- `max_results` (integer)
- `response_format` (string)
- `watchlist_name` (string)

### `artist_release_digest` (~176 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_artists` (integer)
- `max_results` (integer)
- `response_format` (string)
- `watchlist_name` (string)

### `search_history` (~89 tokens)

Input parameters:

- `limit` (integer)
- `query` (string)
- `response_format` (string)

### `search_rerun` (~68 tokens)

Input parameters:

- `history_id` (string, required)
- `response_format` (string)

### `search_within_playlist` (~149 tokens)

Input parameters:

- `market` (string)
- `max_results` (integer)
- `playlist_id` (string, required)
- `query` (string, required)
- `response_format` (string)

### `search_history_stats` (~89 tokens)

Input parameters:

- `response_format` (string)
- `top_n` (integer)

### `audiobook_progress` (~101 tokens)

Input parameters:

- `audiobook_id` (string, required)
- `market` (string)
- `response_format` (string)

### `unsave_orphan_tracks` (~141 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_remove` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `playlist_to_library` (~125 tokens)

Input parameters:

- `dedupe` (boolean)
- `dry_run` (boolean)
- `playlist_id` (string, required)
- `response_format` (string)

### `followed_playlists_audit` (~120 tokens)

Input parameters:

- `max_results` (integer)
- `only_followed` (boolean)
- `response_format` (string)

### `get_playlist_added_dates` (~128 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `sort` (string)

### `split_playlist` (~115 tokens)

Input parameters:

- `dry_run` (boolean)
- `name_prefix` (string)
- `parts` (integer, required)
- `playlist_id` (string, required)
- `public` (boolean)

### `find_duplicate_tracks_across_playlists` (~151 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_ids` (array, required)
- `response_format` (string)

### `remove_from_library_by_playlist` (~114 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `response_format` (string)

### `search_advanced` (~255 tokens)

Input parameters:

- `fields` (object, required)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `response_format` (string)
- `types` (array)

### `track_album_bundle` (~142 tokens)

Input parameters:

- `market` (string)
- `response_format` (string)
- `track_id` (string, required)

### `artist_discography_timeline` (~174 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `max_results` (integer)
- `response_format` (string)
- `since_year` (integer)

### `search_fresh` (~258 tokens)

Input parameters:

- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `query` (string, required)
- `response_format` (string)
- `types` (array)

### `track_enrichment_batch` (~147 tokens)

Input parameters:

- `fields` (array)
- `max_results` (integer)
- `response_format` (string)
- `track_ids` (array, required)

### `albums_runtime_batch` (~156 tokens)

Input parameters:

- `album_ids` (array, required)
- `market` (string)
- `response_format` (string)

### `album_track_stats` (~139 tokens)

Input parameters:

- `album_id` (string, required)
- `market` (string)
- `response_format` (string)

### `artist_discography_stats` (~145 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `response_format` (string)

### `show_runtime_stats` (~162 tokens)

Input parameters:

- `market` (string)
- `max_episodes` (integer)
- `response_format` (string)
- `show_id` (string, required)

### `show_episode_timeline` (~175 tokens)

Input parameters:

- `gap_threshold_days` (number)
- `market` (string)
- `max_results` (integer)
- `response_format` (string)
- `show_id` (string, required)

### `category_resolver` (~177 tokens)

Input parameters:

- `country` (string)
- `locale` (string)
- `response_format` (string)
- `text` (string, required)

### `search_by_isrc` (~169 tokens)

Input parameters:

- `isrc` (string, required)
- `market` (string)
- `response_format` (string)

### `find_canonical_track` (~164 tokens)

Input parameters:

- `artist` (string, required)
- `market` (string)
- `response_format` (string)
- `title` (string, required)

### `audiobook_chapter_map` (~139 tokens)

Input parameters:

- `audiobook_id` (string, required)
- `max_results` (integer)
- `response_format` (string)

### `artist_collab_network` (~207 tokens)

Input parameters:

- `artist_id` (string, required)
- `market` (string)
- `max_albums` (integer)
- `max_results` (integer)
- `response_format` (string)

### `search_market_diff` (~171 tokens)

Input parameters:

- `limit` (integer)
- `market_a` (string, required)
- `market_b` (string, required)
- `query` (string, required)
- `response_format` (string)
- `types` (array)

### `episode_context_bundle` (~130 tokens)

Input parameters:

- `episode_id` (string, required)
- `market` (string)
- `response_format` (string)

### `audiobooks_by_author` (~214 tokens)

Input parameters:

- `author` (string, required)
- `limit` (integer)
- `market` (string)
- `response_format` (string)
- `sort` (string)

### `artist_genres_compact` (~96 tokens)

Input parameters:

- `artist_ids` (array, required)
- `response_format` (string)

### `sleep_timer` (~175 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `duration_min` (integer, required)
- `response_format` (string)

### `mute` (~120 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `unmute` (~119 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `switch_device` (~161 tokens)

Input parameters:

- `device_name` (string, required)
- `dry_run` (boolean)
- `play` (boolean)
- `response_format` (string)

### `surprise_me` (~160 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `seed` (number)
- `type` (string)

### `skip_n` (~153 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `n` (integer)
- `response_format` (string)

### `pause_everywhere` (~115 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)

### `volume_ramp` (~216 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `end_state` (string)
- `minutes` (integer)
- `response_format` (string)
- `step_minutes` (integer)
- `target_percent` (integer, required)

### `episode_bookmark` (~103 tokens)

Input parameters:

- `note` (string)
- `response_format` (string)

### `episode_resume` (~142 tokens)

Input parameters:

- `bookmark_id` (string)
- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `queue_next_episode` (~175 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `episodes_back` (integer)
- `response_format` (string)
- `show_id` (string, required)

### `queue_replace_via_playlist` (~217 tokens)

Input parameters:

- `device_id` (string)
- `drop_dupes` (boolean)
- `dry_run` (boolean)
- `keep_artists` (array)
- `playlist_name` (string)
- `response_format` (string)

### `session_stats` (~110 tokens)

Input parameters:

- `pages` (integer)
- `response_format` (string)

### `most_replayed` (~126 tokens)

Input parameters:

- `limit` (integer)
- `pages` (integer)
- `response_format` (string)

### `last_heard` (~140 tokens)

Input parameters:

- `artists` (array, required)
- `max_pages` (integer)
- `response_format` (string)

### `weekday_heatmap` (~108 tokens)

Input parameters:

- `pages` (integer)
- `response_format` (string)

### `queue_profile` (~87 tokens)

Input parameters:

- `response_format` (string)

### `checkpoint_playback` (~103 tokens)

Input parameters:

- `note` (string)
- `response_format` (string)

### `continue_last` (~119 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `room_level` (~118 tokens)

Input parameters:

- `dry_run` (boolean)
- `exclude_device_id` (string)
- `response_format` (string)

### `volume_report` (~84 tokens)

Input parameters:

- `response_format` (string)

### `daily_pick` (~127 tokens)

Input parameters:

- `date` (string)
- `pool_size` (integer)
- `response_format` (string)

### `playlist_intersect` (~267 tokens)

Input parameters:

- `dedupe` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `source_playlist_ids` (array, required)
- `target_playlist_id` (string)

### `playlist_add_by_search` (~230 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `pick` (integer)
- `playlist_id` (string, required)
- `query` (string, required)
- `response_format` (string)
- `type` (string)

### `playlist_trim_to_duration` (~242 tokens)

Input parameters:

- `dry_run` (boolean)
- `keep_which` (string)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `target_minutes` (number, required)
- `tolerance_sec` (integer)

### `saved_tracks_roulette` (~199 tokens)

Input parameters:

- `count` (integer)
- `dedupe` (boolean)
- `dry_run` (boolean)
- `from` (string)
- `name` (string)
- `public` (boolean)
- `response_format` (string)

### `playlist_slice` (~290 tokens)

Input parameters:

- `count` (integer)
- `date_from` (string)
- `date_to` (string)
- `dry_run` (boolean)
- `end` (integer)
- `max_results` (integer)
- `mode` (string, required)
- `name` (string, required)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)
- `start` (integer)

### `playlist_names_bulk_normalize` (~200 tokens)

Input parameters:

- `apply_to` (string)
- `dry_run` (boolean)
- `match` (string)
- `op` (string)
- `prefix` (string)
- `response_format` (string)
- `suffix` (string)

### `playlist_keep_only` (~245 tokens)

Input parameters:

- `artist` (string)
- `dry_run` (boolean)
- `keep_by` (string, required)
- `max_results` (integer)
- `playlist_id` (string, required)
- `query` (string)
- `response_format` (string)
- `type` (string)
- `values` (array)

### `playlist_strip_episodes` (~147 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `response_format` (string)
- `strip` (string)

### `playlist_move_to_top` (~208 tokens)

Input parameters:

- `artist` (string)
- `dry_run` (boolean)
- `match_uris` (array)
- `playlist_id` (string, required)
- `query` (string)
- `response_format` (string)
- `stable_order` (boolean)

### `playlist_exclude_artists` (~189 tokens)

Input parameters:

- `artist_ids` (array, required)
- `dedupe_scope` (string)
- `dry_run` (boolean)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_staleness_score` (~207 tokens)

Input parameters:

- `dry_run` (boolean)
- `market` (string)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `threshold_days` (integer)

### `playlist_artist_heat` (~169 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `top_n` (integer)

### `playlist_era_profile` (~199 tokens)

Input parameters:

- `dry_run` (boolean)
- `market` (string)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_overlap_matrix` (~163 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `min_overlap` (number)
- `playlist_ids` (array, required)
- `response_format` (string)

### `saved_tracks_by_artist` (~185 tokens)

Input parameters:

- `artist` (string, required)
- `dry_run` (boolean)
- `market` (string)
- `max_results` (integer)
- `response_format` (string)

### `saved_library_delta` (~190 tokens)

Input parameters:

- `dry_run` (boolean)
- `fresh_cap` (integer)
- `max_results` (integer)
- `response_format` (string)
- `snapshot_id` (string)
- `type` (string)

### `library_to_playlist` (~224 tokens)

Input parameters:

- `dry_run` (boolean)
- `from` (string)
- `limit` (integer)
- `max_results` (integer)
- `name` (string)
- `order` (string)
- `public` (boolean)
- `response_format` (string)

### `collab_mix_from_followed` (~284 tokens)

Input parameters:

- `artists_cap` (integer)
- `days` (integer)
- `dry_run` (boolean)
- `max_results` (integer)
- `name` (string)
- `per_artist` (integer)
- `response_format` (string)

### `quick_save_now` (~169 tokens)

Input parameters:

- `dry_run` (boolean)
- `market` (string)
- `recent` (integer)
- `response_format` (string)

### `morning_briefing` (~180 tokens)

Input parameters:

- `include_listening` (boolean)
- `max_artists` (integer)
- `max_shows` (integer)
- `response_format` (string)
- `since_hours` (integer)

### `monthly_listening_report` (~179 tokens)

Input parameters:

- `archive` (boolean)
- `max_results` (integer)
- `month` (string)
- `response_format` (string)

### `year_in_review` (~158 tokens)

Input parameters:

- `max_results` (integer)
- `output_format` (string)
- `response_format` (string)
- `year` (integer)

### `taste_checkpoint` (~114 tokens)

Input parameters:

- `label` (string)
- `response_format` (string)
- `time_range` (string)

### `taste_checkpoint_diff` (~101 tokens)

Input parameters:

- `from` (string)
- `response_format` (string)
- `to` (string)

### `discover_weekly_diff` (~185 tokens)

Input parameters:

- `archive_name` (string)
- `dry_run` (boolean)
- `liked_cap` (integer)
- `response_format` (string)
- `save_after` (boolean)

### `dead_library_finder` (~183 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_playlists` (integer)
- `max_results` (integer)
- `min_age_days` (integer)
- `response_format` (string)

### `week_in_review_playlist` (~187 tokens)

Input parameters:

- `dedupe` (boolean)
- `dry_run` (boolean)
- `rerun` (boolean)
- `response_format` (string)
- `week_offset` (integer)

### `scope_audit` (~106 tokens)

Input parameters:

- `probe` (boolean)
- `response_format` (string)

### `quota_probe` (~123 tokens)

Input parameters:

- `probe_set` (string)
- `response_format` (string)

### `playlist_staleness_report` (~165 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `per_playlist_cap` (integer)
- `response_format` (string)
- `sort` (string)

### `show_backlog_report` (~158 tokens)

Input parameters:

- `max_results` (integer)
- `max_shows` (integer)
- `min_hours` (number)
- `response_format` (string)
- `sort` (string)

### `audiobook_library_progress` (~146 tokens)

Input parameters:

- `max_audiobooks` (integer)
- `max_results` (integer)
- `response_format` (string)
- `sort` (string)

### `chapter_bookmarks` (~176 tokens)

Input parameters:

- `book_uri` (string)
- `chapter_name` (string)
- `dry_run` (boolean)
- `label` (string)
- `op` (string)
- `position_ms` (integer)
- `response_format` (string)

### `artist_complete_check` (~143 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_singles` (boolean)
- `max_results` (integer)
- `response_format` (string)

### `playlist_from_tags` (~180 tokens)

Input parameters:

- `dry_run` (boolean)
- `mode` (string)
- `playlist_id` (string)
- `playlist_name` (string)
- `response_format` (string)
- `tags` (array, required)

### `listening_journal_append` (~117 tokens)

Input parameters:

- `note` (string, required)
- `response_format` (string)
- `session` (string)
- `tag` (string)

### `export_playlist_markdown` (~114 tokens)

Input parameters:

- `include_added_at` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `export_shows_opml` (~123 tokens)

Input parameters:

- `fetch_all` (boolean)
- `response_format` (string)

### `sidecar_export_bundle` (~105 tokens)

Input parameters:

- `pretty` (boolean)
- `response_format` (string)

### `listening_week_in_time` (~144 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `top_n` (integer)
- `week_start` (string, required)

### `mutation_log_export` (~140 tokens)

Input parameters:

- `format` (string)
- `from` (string)
- `max_results` (integer)
- `response_format` (string)
- `to` (string)

### `undo_preview` (~112 tokens)

Input parameters:

- `check` (boolean)
- `mutation_id` (string, required)
- `response_format` (string)

### `receipt_lookup` (~120 tokens)

Input parameters:

- `id` (string)
- `response_format` (string)
- `since` (string)
- `uri` (string)

### `export_playlist_json` (~110 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `device_sync_state` (~115 tokens)

Input parameters:

- `dry_run` (boolean)
- `prune` (boolean)
- `response_format` (string)

### `playlist_fill_from_search` (~205 tokens)

Input parameters:

- `dry_run` (boolean)
- `market` (string)
- `playlist_id` (string, required)
- `queries` (array, required)
- `response_format` (string)
- `target_count` (integer)

### `playlist_expression_algebra` (~313 tokens)

Input parameters:

- `dry_run` (boolean)
- `expression` (string, required)
- `public` (boolean)
- `response_format` (string)
- `target_name` (string, required)

### `playlist_cover_from_track` (~203 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `position` (integer)
- `response_format` (string)
- `track_uri` (string)

### `library_coverage_report` (~185 tokens)

Input parameters:

- `dry_run` (boolean)
- `include_not_saved` (boolean)
- `max_playlists` (integer)
- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `listening_heatmap` (~110 tokens)

Input parameters:

- `limit` (integer)
- `lookback_days` (integer)
- `response_format` (string)

### `library_growth_report` (~100 tokens)

Input parameters:

- `lookback` (integer)
- `period` (string)
- `response_format` (string)

### `genre_trends_over_time` (~126 tokens)

Input parameters:

- `lookback` (integer)
- `max_results` (integer)
- `period` (string)
- `response_format` (string)

### `save_discover_weekly` (~145 tokens)

Input parameters:

- `archive_name` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `save_release_radar` (~144 tokens)

Input parameters:

- `archive_name` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `export_library_json` (~159 tokens)

Input parameters:

- `format` (string)
- `output_dir` (string)
- `response_format` (string)

### `export_followed_artists` (~127 tokens)

Input parameters:

- `format` (string)
- `output_dir` (string)
- `response_format` (string)

### `export_profile_state` (~148 tokens)

Input parameters:

- `include_history` (boolean)
- `output_dir` (string)
- `response_format` (string)

### `import_profile_state` (~108 tokens)

Input parameters:

- `input_path` (string, required)
- `mode` (string)
- `response_format` (string)

### `export_listening_history` (~222 tokens)

Input parameters:

- `after` (string)
- `before` (string)
- `format` (string)
- `limit` (integer)
- `max_items` (integer)
- `output_dir` (string)
- `response_format` (string)

### `export_all_playlists` (~142 tokens)

Input parameters:

- `format` (string)
- `include_items` (boolean)
- `output_dir` (string)
- `response_format` (string)
- `scope` (string)

### `library_snapshot_diff` (~102 tokens)

Input parameters:

- `after_path` (string, required)
- `before_path` (string, required)
- `response_format` (string)

### `history_search` (~82 tokens)

Input parameters:

- `query` (string)
- `response_format` (string)

### `import_from_sidecar` (~137 tokens)

Input parameters:

- `dry_run` (boolean)
- `input_path` (string)
- `response_format` (string)

### `archive_played_episodes` (~135 tokens)

Input parameters:

- `confirm` (boolean)
- `dry_run` (boolean)
- `limit` (integer)
- `response_format` (string)

### `playlist_health_check` (~69 tokens)

Input parameters:

- `playlist_id` (string, required)
- `response_format` (string)

### `get_playlist_followers` (~82 tokens)

Input parameters:

- `include_profiles` (boolean)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_collaboration_report` (~71 tokens)

Input parameters:

- `playlist_id` (string, required)
- `response_format` (string)

### `snapshot_playlist` (~123 tokens)

Input parameters:

- `playlist_id` (string, required)
- `response_format` (string)
- `snapshot_id` (string)

### `diff_since_snapshot` (~74 tokens)

Input parameters:

- `playlist_id` (string, required)
- `response_format` (string)
- `snapshot_id` (string, required)

### `remove_unavailable_playlist_items` (~126 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `find_duplicate_playlists` (~192 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_playlists` (integer)
- `response_format` (string)
- `scan_cap` (integer)
- `threshold` (number)

### `list_playlist_snapshots` (~70 tokens)

Input parameters:

- `playlist_id` (string)
- `response_format` (string)

### `batch_add_to_playlist` (~218 tokens)

Input parameters:

- `dedupe` (boolean)
- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `source_uris` (array, required)
- `target_playlist_id` (string, required)

### `copy_playlist` (~201 tokens)

Input parameters:

- `collaborative` (boolean)
- `description` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `new_name` (string, required)
- `public` (boolean)
- `response_format` (string)
- `source_playlist_id` (string, required)

### `move_items_between_playlists` (~225 tokens)

Input parameters:

- `dedupe` (boolean)
- `dry_run` (boolean)
- `filter` (string)
- `max_results` (integer)
- `mode` (string)
- `response_format` (string)
- `source_playlist_id` (string, required)
- `target_playlist_id` (string, required)

### `pin_playlist` (~90 tokens)

Input parameters:

- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)

### `unpin_playlist` (~105 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_template_apply` (~164 tokens)

Input parameters:

- `description` (string)
- `dry_run` (boolean)
- `limit` (integer)
- `name` (string)
- `public` (boolean)
- `response_format` (string)
- `template` (string, required)

### `queue_playlist` (~208 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `limit` (integer)
- `mode` (string)
- `response_format` (string)
- `source_uri` (string, required)

### `save_queue_as_playlist` (~227 tokens)

Input parameters:

- `description` (string)
- `dry_run` (boolean)
- `include_current` (boolean)
- `include_episodes` (boolean)
- `name` (string)
- `response_format` (string)
- `target_playlist_id` (string)

### `batch_add_to_queue` (~168 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `uris` (array, required)

### `save_playback_state` (~70 tokens)

Input parameters:

- `name` (string)
- `response_format` (string)

### `restore_playback_state` (~106 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `name` (string, required)
- `response_format` (string)

### `list_playback_states` (~54 tokens)

Input parameters:

- `response_format` (string)

### `rename_device` (~76 tokens)

Input parameters:

- `device_id` (string, required)
- `new_name` (string, required)
- `response_format` (string)

### `set_device_volume_preset` (~84 tokens)

Input parameters:

- `device_id` (string, required)
- `response_format` (string)
- `volume_percent` (integer, required)

### `apply_device_presets` (~80 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)

### `list_device_presets` (~52 tokens)

Input parameters:

- `response_format` (string)

### `tag_listening_session` (~98 tokens)

Input parameters:

- `note` (string)
- `response_format` (string)
- `session_id` (string, required)
- `tags` (array)

### `replay_session` (~100 tokens)

Input parameters:

- `dry_run` (boolean)
- `mode` (string)
- `response_format` (string)
- `session_id` (string, required)

### `list_sessions` (~74 tokens)

Input parameters:

- `response_format` (string)
- `tag` (string)

### `save_smart_playlist_rule` (~95 tokens)

Input parameters:

- `name` (string, required)
- `response_format` (string)
- `rule` (object, required)

### `refresh_smart_playlist` (~116 tokens)

Input parameters:

- `dry_run` (boolean)
- `name` (string, required)
- `playlist_id` (string)
- `response_format` (string)

### `save_show_digest` (~99 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_name` (string)
- `response_format` (string)

### `play_on` (~253 tokens)

Input parameters:

- `context_uri` (string)
- `device` (string, required)
- `dry_run` (boolean)
- `position_ms` (integer)
- `query` (string)
- `response_format` (string)
- `search_type` (string)
- `shuffle` (boolean)
- `uris` (array)
- `volume` (integer)

### `queue_next` (~142 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `uri` (string, required)

### `describe_queue` (~154 tokens)

Input parameters:

- `include_context` (boolean)
- `max_results` (integer)
- `response_format` (string)

### `describe_listening_session` (~113 tokens)

Input parameters:

- `as_session` (boolean)
- `limit` (integer)
- `response_format` (string)

### `play_at` (~219 tokens)

Input parameters:

- `at` (string)
- `context_uri` (string)
- `device_id` (string)
- `dry_run` (boolean)
- `offset` (integer)
- `offset_uri` (string)
- `position_ms` (integer)
- `response_format` (string)
- `uris` (array)

### `device_health` (~84 tokens)

Input parameters:

- `response_format` (string)

### `seek_relative` (~144 tokens)

Input parameters:

- `delta_ms` (integer, required)
- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)

### `playback_timeline` (~102 tokens)

Input parameters:

- `include_queue` (boolean)
- `response_format` (string)

### `repeat_queue_toggle` (~127 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `enable` (boolean, required)
- `response_format` (string)
- `shuffle` (boolean)

### `now_playing_history` (~105 tokens)

Input parameters:

- `dedupe` (boolean)
- `limit` (integer)
- `response_format` (string)

### `playback_compare_states` (~97 tokens)

Input parameters:

- `response_format` (string)
- `state_a` (string, required)
- `state_b` (string, required)

### `peek_next` (~116 tokens)

Input parameters:

- `count` (integer)
- `max_results` (integer)
- `response_format` (string)

### `get_playback_context` (~89 tokens)

Input parameters:

- `response_format` (string)

### `volume_step` (~137 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `response_format` (string)
- `step` (integer, required)

### `market_availability` (~148 tokens)

Input parameters:

- `markets` (array, required)
- `response_format` (string)
- `uri` (string, required)

### `spotify_doctor` (~105 tokens)

Input parameters:

- `response_format` (string)
- `verbose` (boolean)

### `get_playback_snapshot` (~69 tokens)

Input parameters:

- `response_format` (string)

### `capture_playback_position` (~100 tokens)

Input parameters:

- `label` (string)
- `response_format` (string)

### `resume_playback_position` (~140 tokens)

Input parameters:

- `bookmark_id` (string, required)
- `dry_run` (boolean)
- `play` (boolean)
- `response_format` (string)

### `list_playback_bookmarks` (~88 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `delete_playback_bookmark` (~109 tokens)

Input parameters:

- `bookmark_id` (string, required)
- `dry_run` (boolean)
- `response_format` (string)

### `compare_devices` (~71 tokens)

Input parameters:

- `response_format` (string)

### `get_device_volume_report` (~66 tokens)

Input parameters:

- `response_format` (string)

### `plan_volume_level_across_devices` (~119 tokens)

Input parameters:

- `device_ids` (array)
- `response_format` (string)
- `volume` (integer, required)

### `apply_volume_plan` (~147 tokens)

Input parameters:

- `device_ids` (array)
- `dry_run` (boolean)
- `response_format` (string)
- `volume` (integer, required)

### `get_queue_snapshot` (~110 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `queue_runtime_report` (~69 tokens)

Input parameters:

- `response_format` (string)

### `split_queue_plan` (~144 tokens)

Input parameters:

- `chunk_minutes` (integer)
- `dry_run` (boolean)
- `playlist_name_prefix` (string)
- `response_format` (string)

### `queue_duplicate_check` (~66 tokens)

Input parameters:

- `response_format` (string)

### `queue_prune_plan` (~116 tokens)

Input parameters:

- `drop_episodes` (boolean)
- `response_format` (string)

### `get_context_inspect` (~76 tokens)

Input parameters:

- `response_format` (string)

### `predict_next_tracks` (~87 tokens)

Input parameters:

- `count` (integer)
- `response_format` (string)

### `shuffle_state_report` (~63 tokens)

Input parameters:

- `response_format` (string)

### `playback_health_check` (~73 tokens)

Input parameters:

- `response_format` (string)

### `listening_session_start` (~92 tokens)

Input parameters:

- `label` (string)
- `response_format` (string)

### `listening_session_close` (~87 tokens)

Input parameters:

- `response_format` (string)
- `session_id` (string, required)

### `listening_session_report` (~88 tokens)

Input parameters:

- `response_format` (string)
- `session_id` (string)

### `transfer_playback_with_state` (~135 tokens)

Input parameters:

- `dry_run` (boolean)
- `play` (boolean)
- `response_format` (string)
- `target_device` (string, required)

### `sleep_timer_plan` (~88 tokens)

Input parameters:

- `minutes` (integer)
- `response_format` (string)

### `device_type_census` (~65 tokens)

Input parameters:

- `response_format` (string)

### `sort_playlist_plan` (~169 tokens)

Input parameters:

- `direction` (string)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `sort_by` (string)

### `sort_playlist_apply` (~208 tokens)

Input parameters:

- `direction` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `sort_by` (string)

### `reverse_playlist_plan` (~175 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `rotate_playlist_plan` (~208 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `positions` (integer)
- `response_format` (string)

### `interleave_playlists_plan` (~277 tokens)

Input parameters:

- `chunk_size` (integer)
- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_ids` (array, required)
- `response_format` (string)
- `strategy` (string)
- `target_playlist_id` (string)

### `merge_playlists_plan` (~245 tokens)

Input parameters:

- `dedupe` (string)
- `description` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `name` (string)
- `playlist_ids` (array, required)
- `public` (boolean)
- `response_format` (string)

### `playlist_difference_plan` (~247 tokens)

Input parameters:

- `base_playlist_id` (string, required)
- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `subtract_playlist_ids` (array, required)
- `target_playlist_id` (string)

### `playlist_intersection` (~135 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_ids` (array, required)
- `response_format` (string)

### `playlist_union_preview` (~132 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_ids` (array, required)
- `response_format` (string)

### `extract_playlist_range` (~249 tokens)

Input parameters:

- `dry_run` (boolean)
- `end` (integer)
- `max_results` (integer)
- `name` (string, required)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)
- `start` (integer)

### `remove_playlist_range` (~197 tokens)

Input parameters:

- `dry_run` (boolean)
- `end` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `start` (integer)

### `dedupe_playlist_plan` (~135 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `dedupe_playlist_apply` (~167 tokens)

Input parameters:

- `dry_run` (boolean)
- `keep` (string)
- `playlist_id` (string, required)
- `response_format` (string)

### `split_playlist_by_count` (~231 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `parts` (integer)
- `playlist_id` (string, required)
- `prefix` (string)
- `public` (boolean)
- `response_format` (string)

### `split_playlist_by_duration` (~246 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `prefix` (string)
- `public` (boolean)
- `response_format` (string)
- `target_minutes` (number, required)
- `tolerance_sec` (integer)

### `filter_playlist_by_era` (~263 tokens)

Input parameters:

- `decade` (integer)
- `dry_run` (boolean)
- `from_year` (integer)
- `max_results` (integer)
- `name` (string)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)
- `to_year` (integer)

### `filter_playlist_by_artist` (~232 tokens)

Input parameters:

- `artists` (array, required)
- `dry_run` (boolean)
- `max_results` (integer)
- `name` (string)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)

### `filter_playlist_by_duration` (~238 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `max_seconds` (integer)
- `min_seconds` (integer)
- `name` (string)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)

### `sample_playlist_tracks` (~168 tokens)

Input parameters:

- `count` (integer)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `seed` (integer)

### `playlist_table_of_contents` (~139 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_edit_journal` (~142 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `move_tracks_between_playlists` (~257 tokens)

Input parameters:

- `artist` (string)
- `destination_playlist_id` (string, required)
- `dry_run` (boolean)
- `match_uris` (array)
- `max_results` (integer)
- `query` (string)
- `response_format` (string)
- `source_playlist_id` (string, required)

### `balance_playlist_pairs` (~193 tokens)

Input parameters:

- `balance_by` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_ids` (array, required)
- `response_format` (string)

### `playlist_clone_live` (~222 tokens)

Input parameters:

- `description` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `name` (string)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)

### `artist_deep_dive` (~156 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `response_format` (string)

### `artist_discography_gaps` (~181 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `max_results` (integer)
- `order` (string)
- `response_format` (string)
- `since_year` (integer)

### `artist_era_sampler` (~156 tokens)

Input parameters:

- `artist_id` (string, required)
- `eras` (integer)
- `per_era` (integer)
- `response_format` (string)

### `artist_deep_cuts` (~159 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_releases` (integer)
- `max_results` (integer)
- `response_format` (string)

### `artist_first_release` (~119 tokens)

Input parameters:

- `artist_id` (string, required)
- `response_format` (string)

### `artist_latest_release_report` (~142 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `response_format` (string)

### `artist_album_completeness` (~154 tokens)

Input parameters:

- `artist_id` (string, required)
- `response_format` (string)
- `saved_cap` (integer)

### `artist_top_vs_saved` (~175 tokens)

Input parameters:

- `artists_cap` (integer)
- `response_format` (string)
- `saved_album_cap` (integer)
- `saved_track_cap` (integer)
- `window` (string)

### `find_collaborations` (~205 tokens)

Input parameters:

- `artist_a` (string, required)
- `artist_b` (string, required)
- `market` (string)
- `max_releases` (integer)
- `response_format` (string)

### `artist_collaboration_network` (~198 tokens)

Input parameters:

- `artist_id` (string, required)
- `first_degree_cap` (integer)
- `max_releases` (integer)
- `max_results` (integer)
- `releases_per_collab` (integer)
- `response_format` (string)

### `label_explorer` (~140 tokens)

Input parameters:

- `label` (string)
- `max_results` (integer)
- `response_format` (string)
- `saved_cap` (integer)

### `year_explorer` (~196 tokens)

Input parameters:

- `catalog_limit` (integer)
- `market` (string)
- `response_format` (string)
- `saved_album_cap` (integer)
- `saved_track_cap` (integer)
- `year` (integer, required)

### `decade_sampler_plan` (~125 tokens)

Input parameters:

- `per_decade` (integer)
- `response_format` (string)
- `saved_cap` (integer)

### `artist_name_disambiguator` (~162 tokens)

Input parameters:

- `candidates_cap` (integer)
- `market` (string)
- `name` (string, required)
- `response_format` (string)

### `artistwatch_new_additions` (~128 tokens)

Input parameters:

- `artists_cap` (integer)
- `days` (integer)
- `response_format` (string)

### `album_representative_plan` (~161 tokens)

Input parameters:

- `album_id` (string, required)
- `market` (string)
- `response_format` (string)

### `front_to_back_plan` (~185 tokens)

Input parameters:

- `album_id` (string, required)
- `market` (string)
- `response_format` (string)
- `side_minutes` (integer)

### `b_sides_finder` (~184 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_per_group` (integer)
- `max_results` (integer)
- `response_format` (string)

### `album_focus_report` (~159 tokens)

Input parameters:

- `album_id` (string, required)
- `market` (string)
- `response_format` (string)

### `artist_catalog_stats` (~150 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `response_format` (string)

### `lyric_snippet_search` (~197 tokens)

Input parameters:

- `artist` (string)
- `limit` (integer)
- `market` (string)
- `response_format` (string)
- `snippet` (string, required)

### `new_music_from_top_artists` (~152 tokens)

Input parameters:

- `artists_cap` (integer)
- `days` (integer)
- `response_format` (string)
- `window` (string)

### `discovery_digest` (~178 tokens)

Input parameters:

- `days` (integer)
- `market` (string)
- `response_format` (string)
- `top_artists` (integer)

### `era_distribution_report` (~152 tokens)

Input parameters:

- `artist_id` (string)
- `include_groups` (string)
- `response_format` (string)
- `saved_cap` (integer)

### `artist_discography_explorer` (~164 tokens)

Input parameters:

- `artist` (string, required)
- `include_groups` (string)
- `max_results` (integer)
- `response_format` (string)

### `artist_album_timeline` (~143 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `max_results` (integer)
- `response_format` (string)

### `artist_era_map` (~159 tokens)

Input parameters:

- `artist_id` (string, required)
- `gap_years` (number)
- `include_groups` (string)
- `response_format` (string)

### `artist_release_type_breakdown` (~139 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `response_format` (string)

### `artist_latest_releases` (~150 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `limit` (integer)
- `response_format` (string)

### `artist_reissue_detector` (~142 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_releases` (integer)
- `max_results` (integer)
- `response_format` (string)

### `artist_debut_release_finder` (~103 tokens)

Input parameters:

- `artist_id` (string, required)
- `response_format` (string)

### `label_discography_explorer` (~146 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `max_results` (integer)
- `response_format` (string)

### `artist_discography_search` (~155 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `max_results` (integer)
- `query` (string, required)
- `response_format` (string)

### `artist_decade_span` (~129 tokens)

Input parameters:

- `artist_id` (string, required)
- `include_groups` (string)
- `response_format` (string)

### `album_track_explorer` (~113 tokens)

Input parameters:

- `album_id` (string, required)
- `max_results` (integer)
- `response_format` (string)

### `album_openers_report` (~126 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_albums` (integer)
- `response_format` (string)

### `deep_cuts_finder` (~150 tokens)

Input parameters:

- `artist_id` (string, required)
- `cuts_per_album` (integer)
- `max_albums` (integer)
- `max_results` (integer)
- `response_format` (string)

### `b_sides_detector` (~149 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_results` (integer)
- `max_singles` (integer)
- `response_format` (string)

### `track_release_origin` (~142 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_releases` (integer)
- `response_format` (string)
- `track_name` (string, required)

### `album_anniversary_check` (~150 tokens)

Input parameters:

- `artist_id` (string, required)
- `milestone_step` (integer)
- `response_format` (string)
- `window_days` (integer)

### `album_duration_report` (~132 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_albums` (integer)
- `max_results` (integer)
- `response_format` (string)

### `new_music_from_saved_artists` (~137 tokens)

Input parameters:

- `artist_limit` (integer)
- `include_saved_album_artists` (boolean)
- `max_results` (integer)
- `response_format` (string)

### `artist_scout_from_playlists` (~142 tokens)

Input parameters:

- `max_artists` (integer)
- `max_items` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `artist_live_albums_finder` (~111 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_results` (integer)
- `response_format` (string)

### `artist_collection_gaps` (~101 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_results` (integer)
- `response_format` (string)

### `artist_singles_timeline` (~115 tokens)

Input parameters:

- `artist_id` (string, required)
- `max_results` (integer)
- `response_format` (string)

### `genre_dive_search` (~163 tokens)

Input parameters:

- `genre` (string, required)
- `limit` (integer)
- `market` (string)
- `response_format` (string)

### `scene_sampler_search` (~163 tokens)

Input parameters:

- `market` (string)
- `max_artists` (integer)
- `response_format` (string)
- `scene` (string, required)

### `saved_albums_by_decade` (~121 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `saved_albums_by_label` (~120 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `saved_albums_by_type` (~117 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `artist_representation_census` (~142 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)
- `top_n` (integer)

### `orphaned_artist_check` (~148 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `saved_track_age_report` (~121 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `added_on_this_day` (~124 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `library_growth_timeline` (~125 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `duplicate_saved_versions` (~123 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `album_edition_lint` (~130 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `never_played_saved` (~163 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `saved_vs_playlist_coverage` (~147 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `artist_completeness_score` (~185 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)
- `top_n` (integer)

### `saved_runtime_by_era` (~119 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `longest_saved_tracks` (~109 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `shortest_saved_tracks` (~109 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `saved_albums_by_year` (~110 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `collab_density_report` (~122 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `featuring_density_report` (~123 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `title_length_outliers` (~121 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `explicit_content_ratio` (~113 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `is_local_census` (~126 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `unplayable_saved_check` (~127 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `library_value_summary` (~167 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)
- `scan_cap` (integer)

### `list_saved_shows` (~109 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `get_show_details` (~117 tokens)

Input parameters:

- `market` (string)
- `response_format` (string)
- `show_id` (string, required)

### `list_show_episodes` (~193 tokens)

Input parameters:

- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `show_id` (string, required)

### `get_show_latest_episode` (~125 tokens)

Input parameters:

- `market` (string)
- `response_format` (string)
- `show_id` (string, required)

### `saved_shows_publisher_census` (~123 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `top_n` (integer)

### `shows_without_new_episodes` (~153 tokens)

Input parameters:

- `lookback_days` (integer)
- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)

### `stale_saved_shows_plan` (~162 tokens)

Input parameters:

- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)
- `threshold_days` (integer)

### `subscribe_to_show` (~121 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `show_ids` (array, required)

### `unsubscribe_from_show` (~151 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `show_id` (string, required)

### `remove_saved_shows` (~150 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `show_ids` (array, required)

### `get_episode_details` (~118 tokens)

Input parameters:

- `episode_id` (string, required)
- `market` (string)
- `response_format` (string)

### `check_episode_saved` (~90 tokens)

Input parameters:

- `episode_ids` (array, required)
- `response_format` (string)

### `save_episode` (~119 tokens)

Input parameters:

- `dry_run` (boolean)
- `episode_ids` (array, required)
- `response_format` (string)

### `remove_saved_episode` (~144 tokens)

Input parameters:

- `dry_run` (boolean)
- `episode_ids` (array, required)
- `response_format` (string)

### `mark_episode_played_plan` (~108 tokens)

Input parameters:

- `episode_ids` (array, required)
- `response_format` (string)

### `get_newly_released_episodes` (~149 tokens)

Input parameters:

- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)
- `since` (string)

### `shows_release_calendar` (~126 tokens)

Input parameters:

- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)

### `episode_runtime_report` (~145 tokens)

Input parameters:

- `episodes_limit` (integer)
- `max_results` (integer)
- `response_format` (string)
- `show_id` (string, required)

### `publisher_portfolio` (~127 tokens)

Input parameters:

- `eps_per_show` (integer)
- `max_results` (integer)
- `response_format` (string)

### `show_activity_feed` (~147 tokens)

Input parameters:

- `eps_per_show` (integer)
- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)

### `show_backlog_plan` (~179 tokens)

Input parameters:

- `dry_run` (boolean)
- `eps_per_show` (integer)
- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)

### `find_show_by_publisher` (~146 tokens)

Input parameters:

- `market` (string)
- `max_results` (integer)
- `query` (string, required)
- `response_format` (string)

### `episode_guest_census` (~150 tokens)

Input parameters:

- `episodes_limit` (integer)
- `max_results` (integer)
- `response_format` (string)
- `show_id` (string, required)

### `show_recommendation_brief` (~152 tokens)

Input parameters:

- `max_results` (integer)
- `max_shows` (integer)
- `response_format` (string)
- `since` (string)

### `top_artist_ranking_delta` (~132 tokens)

Input parameters:

- `base_range` (string)
- `compare_range` (string)
- `limit` (integer)
- `response_format` (string)

### `top_track_ranking_delta` (~132 tokens)

Input parameters:

- `base_range` (string)
- `compare_range` (string)
- `limit` (integer)
- `response_format` (string)

### `top_artist_leaderboard` (~131 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)

### `top_track_leaderboard` (~131 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)

### `artist_velocity_report` (~125 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)

### `track_rotation_report` (~138 tokens)

Input parameters:

- `max_items` (integer)
- `max_results` (integer)
- `response_format` (string)

### `discovery_ratio` (~141 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)
- `time_range` (string)

### `listening_clock` (~114 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `weekday_listening_report` (~115 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `binge_detector_report` (~131 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)
- `threshold` (integer)

### `repeat_listener_report` (~142 tokens)

Input parameters:

- `max_items` (integer)
- `max_results` (integer)
- `response_format` (string)

### `listening_streak_report` (~113 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `top_genre_census` (~142 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)

### `mood_bucket_report` (~149 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)
- `time_range` (string)

### `deep_dive_report` (~143 tokens)

Input parameters:

- `artist` (string, required)
- `max_items` (integer)
- `response_format` (string)

### `listening_clock_heatmap` (~109 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `artist_listening_clock` (~141 tokens)

Input parameters:

- `artist` (string)
- `max_items` (integer)
- `response_format` (string)

### `session_length_report` (~138 tokens)

Input parameters:

- `gap_minutes` (number)
- `max_items` (integer)
- `response_format` (string)

### `listening_gaps_report` (~140 tokens)

Input parameters:

- `max_items` (integer)
- `min_gap_minutes` (number)
- `response_format` (string)

### `weekly_rotation_report` (~123 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `listening_consistency_score` (~122 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `era_preference_report` (~150 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)
- `time_range` (string)

### `listening_recap_brief` (~123 tokens)

Input parameters:

- `max_items` (integer)
- `response_format` (string)

### `listening_history_export` (~150 tokens)

Input parameters:

- `max_items` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `parse_spotify_uri` (~90 tokens)

Input parameters:

- `response_format` (string)
- `uri` (string, required)

### `format_spotify_uri` (~109 tokens)

Input parameters:

- `id` (string, required)
- `kind` (string, required)
- `response_format` (string)

### `spotify_uri_to_open_url` (~104 tokens)

Input parameters:

- `kind` (string)
- `response_format` (string)
- `uri` (string, required)

### `open_url_to_spotify_uri` (~91 tokens)

Input parameters:

- `response_format` (string)
- `url` (string, required)

### `extract_spotify_id` (~82 tokens)

Input parameters:

- `expected_kind` (string)
- `ref` (string, required)

### `validate_spotify_uri` (~53 tokens)

Input parameters:

- `uri` (string, required)

### `normalize_spotify_uri` (~87 tokens)

Input parameters:

- `ref` (string, required)
- `response_format` (string)

### `spotify_uri_kind` (~82 tokens)

Input parameters:

- `ref` (string, required)
- `response_format` (string)

### `batch_parse_spotify_uris` (~85 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `is_valid_spotify_uri` (~53 tokens)

Input parameters:

- `uri` (string, required)

### `uri_namespace_census` (~89 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `base62_to_uri` (~95 tokens)

Input parameters:

- `base62` (string, required)
- `kind` (string, required)
- `response_format` (string)

### `uri_to_base62` (~88 tokens)

Input parameters:

- `response_format` (string)
- `uri` (string, required)

### `make_spotify_uri` (~87 tokens)

Input parameters:

- `id` (string, required)
- `kind` (string, required)
- `response_format` (string)

### `split_uri_list` (~105 tokens)

Input parameters:

- `delimiter` (string)
- `list` (string, required)
- `response_format` (string)

### `join_uri_list` (~100 tokens)

Input parameters:

- `response_format` (string)
- `separator` (string)
- `uris` (array, required)

### `dedupe_spotify_uris` (~83 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `find_duplicate_spotify_uris` (~80 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `sort_uris_by_kind` (~90 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `count_uris_by_type` (~85 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `canonicalize_spotify_uri` (~89 tokens)

Input parameters:

- `response_format` (string)
- `uris` (array, required)

### `uri_kind_stats` (~48 tokens)

Input parameters:

- `uris` (array, required)

### `classify_spotify_uris` (~53 tokens)

Input parameters:

- `uris` (array, required)

### `uri_shorthand_expand` (~94 tokens)

Input parameters:

- `refs` (array, required)

### `take_playlist_snapshot` (~259 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `notes` (string)
- `playlist` (string, required)
- `response_format` (string)

### `list_saved_snapshots` (~161 tokens)

Input parameters:

- `max_results` (integer)
- `playlist` (string)
- `response_format` (string)

### `read_playlist_snapshot` (~154 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `snapshot` (string, required)

### `delete_playlist_snapshot` (~159 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `snapshot` (string, required)

### `diff_playlist_snapshots` (~176 tokens)

Input parameters:

- `from_snapshot` (string, required)
- `max_results` (integer)
- `response_format` (string)
- `to_snapshot` (string, required)

### `snapshot_new_tracks` (~166 tokens)

Input parameters:

- `from_snapshot` (string, required)
- `max_results` (integer)
- `response_format` (string)
- `to_snapshot` (string, required)

### `snapshot_removed_tracks` (~166 tokens)

Input parameters:

- `from_snapshot` (string, required)
- `max_results` (integer)
- `response_format` (string)
- `to_snapshot` (string, required)

### `snapshot_added_at_report` (~126 tokens)

Input parameters:

- `response_format` (string)
- `snapshot` (string, required)

### `snapshot_changelog` (~150 tokens)

Input parameters:

- `max_results` (integer)
- `playlist` (string, required)
- `response_format` (string)

### `snapshot_stats_report` (~127 tokens)

Input parameters:

- `response_format` (string)
- `snapshot` (string, required)

### `snapshot_integrity_check` (~138 tokens)

Input parameters:

- `response_format` (string)
- `snapshot` (string)

### `prune_old_snapshots` (~207 tokens)

Input parameters:

- `dry_run` (boolean)
- `keep_last` (integer)
- `older_than_days` (integer)
- `playlist` (string)
- `response_format` (string)

### `restore_playlist_from_snapshot` (~188 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist` (string)
- `response_format` (string)
- `snapshot` (string, required)

### `restore_playlist_plan` (~150 tokens)

Input parameters:

- `playlist` (string)
- `response_format` (string)
- `snapshot` (string, required)

### `snapshot_diff_summary` (~143 tokens)

Input parameters:

- `from_snapshot` (string, required)
- `response_format` (string)
- `to_snapshot` (string, required)

### `find_new_since_snapshot` (~171 tokens)

Input parameters:

- `max_results` (integer)
- `playlist` (string)
- `response_format` (string)
- `snapshot` (string, required)

### `find_lost_since_snapshot` (~172 tokens)

Input parameters:

- `max_results` (integer)
- `playlist` (string)
- `response_format` (string)
- `snapshot` (string, required)

### `merge_snapshot_changes_plan` (~181 tokens)

Input parameters:

- `from_snapshot` (string, required)
- `mode` (string)
- `playlist` (string)
- `response_format` (string)
- `to_snapshot` (string, required)

### `apply_snapshot_changes` (~211 tokens)

Input parameters:

- `dry_run` (boolean)
- `from_snapshot` (string, required)
- `mode` (string)
- `playlist` (string)
- `response_format` (string)
- `to_snapshot` (string, required)

### `snapshot_retention_plan` (~168 tokens)

Input parameters:

- `keep_last` (integer)
- `older_than_days` (integer)
- `playlist` (string)
- `response_format` (string)

### `snapshot_disk_usage` (~113 tokens)

Input parameters:

- `response_format` (string)

### `snapshot_integrity_report` (~118 tokens)

Input parameters:

- `response_format` (string)

### `export_snapshot_bundle` (~191 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist` (string)
- `response_format` (string)
- `snapshots` (array)

### `snapshot_registry_report` (~117 tokens)

Input parameters:

- `response_format` (string)

### `find_tool` (~139 tokens)

Input parameters:

- `limit` (integer)
- `query` (string, required)
- `response_format` (string)

### `inspect_tool` (~66 tokens)

Input parameters:

- `response_format` (string)
- `tool_name` (string, required)

### `toolset_report` (~49 tokens)

### `playlist_resequence` (~228 tokens)

Input parameters:

- `direction` (string)
- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `sort_by` (string, required)

### `playlist_rotate` (~199 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `positions` (integer, required)
- `response_format` (string)

### `playlist_seed_shuffle` (~209 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `seed` (integer)

### `playlist_flip_order` (~157 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_move_block` (~255 tokens)

Input parameters:

- `count` (integer)
- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `start` (integer, required)
- `to_position` (integer, required)

### `playlist_swap_positions` (~197 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `position_a` (integer, required)
- `position_b` (integer, required)
- `response_format` (string)

### `playlist_dedupe_advanced` (~236 tokens)

Input parameters:

- `dry_run` (boolean)
- `keep` (string)
- `match_by` (string)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_remove_artist` (~194 tokens)

Input parameters:

- `artist` (string, required)
- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_keep_artist` (~211 tokens)

Input parameters:

- `artist` (string, required)
- `dry_run` (boolean)
- `keep_episodes` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_filter_runtime` (~203 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `max_sec` (integer)
- `min_sec` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_chunk_preview` (~212 tokens)

Input parameters:

- `chunks_to_show` (integer)
- `max_results` (integer)
- `offset` (integer)
- `page_size` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_diff` (~181 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_a_id` (string, required)
- `playlist_b_id` (string, required)
- `response_format` (string)

### `playlist_history` (~110 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `playlist_snapshot_detail` (~154 tokens)

Input parameters:

- `backup_file` (string, required)
- `max_results` (integer)
- `playlist_name` (string, required)
- `response_format` (string)

### `playlist_clone_snapshot` (~241 tokens)

Input parameters:

- `backup_file` (string, required)
- `dry_run` (boolean)
- `max_results` (integer)
- `new_name` (string)
- `playlist_name` (string, required)
- `public` (boolean)
- `response_format` (string)

### `playlist_changelog` (~163 tokens)

Input parameters:

- `backup_file_a` (string, required)
- `backup_file_b` (string, required)
- `max_results` (integer)
- `playlist_name` (string, required)
- `response_format` (string)

### `playlist_pair_check` (~156 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_a_id` (string, required)
- `playlist_b_id` (string, required)
- `response_format` (string)

### `playlist_balance` (~262 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `name_prefix` (string)
- `parts` (integer, required)
- `playlist_id` (string, required)
- `public` (boolean)
- `response_format` (string)
- `strategy` (string)

### `statsfm_resolve_user` (~85 tokens)

Input parameters:

- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_tracks` (~146 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_artists` (~147 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_albums` (~147 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_genres` (~147 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_recent_streams` (~144 tokens)

Input parameters:

- `after` (integer)
- `before` (integer)
- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_now_playing` (~80 tokens)

Input parameters:

- `response_format` (string)
- `user_id` (string, required)

### `statsfm_track_stats` (~105 tokens)

Input parameters:

- `limit` (integer)
- `response_format` (string)
- `track_id` (string|number, required)
- `user_id` (string, required)

### `statsfm_artist_stats` (~105 tokens)

Input parameters:

- `artist_id` (string|number, required)
- `limit` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_album_stats` (~105 tokens)

Input parameters:

- `album_id` (string|number, required)
- `limit` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_search` (~111 tokens)

Input parameters:

- `limit` (integer)
- `query` (string, required)
- `response_format` (string)
- `type` (string)

### `statsfm_recaps` (~94 tokens)

Input parameters:

- `response_format` (string)
- `user_id` (string, required)
- `year` (integer)

### `statsfm_streams_stats` (~116 tokens)

Input parameters:

- `after` (integer)
- `before` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_tracks_from_artist` (~161 tokens)

Input parameters:

- `artist_id` (string|number, required)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_albums_from_artist` (~162 tokens)

Input parameters:

- `artist_id` (string|number, required)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_top_tracks_from_album` (~161 tokens)

Input parameters:

- `album_id` (string|number, required)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `range` (string)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_catalog_track` (~69 tokens)

Input parameters:

- `response_format` (string)
- `track_id` (string|number, required)

### `statsfm_catalog_artist` (~69 tokens)

Input parameters:

- `artist_id` (string|number, required)
- `response_format` (string)

### `statsfm_catalog_album` (~69 tokens)

Input parameters:

- `album_id` (string|number, required)
- `response_format` (string)

### `statsfm_genre_artists` (~137 tokens)

Input parameters:

- `genre` (string, required)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `statsfm_charts_tracks` (~137 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_charts_artists` (~138 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_charts_albums` (~138 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_charts_users` (~122 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_track_date_stats` (~134 tokens)

Input parameters:

- `after` (integer)
- `before` (integer)
- `limit` (integer)
- `response_format` (string)
- `track_id` (string|number, required)
- `user_id` (string, required)

### `statsfm_artist_date_stats` (~134 tokens)

Input parameters:

- `after` (integer)
- `artist_id` (string|number, required)
- `before` (integer)
- `limit` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_album_date_stats` (~134 tokens)

Input parameters:

- `after` (integer)
- `album_id` (string|number, required)
- `before` (integer)
- `limit` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_friends` (~131 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `statsfm_friend_count` (~74 tokens)

Input parameters:

- `response_format` (string)
- `user_id` (string, required)

### `statsfm_records_artists` (~143 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `get_followed_artists` (~113 tokens)

Input parameters:

- `after` (string)
- `limit` (integer)
- `max_results` (integer)
- `response_format` (string)

### `check_following_artists` (~127 tokens)

Input parameters:

- `ids` (array, required)
- `max_results` (integer)
- `response_format` (string)

### `follow_artists` (~71 tokens)

Input parameters:

- `ids` (array, required)
- `response_format` (string)

### `unfollow_artists` (~105 tokens)

Input parameters:

- `dry_run` (boolean)
- `ids` (array, required)
- `response_format` (string)

### `following_analytics` (~126 tokens)

Input parameters:

- `group_by` (string)
- `max_results` (integer)
- `response_format` (string)
- `top_n` (integer)

### `get_audiobook` (~134 tokens)

Input parameters:

- `id` (string, required)
- `market` (string)
- `response_format` (string)

### `get_audiobook_chapters` (~201 tokens)

Input parameters:

- `id` (string, required)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_chapter` (~146 tokens)

Input parameters:

- `id` (string, required)
- `market` (string)
- `response_format` (string)

### `get_saved_audiobooks` (~128 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_user_playlists` (~155 tokens)

Input parameters:

- `fetch_all` (boolean)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_playlist` (~182 tokens)

Input parameters:

- `fetch_all` (boolean)
- `id` (string)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `playlist_id` (string)
- `response_format` (string)

### `get_playlist_items` (~307 tokens)

Input parameters:

- `additional_types` (array)
- `fetch_all` (boolean)
- `fields` (string)
- `id` (string)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `playlist_id` (string)
- `response_format` (string)

### `get_playlist_cover` (~108 tokens)

Input parameters:

- `id` (string)
- `max_results` (integer)
- `playlist_id` (string)
- `response_format` (string)

### `upload_playlist_cover` (~108 tokens)

Input parameters:

- `dry_run` (boolean)
- `jpeg_base64` (string, required)
- `playlist_id` (string, required)

### `create_playlist` (~98 tokens)

Input parameters:

- `collaborative` (boolean)
- `description` (string)
- `dry_run` (boolean)
- `name` (string, required)
- `public` (boolean)

### `add_to_playlist` (~113 tokens)

Input parameters:

- `check_duplicates` (boolean)
- `dry_run` (boolean)
- `playlist_id` (string, required)
- `position` (integer)
- `uris` (array, required)

### `remove_from_playlist` (~102 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `snapshot_id` (string)
- `uris` (array, required)

### `update_playlist` (~100 tokens)

Input parameters:

- `collaborative` (boolean)
- `description` (string)
- `dry_run` (boolean)
- `id` (string)
- `name` (string)
- `playlist_id` (string)
- `public` (boolean)

### `reorder_playlist_items` (~169 tokens)

Input parameters:

- `dry_run` (boolean)
- `insert_before` (integer, required)
- `playlist_id` (string, required)
- `range_length` (integer)
- `range_start` (integer, required)

### `replace_playlist_items` (~98 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `uris` (array, required)

### `find_duplicates_in_playlist` (~153 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `remove_duplicate_playlist_items` (~172 tokens)

Input parameters:

- `dry_run` (boolean)
- `include_relinked` (boolean)
- `playlist_id` (string, required)

### `clean_all_playlists` (~231 tokens)

Input parameters:

- `apply` (boolean)
- `dry_run` (boolean)
- `include_relinked` (boolean)
- `max_results` (integer)
- `response_format` (string)

### `check_playlist_following` (~111 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_ids` (array, required)
- `response_format` (string)

### `clone_playlist_cover` (~82 tokens)

Input parameters:

- `dry_run` (boolean)
- `image_index` (integer)
- `source_playlist_id` (string, required)
- `target_playlist_id` (string, required)

### `compare_playlist_covers` (~108 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id_a` (string, required)
- `playlist_id_b` (string, required)
- `response_format` (string)

### `get_playlist_snapshot` (~98 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)

### `playlist_collab_toggle` (~78 tokens)

Input parameters:

- `collaborative` (boolean)
- `dry_run` (boolean)
- `playlist_id` (string, required)
- `public` (boolean)

### `playlist_sort` (~162 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `sort_by` (string)

### `playlist_shuffle` (~69 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)
- `seed` (string)

### `playlist_reverse` (~73 tokens)

Input parameters:

- `dry_run` (boolean)
- `playlist_id` (string, required)

### `playlist_union` (~97 tokens)

Input parameters:

- `dedupe` (boolean)
- `dry_run` (boolean)
- `source_playlist_ids` (array, required)
- `target_name` (string)
- `target_playlist_id` (string)

### `playlist_subtract` (~72 tokens)

Input parameters:

- `base_playlist_id` (string, required)
- `dry_run` (boolean)
- `subtract_playlist_ids` (array, required)

### `playlist_symmetric_difference` (~109 tokens)

Input parameters:

- `max_results` (integer)
- `playlist_id_a` (string, required)
- `playlist_id_b` (string, required)
- `response_format` (string)

### `playlist_trim` (~79 tokens)

Input parameters:

- `dry_run` (boolean)
- `keep` (integer, required)
- `keep_which` (string)
- `playlist_id` (string, required)

### `get_user_profile` (~87 tokens)

Input parameters:

- `response_format` (string)
- `user_id` (string, required)

### `get_user_playlists_by_id` (~157 tokens)

Input parameters:

- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)
- `user_id` (string, required)

### `get_saved_tracks` (~180 tokens)

Input parameters:

- `fetch_all` (boolean)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_saved_albums` (~179 tokens)

Input parameters:

- `fetch_all` (boolean)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_saved_shows` (~156 tokens)

Input parameters:

- `fetch_all` (boolean)
- `limit` (integer)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `get_saved_episodes` (~180 tokens)

Input parameters:

- `fetch_all` (boolean)
- `limit` (integer)
- `market` (string)
- `max_results` (integer)
- `offset` (integer)
- `response_format` (string)

### `save_items` (~163 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `uris` (array, required)

### `remove_saved_items` (~148 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `uris` (array, required)

### `check_saved_items` (~154 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `uris` (array, required)

### `save_to_library` (~147 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `uris` (array, required)

### `remove_from_library` (~132 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)
- `uris` (array, required)

### `get_saved_counts` (~82 tokens)

Input parameters:

- `response_format` (string)

### `search_saved_albums` (~155 tokens)

Input parameters:

- `added_after` (string)
- `artist` (string)
- `max_results` (integer)
- `query` (string)
- `response_format` (string)
- `scan_cap` (integer)

### `search_saved_shows` (~118 tokens)

Input parameters:

- `max_results` (integer)
- `query` (string)
- `response_format` (string)
- `scan_cap` (integer)

### `search_saved_episodes` (~127 tokens)

Input parameters:

- `max_results` (integer)
- `query` (string)
- `response_format` (string)
- `scan_cap` (integer)
- `show` (string)

### `search_saved_audiobooks` (~119 tokens)

Input parameters:

- `max_results` (integer)
- `query` (string)
- `response_format` (string)
- `scan_cap` (integer)

### `check_in_library` (~195 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)
- `uris` (array, required)

### `search_saved_tracks` (~256 tokens)

Input parameters:

- `added_after` (string)
- `added_before` (string)
- `album` (string)
- `artist` (string)
- `limit` (integer)
- `max_items` (integer)
- `max_results` (integer)
- `query` (string)
- `response_format` (string)
- `sort_by` (string)

### `merge_playlists` (~219 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `new_name` (string)
- `public` (boolean)
- `response_format` (string)
- `sources` (array, required)
- `target_playlist_id` (string)

### `diff_playlists` (~199 tokens)

Input parameters:

- `a` (string, required)
- `b` (string, required)
- `dry_run` (boolean)
- `max_results` (integer)
- `response_format` (string)

### `overlap_playlists` (~169 tokens)

Input parameters:

- `dry_run` (boolean)
- `max_results` (integer)
- `min_overlap` (integer)
- `playlists` (array, required)
- `response_format` (string)

### `grow_playlist` (~214 tokens)

Input parameters:

- `dry_run` (boolean)
- `exclude_saved` (boolean)
- `max_results` (integer)
- `playlist_id` (string, required)
- `response_format` (string)
- `size` (integer)

### `export_playlist` (~188 tokens)

Input parameters:

- `format` (string)
- `include_headers` (boolean)
- `max_results` (integer)
- `output_path` (string)
- `playlist_id` (string, required)
- `response_format` (string)

### `import_playlist` (~198 tokens)

Input parameters:

- `content` (string)
- `dry_run` (boolean)
- `format` (string)
- `input_path` (string)
- `playlist_id` (string, required)
- `response_format` (string)

### `create_smart_playlist` (~351 tokens)

Input parameters:

- `artist_filter` (array)
- `description` (string)
- `dry_run` (boolean)
- `limit` (integer)
- `name` (string, required)
- `public` (boolean)
- `response_format` (string)
- `scan_cap` (integer)
- `source` (string)
- `time_range` (string)
- `unique_artists` (boolean)

### `show_new_episodes` (~289 tokens)

Input parameters:

- `days` (integer)
- `dry_run` (boolean)
- `max_results` (integer)
- `max_shows` (integer)
- `per_show_limit` (integer)
- `response_format` (string)

### `find_duplicate_saved_tracks` (~258 tokens)

Input parameters:

- `include_near_duplicates` (boolean)
- `max_results` (integer)
- `playlist_id` (string)
- `response_format` (string)

### `library_genre_report` (~132 tokens)

Input parameters:

- `max_results` (integer)
- `response_format` (string)

### `filter_by_genre` (~146 tokens)

Input parameters:

- `genre` (string, required)
- `kind` (string, required)
- `max_results` (integer)
- `response_format` (string)

### `tag_management` (~179 tokens)

Input parameters:

- `action` (string, required)
- `artist` (string, required)
- `dry_run` (boolean)
- `response_format` (string)
- `tags` (array)

### `whats_new` (~367 tokens)

Input parameters:

- `days_back` (integer)
- `dry_run` (boolean)
- `kinds` (array)
- `max_artists` (integer)
- `max_results` (integer)
- `response_format` (string)
- `since`

### `search_deep` (~238 tokens)

Input parameters:

- `market` (string)
- `max_results` (integer)
- `pages` (integer)
- `query` (string, required)
- `response_format` (string)
- `types` (array)

### `plan_podcast_session` (~207 tokens)

Input parameters:

- `kind` (string)
- `max_results` (integer)
- `minutes` (integer, required)
- `response_format` (string)
- `saved_only` (boolean)

### `start_podcast_session` (~275 tokens)

Input parameters:

- `device_id` (string)
- `dry_run` (boolean)
- `kind` (string)
- `max_results` (integer)
- `minutes` (integer, required)
- `response_format` (string)
- `saved_only` (boolean)

### `list_all_chapters` (~98 tokens)

Input parameters:

- `audiobook_id` (string, required)
- `response_format` (string)

### `jump_to_chapter` (~110 tokens)

Input parameters:

- `audiobook_id` (string, required)
- `chapter` (integer, required)
- `device_id` (string)
- `dry_run` (boolean)

### `where_was_i` (~88 tokens)

Input parameters:

- `audiobook_id` (string, required)
- `response_format` (string)

### `save_scene` (~173 tokens)

Input parameters:

- `context_uri` (string)
- `device_hint` (string)
- `name` (string, required)
- `repeat` (string)
- `response_format` (string)
- `shuffle` (boolean)
- `volume` (integer)

### `list_scenes` (~52 tokens)

Input parameters:

- `response_format` (string)

### `delete_scene` (~63 tokens)

Input parameters:

- `name` (string, required)
- `response_format` (string)

### `apply_scene` (~109 tokens)

Input parameters:

- `dry_run` (boolean)
- `name` (string, required)
- `response_format` (string)

### `schedule_wind_down` (~144 tokens)

Input parameters:

- `device_id` (string)
- `floor_volume` (integer)
- `minutes` (integer, required)
- `response_format` (string)
- `step_minutes` (integer)

### `cancel_wind_down` (~75 tokens)

Input parameters:

- `device_id` (string)
- `response_format` (string)

### `backup_first` (~80 tokens)

Input parameters:

- `notes` (string)
- `response_format` (string)

### `undo_mutation` (~110 tokens)

Input parameters:

- `dry_run` (boolean)
- `receipt_id` (string, required)
- `response_format` (string)

### `undo_last_mutation` (~87 tokens)

Input parameters:

- `dry_run` (boolean)
- `response_format` (string)

### `verify_receipt` (~40 tokens)

Input parameters:

- `receipt_id` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/novalux12-spotify-mcp-server/novalux12-spotify-mcp#diagnostics

## Score history

- 2026-09-20: 53
- 2026-09-19: 53
- 2026-09-18: 53
- 2026-09-17: 53
- 2026-09-16: 53
- 2026-09-15: 53
- 2026-09-14: 53
- 2026-09-13: 53
- 2026-09-12: 53
- 2026-09-11: 53
- 2026-09-10: 53
- 2026-09-09: 53
- 2026-09-08: 53
- 2026-09-07: 53
- 2026-09-06: 53
- 2026-09-05: 38
- 2026-09-04: 53
- 2026-09-03: 53
- 2026-09-02: 53
- 2026-09-01: 53
- 2026-08-31: 53
- 2026-08-30: 83
- 2026-08-29: 83
- 2026-08-28: 82
- 2026-08-27: 82
- 2026-08-26: 66
- 2026-08-25: 45

## Common questions

### What is the Spotify MCP server?

Spotify MCP is listed in the public MCP registry as io.github.NovaLux12/spotify-mcp-server. The most complete Spotify MCP: playback, library, playlists, search, podcasts and audiobooks. This page covers its npm package (@novalux12/spotify-mcp).

### Is the Spotify MCP server safe to use?

Spotify MCP scores 53 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### Is the Spotify MCP server still maintained?

Spotify MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Spotify MCP server under?

Spotify MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@novalux12/spotify-mcp
- Socket report: https://socket.dev/npm/package/@novalux12/spotify-mcp
- Repository: https://github.com/NovaLux12/spotify-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/novalux12-spotify-mcp-server/novalux12-spotify-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/novalux12-spotify-mcp-server/novalux12-spotify-mcp.json
- HTML version of this page: https://verifymcp.io/servers/novalux12-spotify-mcp-server/novalux12-spotify-mcp
