# Tag-per-Track [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Lory97/tag-per-track-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 2104  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/tag-per-track

## Description
Audio analysis and A&R scoring for music tracks: tags, lyrics, artist stats, demo triage.

## Tools
Capabilities this server exposes over MCP:

- **analyze_audio** — Analyzes a music track or audio file to extract musical metadata (BPM, genre, mood, key, instruments), AI music detection verdict (HUMAN vs AI_GENERATED Suno/Udio neural vocoder risk with confidence index in 'ai_detection'), explainable A&R scoring v2 in 'arEvaluation' (discovery / signing / beatmaker profiles, AI gate, vocal vs instrumental), and optionally vocal lyrics. Supports local audio files via 'filePath' (read in binary and uploaded) or remote URLs via 'fileUrl'. Cost: 1 studio credit per track, 2 studio credits with lyrics, debited from the prepaid Studio balance. Always state costs in studio credits.
- **analyze_audio_with_lyrics** — Analyzes an audio track to extract complete musical metadata, AI-generated music detection verdict (HUMAN vs AI_GENERATED Suno/Udio), AND transcribe full vocal lyrics using AI. Supports local audio files via 'filePath' (read in binary and uploaded) or remote URLs via 'fileUrl'. Costs 2 studio credits per track. (Alias for analyze_audio with extractLyrics: true).
- **triage_demo_folder** — A&R demo inbox triage in ONE call: scans a local folder of demo submissions (.mp3, .wav, .flac, .m4a, .aiff...), analyzes every track, reads the artist/title from audio tags or 'Artist - Title' file names, fetches Spotify traction per artist, applies A&R scoring v2 and returns a COMPACT ranked report (score, priority, bucket, BPM/key/genre, AI-origin flag, monthly listeners, key reason codes, guarded lyrics excerpt). Buckets: 'priority' (listen first), 'listen', 'pass', 'ai_flagged' (confirmed or suspected AI-generated), 'error' (unreadable or rejected file), 'not_analyzed' (the triage stopped early because studio credits ran out or the API key was rejected: see 'halted'). Prefer this tool over analyze_audio_batch whenever the user wants to sort, rank or screen a folder of demos. Cost: 1 studio credit per track, 2 studio credits with lyrics, debited from the prepaid Studio balance. Always state costs in studio credits. Use dryRun to list files and the estimated cost (estimatedCost.label) without charging.
- **analyze_audio_batch** — Analyzes multiple music tracks or audio files in parallel (batch processing). Vastly reduces total execution time compared to sequential processing. Accepts a list of local file paths ('filePaths') or remote URLs ('fileUrls'), or a structured array of 'tracks'. Cost: 1 studio credit per track, 2 studio credits with lyrics, debited from the prepaid Studio balance. Always state costs in studio credits.
- **lookup_artist_stats** — Retrieves streaming traction and commercial metrics for an artist (Spotify monthly listeners, followers, popularity score) for A&R qualification.

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

```json
"mcpServers": {
  "tag-per-track": {
    "command": "npx",
    "args": ["-y","tag-per-track-mcp@latest"],
    "env": {
      "TAG_PER_TRACK_API_KEY": "",
      "WALLET_PRIVATE_KEY": "",
      "MAX_SPENDING_USDC": "",
      "PLATFORM_WALLET": "",
      "TAG_PER_TRACK_NO_PERSIST": "",
      "API_URL": "",
      "API_BASE_URL": ""
    }
  }
}
```

**Requires environment variables:** `TAG_PER_TRACK_API_KEY`, `WALLET_PRIVATE_KEY`, `MAX_SPENDING_USDC`, `PLATFORM_WALLET`, `TAG_PER_TRACK_NO_PERSIST`, `API_URL`, `API_BASE_URL` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What Tag-per-Track does

The Tag-per-Track MCP server connects an MCP client to the Tag-per-Track audio-analysis API. It accepts supported local audio files or direct audio URLs and returns musical metadata such as BPM, key, scale, genres, moods, instruments, duration, and production measurements. Results can also include danceability, engagement, approachability, voice ratio, lyrics, and an AI-origin verdict.

A server-side A&R evaluation adds tiers, audio types, suggested profiles, marketplace tags, an AI gate, sub-scores, and profile-specific recommendations. The available profiles are discovery, signing, and beatmaker. The separate artist-statistics function retrieves public Spotify traction, including monthly listeners, followers, popularity, and genres.

The Tag-per-Track MCP server is suited to agents that need to qualify individual demos, screen several tracks, or organize a local demo inbox.

## How it works

The canonical `analyze_audio` tool takes either `filePath` or `fileUrl`; at least one is required. Lyrics extraction is optional and increases the stated charge. `analyze_audio_with_lyrics` provides a dedicated lyrics-focused alias, while `analyze_audio_batch` processes multiple tracks concurrently and runs AI-origin detection on each one.

`triage_demo_folder` analyzes a local folder, identifies artist and title information from `Artist - Title` filenames or audio tags, retrieves Spotify traction, recomputes A&R scoring with that traction, and returns ranked buckets such as `priority`, `listen`, `pass`, `ai_flagged`, and `error`. The related prompts support demo triage, single-demo A&R qualification, and multi-track screening. Unreliable lyrics can be flagged rather than quoted.

Authentication prioritizes `TAG_PER_TRACK_API_KEY`, which uses prepaid Studio credits. Without that key, the server can use a Base wallet for x402 USDC payments, signing EIP-3009 authorizations through `viem`. Wallet requests use `x-no-persist`; API-key requests are saved to dashboard history unless persistence is disabled.

## Setup and configuration

Run the package with `npx -y tag-per-track-mcp@latest` and add it to an MCP client configuration. Provide either a Studio API key or a Base burner-wallet private key. Web3 mode has a default per-request spending cap of 0.50 USDC, and the expected payment recipient is checked client-side. `API_URL` and `API_BASE_URL` can override the analysis and auxiliary API endpoints.

The server is documented for Claude Desktop, Cursor, and Windsurf. Smithery CLI commands are provided for adding it to Claude Desktop or Cursor.

## Tools and capabilities

- Analyze one local file or remote audio URL.
- Extract optional lyrics and full musical metadata.
- Detect likely AI-generated audio and report confidence and verdict.
- Process multiple tracks concurrently.
- Rank a local demo folder using audio analysis and Spotify traction.
- Look up public Spotify artist statistics.
- Compress WAV, AIFF, and files over 15 MB to 128 kbps AAC before upload when native `afconvert` or `ffmpeg` is available.

## Limitations and notes

Accepted local formats include MP3, WAV, OGG, FLAC, M4A, AAC, and AIFF. Non-audio files are rejected. Large or uncompressed files may be converted before upload, while MP3 and M4A files at or below 15 MB are left untouched.

The server uses 15-second handshake and 120-second processing timeouts, streams binary data, and removes temporary files automatically. AI detection is based on a 12-second core sample and can return `HUMAN`, `AI_GENERATED`, or `UNCERTAIN`, with availability and confidence fields. Analysis is paid: the exact credit or USDC amount depends on the selected authentication mode and whether lyrics are requested.

_Full upstream README: https://allmcps.com/mcp/tag-per-track/readme_

