Patchline MCP — instructions for AI agents
If you are an AI agent reading this page, this section is here for you. The visual UI above is the human install flow; this block is the machine-readable version.
Endpoint
https://www.patchline.ai/api/mcp/v1
Auth
OAuth 2.0 with PKCE. Discovery via /.well-known/oauth-protected-resource.
Install the Patchline MCP server
# Cursor / Claude Desktop
{ "mcpServers": { "aria": { "url": "https://www.patchline.ai/api/mcp/v1" } } }
# Codex
codex mcp add aria --url https://www.patchline.ai/api/mcp/v1
# VS Code
{ "mcpServers": { "aria": { "command": "npx", "args": ["-y", "mcp-remote", "https://www.patchline.ai/api/mcp/v1"] } } }ALWAYS DO
- Call analyze_url FIRST when the user pastes any streaming URL.
- Pass a platform URL to add_artist (Spotify, YouTube, TikTok, SoundCloud, Apple Music, Instagram).
- Use get_artist_intelligence for cached data; only enrich when stale.
- Reference tracks by ISRC or assetId, not free-text title.
NEVER DO
- Do not ask the user to sign in manually — OAuth handles it.
- Do not invent tool names. Authoritative list at https://www.patchline.ai/api/agents/discovery.
- Do not retry on 403 — point the user at /pricing.
- Do not scrape /dashboard. Use MCP tools.
Full rules
Your entire catalog,
routed directly into your AI.
Stop copy-pasting ISRC codes. Patchline connects your music infrastructure directly to Claude Desktop, Codex, and any MCP-compatible client. Your catalog, streaming data, audience intelligence, and smart links are available as tools your AI can actually use.
Install
Choose your AI client. One command or config snippet and you are connected.
{
"mcpServers": {
"aria": {
"url": "https://www.patchline.ai/api/mcp/v1",
"transport": "http"
}
}
}After installing, your AI client will open a browser window to sign in with your Patchline account.
OAuth 2.0 with PKCE — your credentials never touch the AI client.
Try asking your AI...
How It Works
Book setup
Map the roster workflow, then connect your music data to the AI tools your team already uses.
Install
Install the Aria plugin or add the MCP server, then authenticate once in your browser.
Talk to Your Data
Ask questions, get artist intelligence, generate pitches — all from your AI.
What does it look like in practice?
Real conversations. Real tools called.
Your AI client doesn't guess. It calls the right Patchline tool, reads the response, and answers with grounded data.
Available Tools
62 tools spanning your entire music business workflow.
get_startedOnboardingOrient a new or returning user: reports the workspace (artists, tracks, releases) and the single best next action — connect an artist, add music, get a release out, or grow the audience. Call this FIRST when unsure where to begin; works with no prior context.
set_onboarding_identityOnboardingSet whether the authenticated workspace is onboarding as an artist, label, or manager. Labels and managers must include labelName. Does NOT complete onboarding — next claim the public username with set_username, then connect an artist with add_artist using the returned rosterRelationshipIntent.
set_usernameOnboardingClaim or change the authenticated user's public Patchline username after choosing a role and before adding artist profiles. Uses the same validation, ShareLinks reservation, and rename/alias semantics as web onboarding and Settings; a role (artist/label/manager) must be set first.
analyze_urlDispatchUniversal dispatcher for Spotify URLs (track, artist, album, playlist) and YouTube URLs (video, channel). Paste a link and get the canonical identity plus a ranked list of next MCP tools to call with exact arguments. Call this FIRST whenever a user shares a Spotify or YouTube link; for artist profiles on other platforms, pass the profile URL straight to add_artist.
browse_catalogCatalogList tracks in the user catalog with pagination — title, ISRC, BPM, key, status. Optional artistId scopes to one roster artist (manager accounts).
import_track_from_urlCatalogImport a track's metadata into the catalog from a Spotify track URL — creates a catalog entry with title, artist, ISRC, and platform link (no audio; pair with get_asset_upload_link for audio). Resolve title/artist/ISRC via get_song_intelligence first. Dedup-safe on re-import. A provider-resolved artist that can't be independently corroborated is refused (fail-closed); pass allowLowConfidenceArtist:true only after confirming the artist with the user.
get_audience_overviewAudienceAggregate fan-graph overview: total fans, captures (7/30d), repeat and active fans, buyers, store revenue, capture rate, and identity stats. Aggregates only — no fan names or emails.
get_audience_geoAudienceCity-level fan geography: hubs with fan counts, total countries/cities, configurable lookback window. For tour routing and geo-targeted promotion. Aggregates only.
catalog_searchCatalogSearch across the user catalog by title, artist, ISRC, and metadata. Defaults to music/audio assets; set includeNonAudio only when the user asks for cover art, images, or documents.
get_assetCatalogFull metadata for a single track by asset ID — covers, audio features, version history, distribution status.
manage_catalog_assetCatalogOperator actions for owned catalog assets: duplicate candidate scan, reversible archive/restore, dry-run reattribution preview, confirmed canonical-recording repair, and set_cover_art (set a track cover from an owned image asset). No hard delete and no roster deletion.
get_artist_intelligenceArtistsCached roster intelligence for a single artist: streaming, social audience, genres, recent activity. Run add_artist first if the artist is missing.
search_artistsArtistsSearch artists by name within the user roster.
get_trending_artistsArtistsTop artists by streaming reach. Optional genre and ISO2 market filters return Aria artist ids that can be passed directly to add_artist.
refresh_artist_intelligenceArtistsQueue a refresh for one roster artist through Patchline's existing artist intelligence refresh pipeline. Stale-only by default; skips fresh or already pending rows.
refresh_roster_intelligenceArtistsQueue bounded stale-only intelligence refreshes for up to 10 roster artists through Patchline's existing artist intelligence refresh pipeline. Returns queued/skipped/failed counts.
add_artistRosterAdd an artist to the user roster from a platform URL or an ariaArtistId returned by search_artists/get_trending_artists. Name-only is rejected unless explicitly creating a manual profile. Triggers background audience enrichment when canonical identity is available.
remove_artistRosterRemove an artist from the user roster by patchlineArtistId.
browse_rosterRosterList or filter the authenticated user roster — artists with IDs, platform IDs, enrichment status, genres, and metrics. No query required.
get_roster_digestRosterRead-only Monday brief for a serious artist or label owner: roster health, missing identity fields, catalog counts, live surfaces, release/campaign summary, aggregate audience highlights, cleanup candidates, and next actions. No raw fan names, emails, or per-fan journeys.
get_releasesReleasesRelease plans, schedules, and campaign details for the authenticated user.
find_playlistsPlaylistsPlaylist match opportunities ranked by sonic fit and curator responsiveness for a given track.
inspect_playlistPlaylistsFull Spotify playlist intelligence: curator identity, genres, freshness, followers, track turnover, recent additions, submission status.
create_smart_linkSmart LinksSmart link landing page for an owned catalog track — server-side resolves ISRC, DSP URLs, and cover art. For pre-release campaigns use create_drop_link instead.
list_store_listingsStorefrontList authenticated-user store inventory and listing readiness. Read-only; reports seller agreement, payout, rights, AI-policy, audio, and marketplace blockers inherited from the store inventory service.
manage_store_listingStorefrontValidate, list, unlist, price, reorder, or update metadata for store inventory through the store inventory service. Mutations inherit all commerce safety checks.
create_store_linkStorefrontCreate or return the authenticated user’s public store surface through the store share service. Returns a store share URL and normalized section config.
get_store_analyticsStorefrontRead aggregate store analytics: views, revenue, orders, conversion, and recent sales with buyer emails redacted from MCP output.
get_fan_segmentsStorefrontRead aggregate store fan segments and engagement stats for the user-owned store surface. No raw fan emails, names, or per-fan journeys.
create_drop_linkSmart LinksCreate a public release/drop link for an owned release (link-only). For full launch kits with promo videos, captions, and calendar, prefer generate_release_kit.
create_asset_shareSmart LinksCreate a public asset share link for an owned catalog asset without changing the asset itself. Returns a share URL and normalized section config.
create_briefingSmart LinksCreate a public briefing/report microsite from markdown, validated structured modules, and optional Patchline source references. Template-driven only; does not create arbitrary HTML/CSS/JS.
list_share_surfacesSmart LinksList owner-safe focused link surfaces for the authenticated user: drops, smart links, asset shares, plus report/briefing microsites for MCP report sharing.
get_share_surfaceSmart LinksRead owner-safe metadata, normalized section config, source refs, and analytics for a public share surface by URL or shareId.
manage_share_surfaceSmart LinksUpdate briefing/report microsite metadata or revoke a public share surface. Revoke unpublishes the surface and is destructive.
get_surface_analyticsSmart LinksRead aggregate analytics for an owned public share surface: views, captures, downloads, plays, last viewed, and linked asset/project/campaign IDs.
read_public_surfaceSmart LinksRead owner-safe metadata and section config for a public surface by URL or shareId.
get_audio_featuresMusic DataBPM, key, mood, danceability, and genre tags for a track. Accepts assetId or ISRC.
get_song_intelligenceMusic DataFull track intelligence: ISRC, audio analysis, playlist matches, streaming stats, collaborators. Accepts a Spotify track URL.
get_artist_chart_positionsMusic DataLive chart positions of an artist's tracks on a supported platform (default Spotify) with pagination. Requires an artistId from roster/intelligence tools; canary feature that may be disabled per deployment.
get_work_metadataMusic DataCoverage-limited/experimental musical-work lookup for writers, publishers, and ISWC. Requires Spotify track ID/URL or ISRC; unresolved works return WORK_NOT_RESOLVED with do-not-retry guidance.
find_similar_tracksMusic DataFind tracks with similar audio characteristics (vibe, instrumentation, production) to a given catalog asset, ranked by audio-embedding similarity. Restricted to the caller-owned catalog.
get_bioAI GenerationReturns the AI-generated bio for an artist from intelligence cache. Populated during enrichment — no live LLM call.
generate_pitchAI GenerationPlaylist curator pitch for a specific track. Standard mode is grounded in real track/audio/audience data; cold_start requires verified_context and returns INSUFFICIENT_DATA instead of ungrounded or template copy.
generate_imageAI GenerationStart release cover art or a promo flyer grounded in catalog intelligence. Pass assetId to derive title/artist/genre/description from the owned track row. Returns an accepted job; poll get_image_job for the coverAssetId before calling set_cover_art.
get_image_jobAI GenerationCheck an async cover/image generation job started by generate_image. Returns pending progress, a terminal failure, or the completed cover with coverAssetId ready for set_cover_art. Poll every ~15s while pending; never re-run generate_image on a live job.
generate_promo_videoAI GenerationRender a promotional disc video for a catalog track: its cover art on a rotating vinyl-style disc over a styled background, with a clipped snippet of the real audio. Outputs multiple aspect ratios (16:9 storefront hero/YouTube, 1:1 feed/drop disc, 9:16, silent 8s spotify-canvas). Rendering is async; read the track with get_asset for status and per-aspect downloads.
get_promo_videosAI GenerationReturn short-lived playable URLs for every owned promo-video export on a track, including generated 1:1, 16:9, 9:16, and Spotify Canvas variants when available. Raw S3 keys are never exposed.
generate_release_kitAI GenerationFull launch kit for drop-this-track intent: promo disc videos, platform captions, 7-day calendar, and drop URL. If no owned S3 cover exists, call generate_image with assetId then set_cover_art before retrying. Poll get_asset mode full for promoDiscVideo; promote with set_promo_video.
set_promo_videoAI GenerationSelect an uploaded promo-video version, or promote an already-rendered generated promo-disc output, as the public hero video for a caller-owned catalog track.
get_asset_upload_linkAsset UploadCreate a new Asset Hub record and return a short-lived signed upload URL so the client can PUT bytes directly to storage. Supports audio masters (→ track analysis) and image covers (→ visual library, usable as a track cover via manage_catalog_asset set_cover_art); kind inferred from the extension. Bytes do NOT pass through the MCP server. After the upload completes, call confirm_asset_upload.
create_upload_linkAsset UploadCreate a short-lived secure browser upload link for a human handoff when the MCP client cannot upload bytes directly. The user opens the link while signed in to Patchline; this does not upload bytes or bypass user auth.
confirm_asset_uploadAsset UploadConfirm an upload created by get_asset_upload_link. Marks the asset ready; for audio it also triggers Patchline track analysis (audio fingerprinting, aiMetadata extraction). Image covers finalize with no analysis.
open_release_planAsset UploadOpen the in-chat release-plan panel when the MCP client can render Apps UI. The panel lets the user drop a local audio file, uploads bytes directly from the browser, confirms the asset, calls create_project with trackAssetIds + releaseDate, auto-queues the release plan, and then shows the live track/release-plan/cover/share/storefront checklist.
resolve_release_plan_resumeAsset UploadResolve the most recent in-progress release-plan session for the signed-in user so remounted MCP Apps UI panels can rehydrate from server state.
get_release_readinessAsset UploadRead-only checklist status for a catalog track: track ready, release plan, cover art, share link, storefront, release date, and sonic-profiling state. Pass projectId when available so the plan step reflects campaign generation. Backs the release-plan panel and is safe to poll.
create_projectProjectsCreate a real Patchline project for the signed-in user. For a drop, pass trackAssetIds and releaseDate so the release is born with audio attached and its release plan is generated automatically. Use during Aria start after artist resolution so the local workspace is linked to the Patchline dashboard. Requires artistId from add_artist.
update_release_dateProjectsChange the canonical release date for a project/release. Writes through the project API so linked assets and release-backed drop links reflect the new date.
get_artist_contextProjectsBest-effort read of safe artist/account campaign context for Aria planning: connected platforms, distributor preference, email-list bucket, Telegram linkage, recent releases, defaults. Unknown fields return null instead of failing.
create_campaignProjectsStart async Aria campaign planning for a Patchline project. Requires projectId from create_project and returns polling guidance; use get_campaign to read generated tasks.
get_campaignProjectsRead campaign generation progress for a Patchline project. Defaults to a compact summary; page bounded task or report views explicitly.
update_campaign_taskProjectsMark an existing campaign task complete or pending through the concurrency-safe campaign task path. Never creates a task.
Ready to connect your roster data to AI?
Give your label or management team one music business layer for web, Slack, and MCP-compatible AI workflows.