# lineupify [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/shreeshman/lineupify  
**GitHub Stars:** 1  
**npm Downloads (last month):** 253  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/lineupify

## Description
Spotify playlists from a festival lineup, a genre, a song, a playlist or a blend. Own client ID.

## Tools
Capabilities this server exposes over MCP:

- **status** — Call first. Shows connection state (and as whom), setup steps if needed, token expiry, defaults, drafts in progress, cache size, data directory and any read-only mode.
- **setup** — Saves the Spotify Client ID (and optionally a Last.fm key or a fixed redirect port) to `config.json`.
- **connect** — Starts the Spotify login: opens the browser and returns the URL immediately. Pass `clientId` to save the app's Client ID in the same call. Refused while a draft is building.
- **disconnect** — Forgets the Spotify login; with `purge: true` (plus `confirm: true`, after you agreed in the conversation) deletes the whole `~/.lineupify` folder. Refuses if that folder holds files Lineupify did not create. Tells you where to remove the app's access on Spotify's side.
- **parse_lineup** — Turns raw poster text into a clean artist list with tiers, days and stages; drops dates, stage names and "tickets" lines.
- **create_draft** — Builds a draft from artists and/or seeds (genre, similar artist, chart, country, playlist, your taste, a blend). Returns within ~15 s; larger builds continue in the background.
- **get_draft** — Shows a draft: `summary` (default), `tracks` (paged, with stable ids, year and tempo), `artists`, or `unresolved`. Waits for progress while building. Also resumes an interrupted build.
- **edit_draft** — Applies one or more edits atomically. Ops: `remove_tracks`, `add_track`, `exclude_artist`, `set_artist_track_count`, `set_artist_source`, `move`, `shuffle`, `reorder`, `set_meta`, `filter`, `undo`.
- **search_tracks** — Searches Spotify, or Deezer for a Deezer draft, for a track to add manually; supports `track:` / `artist:` filters.
- **create_playlist** — Publishes a ready draft as a new playlist and returns its URL. Requires the draft to have been shown to the user or `confirm: true`.
- **update_playlist** — Replaces the tracks and details of the playlist a draft was published to. Refuses if the playlist changed inside Spotify unless `force: true`.
- **compare_taste** — Marks each artist in a draft as known (in your top or followed artists) or new to you.
- **read_playlist** — Reads any playlist into a list: a Spotify or Deezer link, a playlist name from your library, a draft id, or `library` (liked songs). Views: `summary`, `tracks`, `artists`. Cached 12 h.
- **analyze_playlist** — Numbers about a playlist: length, artist concentration, decades, explicit share, coarse genres (Deezer) and Last.fm tags, sampled tempo.
- **compare_playlists** — Compares 2-4 playlists, drafts, `library` or `me` (your top and followed artists): shared artists and tracks, pairwise overlap, what is distinct to each.
- **merge_playlists** — One deduplicated draft from 1-6 Spotify playlists, drafts or `library`, keeping the actual tracks.
- **expand_playlist** — More songs by the artists of a playlist, minus what it already has.
- **refresh_taste** — New songs from your own top and followed artists, minus your liked songs.
- **export_draft** — Returns the draft as Markdown, CSV (with ISRC, year, tempo, provider, URLs), M3U, `links` (one track URL per line) or `text` ("Artist - Title" per line); the last two are what transfer tools accept. With `save: true` writes a file under `~/.lineupify/exports/`.
- **list_drafts** — Lists saved drafts, newest first, with status and whether they were published.
- **delete_draft** — Deletes a draft from disk. The Spotify playlist is not touched.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "lineupify": {
    "command": "npx",
    "args": ["-y","lineupify-mcp"]
  }
}
```

## Documentation

## What lineupify MCP server does

The lineupify MCP server helps an MCP host turn music requests into drafts that can be inspected and changed before publication. Inputs can include raw festival poster text, a genre, a song, an artist, a chart, a country, a playlist, personal taste, or a blend of these sources. Lineup text can be normalized into artists with festival tiers, days, and stages while removing dates, stage labels, and ticket-related lines.

The result is a saved draft with track metadata, stable track identifiers, artist information, years, tempos, and unresolved items. An agent can review the draft, adjust it, and then publish it to Spotify or export it in a format suitable for another service.

## How it works

Spotify mode uses the user’s own Spotify account and requires a Spotify Premium account plus a free developer app and Client ID. The server matches tracks by ISRC where available and selects popular songs for artists discovered from the request. Deezer mode does not require an account or key; it produces drafts with Deezer links rather than writing playlists.

Drafts may continue building in the background when a request is large. `get_draft` waits for progress and can resume an interrupted build. Saved drafts can be listed, deleted, exported, or published later. Published Spotify playlists can also be updated, subject to checks for changes made directly in Spotify.

## Setup and configuration

The lineupify MCP server requires Node.js 20 or newer and is distributed as the `lineupify-mcp` npm package. A guided setup is available with `npx -y lineupify-mcp init`. The documented manual flow uses `setup --client-id <id>`, followed by `auth`, and then registers the server for a supported host.

The `setup` tool stores the Spotify Client ID in `config.json`. It can also store a Last.fm key or a fixed redirect port. The `connect` tool starts browser authentication and can save a Client ID during the same call. Use `status` first to inspect authentication, token expiry, defaults, draft activity, cache size, data location, and read-only state.

## Tools and capabilities

The lineupify MCP server provides tools for:

- Parsing lineup text and creating drafts from artists or multiple seed types.
- Viewing, editing, searching, filtering, reordering, shuffling, and undoing draft changes.
- Creating and updating Spotify playlists after review or explicit confirmation.
- Reading, analyzing, comparing, merging, and expanding Spotify or Deezer playlists.
- Comparing a draft with personal taste and refreshing recommendations from followed or top artists.
- Exporting drafts as Markdown, CSV, M3U, links, or plain text, with optional local file saving.
- Managing authentication, configuration, saved drafts, and Spotify disconnect or purge operations.

## Limitations and notes

Deezer mode cannot create playlists because Deezer no longer issues write credentials; its exported links can be imported into other music services. Spotify access is limited to the account associated with the developer app and requires Premium. Spotify refresh tokens may require reconnection when they expire.

All processing runs on the local machine, with no Lineupify server or telemetry. Playlist reads are cached for 12 hours. Large drafts can take longer than the roughly 15-second response target and continue asynchronously. Deleting the local data directory requires an explicit confirmation and is refused if it contains files the application did not create.

_Full upstream README: https://allmcps.com/mcp/lineupify/readme_

