# migrate_playback_positions

One-time, idempotent import of every legacy playback position (exhaust2 checkpoints, playback-ext states, backup-dir bookmarks) into the single canonical record. Running it twice changes no record and imports zero. A legacy store that exists but cannot be parsed is refused with nothing written, and its bytes are preserved. Legacy bookmark files are renamed to .migrated, never deleted.

Agent View of the PolicyLayer registry record for `migrate_playback_positions`. HTML page: https://policylayer.com/tools/novalux12-spotify-mcp/migrate-playback-positions

## Facts

- Tool: `migrate_playback_positions`
- Server: Spotify (`@novalux12/spotify-mcp`) — https://policylayer.com/tools/novalux12-spotify-mcp.md
- Install: `npx -y @novalux12/spotify-mcp`
- Homepage: https://github.com/NovaLux12/spotify-mcp-server
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "migrate_playback_positions",
    "arguments": {}
  }
}
```

## Why migrate_playback_positions is rated Medium

Modifies playback position data reversibly; idempotent design and preservation safeguards reduce severity below destructive.

From the tool's own definition: "import of legacy playback position, idempotent, writes to canonical record"

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents use migrate_playback_positions to create or update resources in Spotify, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Spotify environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Spotify:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "migrate_playback_positions": {
      "limits": [
        {
          "counter": "migrate_playback_positions_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Spotify (537)

- `archive_played_episodes` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/archive-played-episodes.md
- `cancel_wind_down` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/cancel-wind-down.md
- `clean_backup_artifacts` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/clean-backup-artifacts.md
- `delete_backup` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/delete-backup.md
- `delete_playback_bookmark` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/delete-playback-bookmark.md
- `delete_playlist_snapshot` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/delete-playlist-snapshot.md
- `delete_scene` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/delete-scene.md
- `playlist_dedupe_advanced` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-dedupe-advanced.md
- `playlist_exclude_artists` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-exclude-artists.md
- `playlist_keep_artist` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-keep-artist.md
- `playlist_keep_only` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-keep-only.md
- `playlist_remove_artist` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-remove-artist.md
- `playlist_strip_episodes` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-strip-episodes.md
- `playlist_subtract` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-subtract.md
- `playlist_trim` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/playlist-trim.md
- `prune_old_snapshots` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/prune-old-snapshots.md
- `remove_duplicate_playlist_items` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-duplicate-playlist-items.md
- `remove_from_library` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-from-library.md
- `remove_from_library_by_playlist` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-from-library-by-playlist.md
- `remove_from_playlist` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-from-playlist.md
- `remove_playlist_range` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-playlist-range.md
- `remove_saved_episode` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-saved-episode.md
- `remove_saved_shows` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-saved-shows.md
- `remove_unavailable_playlist_items` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/remove-unavailable-playlist-items.md
- `undo_last_mutation` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/undo-last-mutation.md
- `unfollow_playlist` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/unfollow-playlist.md
- `unpin_playlist` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/unpin-playlist.md
- `unsave_orphan_tracks` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/unsave-orphan-tracks.md
- `unsubscribe_from_show` — Destructive — https://policylayer.com/tools/novalux12-spotify-mcp/unsubscribe-from-show.md
- `apply_scene` — Execute — https://policylayer.com/tools/novalux12-spotify-mcp/apply-scene.md
- …and 507 more: https://policylayer.com/tools/novalux12-spotify-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=novalux12-spotify-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/novalux12-spotify-mcp
