Skip to main content
Glama

Tag-per-Track MCP Server

npm version License: MIT

This project is a local Model Context Protocol (MCP) server that allows AI agents (like Claude) to analyze audio files via the Tag-per-Track API. The server automatically handles the micro-USDC payment process using the x402 protocol on the Base network.

🎯 Vision

Enable an AI to "pay to listen" autonomously. When an AI agent wants to analyze a track, it uses this MCP server, which signs an EIP-3009 (USDC) payment authorization and instantly retrieves the enriched track metadata.

Related MCP server: studiosphere-pulse-mcp

πŸš€ Features

  • analyze_audio Tool (Canonical): Extracts BPM, Genre, Mood, Key, Instruments, optional Lyrics (0.15 USDC standard / 0.25 USDC with lyrics), AND AI-Generated Music Detection (ai_detection: Suno, Udio, neural vocoders with HUMAN, AI_GENERATED, or UNCERTAIN verdicts).

  • analyze_audio_with_lyrics Tool (Alias): Extracts complete musical metadata, transcribes full vocal lyrics, and returns AI origin integrity metrics (0.25 USDC).

  • analyze_audio_batch Tool (Parallel Processing): Analyzes multiple music tracks concurrently with AI origin detection on every track, dramatically reducing turnaround time for albums and playlists.

  • lookup_artist_stats Tool (A&R Traction): Fetches public Spotify streaming traction (monthly listeners, followers, popularity score, genres) for hybrid A&R qualification.

  • Selective Audio Compression: Automatically compresses heavy uncompressed files (.wav, .aiff, .aif) or audio files larger than 15 MB to 128 kbps AAC (.m4a) before upload (using native macOS afconvert or ffmpeg), reducing upload bandwidth and latency by up to 90% while leaving lightweight files (.mp3, .m4a $\le 15$ MB) untouched.

  • Automated x402 Payment: Manages the x402 challenge-response cycle (HTTP 402).

  • Integrated Web3: On-chain signing via viem (EIP-3009 TransferWithAuthorization on Base).

  • Client-Side Financial Guard (Spending Cap): Built-in spending limit (default 0.50 USDC max per call) protecting your wallet against abnormal requests.

  • Strict File Format Validation: Rejects non-audio files to protect local privacy and prevent arbitrary file exfiltration.

  • Deferred Binary Loading & Timeouts: 15s handshake / 120s processing timeouts with memory-efficient streaming and automatic temp file cleanup.

  • Compatibility: Designed for use with Claude Desktop, Cursor, Windsurf, or any MCP client.

βš™οΈ Configuration & Environment Variables

Variable

Description

Default

PRIVATE_KEY

Recommended: Private key of your Base burner wallet (66 hex characters starting with 0x).

None (Required)

MAX_SPENDING_USDC

Client-side spending cap per request in USDC.

0.50

API_URL

Endpoint of the Tag-per-Track analysis API.

https://api.tag-per-track.cloud/api/analyze

API_BASE_URL

Base endpoint of the Tag-per-Track API for auxiliary routes (e.g. artist stats).

https://api.tag-per-track.cloud/api

IMPORTANT

Ensure your wallet has sufficientUSDC on the Base network.
⚠️ SECURITY ADVICE: Never use your main vault wallet. Always use a dedicated "burner" or developer wallet funded with a few USDC. The private key remains strictly local to your machine and is never transmitted to our servers.

πŸ“¦ Installation & Setup

You can easily install Tag-per-Track MCP into your client using the Smithery CLI:

# For Claude Desktop
npx -y @smithery/cli install @Lory97/tag-per-track-mcp --client claude

# For Cursor
npx -y @smithery/cli install @Lory97/tag-per-track-mcp --client cursor

πŸ€– Option 2: Manual Setup with Claude Desktop

Add the following configuration to your claude_desktop_config.json file (typically in ~/Library/Application Support/Claude/ on macOS or %APPDATA%\Claude\ on Windows):

{
  "mcpServers": {
    "tag-per-track": {
      "command": "npx",
      "args": [
        "-y",
        "tag-per-track-mcp@latest"
      ],
      "env": {
        "PRIVATE_KEY": "0xYOUR_BURNER_WALLET_PRIVATE_KEY_HERE",
        "MAX_SPENDING_USDC": "0.50"
      }
    }
  }
}

πŸ”§ MCP Tools

1. analyze_audio

Analyzes an audio file to extract musical metadata tags (BPM, key, scale, moods, genres, instruments), optional lyrics, and AI Origin Integrity (ai_detection). Supports both local binary files and remote URLs.

  • Arguments:

    • filePath (string, optional): Path to a local audio file on disk (.mp3, .wav, .ogg, .flac, .m4a, .aac, .aiff). The server validates the format, reads the file and streams it securely.

    • fileUrl (string, optional): Direct URL of the audio file. (Note: At least one of filePath or fileUrl must be provided).

    • extractLyrics (boolean, optional): Set to true to also extract vocal lyrics (costs 0.25 USDC instead of 0.15 USDC).

  • Output Structure: Returns comprehensive metadata including:

    • bpm, key, scale, genres, moods, instruments, duration

    • ai_detection / aiDetection:

      • checked: boolean (true when analyzed)

      • isAi: boolean (true if detected as synthetic/AI)

      • confidence: confidence percentage (0-100)

      • verdict: 'HUMAN' | 'AI_GENERATED' | 'UNCERTAIN'

      • status: 'ANALYZED' | 'UNAVAILABLE'

      • sampleDurationSec: 12 (strict core sample)

2. analyze_audio_with_lyrics

Analyzes an audio file to extract musical metadata, transcribe full vocal lyrics using AI, and evaluate AI Origin Integrity. Supports local audio files and remote URLs.

  • Arguments:

    • filePath (string, optional): Path to a local audio file on disk (.mp3, .wav, .ogg, .flac, .m4a, .aac, .aiff).

    • fileUrl (string, optional): Direct URL of the audio file. (Note: At least one of filePath or fileUrl must be provided).

3. analyze_audio_batch

Analyzes multiple audio tracks in parallel (batch processing). Vastly reduces total execution time compared to sequential calls, with resilient partial reporting and AI origin detection on every track.

  • Arguments:

    • filePaths (string[], optional): Convenience array of local file paths to analyze in parallel.

    • fileUrls (string[], optional): Convenience array of public URLs to analyze in parallel.

    • tracks (object[], optional): Array of track objects with granular settings:

      • filePath (string, optional)

      • fileUrl (string, optional)

      • extractLyrics (boolean, optional): Per-track lyrics flag.

    • extractLyrics (boolean, optional): Global flag to transcribe vocal lyrics for all tracks in this batch (0.25 USDC per track). Default is false (0.15 USDC per track).

    • concurrency (number, optional): Maximum simultaneous parallel requests (1 to 5, default is 4 to respect API rate limits).

  • Output Structure: Returns a summary JSON containing:

    • totalTracks: Total number of tracks submitted.

    • successful: Count of successfully analyzed tracks.

    • failed: Count of failed tracks.

    • results: Detailed array containing status (success or error), metadata (including ai_detection), or error reason for each track.

4. lookup_artist_stats

Retrieves streaming traction and commercial metrics for an artist (Spotify monthly listeners, followers, popularity score, genres) for A&R qualification. This service is strictly decoupled from the acoustic analysis pipeline and features a 24-hour in-memory TTL cache with graceful fallback.

  • Arguments:

    • artist_name (string, required): Stage name of the artist (e.g. "Daft Punk", "Kaytranada").

    • social_links (string[], optional): Optional social media profile links for future enrichment.

  • Output Structure:

{
  "name": "Daft Punk",
  "spotify": {
    "id": "4tZwfgrHOc3mvqYlEYSvVi",
    "followers": 11769126,
    "popularity": 84,
    "monthlyListeners": 29284872,
    "genres": ["electro", "filter house"],
    "url": "https://open.spotify.com/artist/4tZwfgrHOc3mvqYlEYSvVi"
  },
  "cached": true,
  "social_links": []
}

πŸ€– Guide & System Prompts for A&R Agents (Hybrid Scoring)

Modern A&R evaluation combines three essential dimensions:

  1. Intrinsic Acoustic Profile (BPM, musical key & scale, mood, instrumentation, vocal lyrics).

  2. Origin Integrity & AI Verification (detecting human vs synthetic AI-generated music to mitigate copyright and chain-of-title risks).

  3. Commercial Momentum & Streaming Traction (Spotify monthly listener volume, follower fan base, popularity index).

🎯 Orchestration Workflow for Autonomous Agents

graph TD
    Submission[New Track Submission] --> DetectArtist{Artist identifiable?}
    
    Submission --> Step1[1. Call analyze_audio]
    Step1 --> AcousticData[Acoustic & Origin: BPM, Key, Mood, Genres, Lyrics, AI Detection]
    
    DetectArtist -->|Yes: Known Artist| Step2[2. Call lookup_artist_stats]
    DetectArtist -->|No: Anonymous Demo| Step2Skip[Traction: Not available / Pure Demo]
    
    Step2 --> TractionData[Spotify Traction: Followers, Monthly Listeners, Popularity]
    
    AcousticData --> Consolidate[3. A&R Consolidation]
    TractionData --> Consolidate
    Step2Skip --> Consolidate
    
    Consolidate --> Matrix[Unified A&R Evaluation Matrix]
  1. Step 1 β€” Acoustic & Origin Analysis: Invoke analyze_audio (or analyze_audio_with_lyrics when vocal lyrics transcription is essential) with filePath or fileUrl. This automatically triggers the x402 micro-payment (0.15 or 0.25 USDC on Base) and evaluates musical attributes alongside AI origin integrity (ai_detection).

  2. Step 2 β€” Artist Traction Lookup: Whenever the artist's stage name is identifiable (from submission filename, user prompt, or ID3 tags), invoke lookup_artist_stats(artist_name: "...").

  3. Step 3 β€” Consolidation into the Unified A&R Evaluation Matrix: The agent consolidates findings into a standardized Markdown evaluation matrix with the required 7 columns:

Track Title

Artist

BPM / Key

Style

Origin Integrity

Streaming Traction

Strategic Recommendation

Track Name

Stage Name

E.g. 124 BPM / A minor

Top genres & mood

HUMAN (98%) or AI_GENERATED (95%)

E.g. 29.2M listeners, 11.7M followers (Pop. 84)

Direct Sign, Playlist Pitch, Artist Development, or Copyright Review


πŸ“‹ Ready-to-Use A&R Agent System Prompt

Here is a turnkey system prompt template to configure an autonomous A&R scouting agent (compatible with Claude Desktop, Cursor, Windsurf, or LangChain/AgentKit):

You are an elite Artist & Repertoire (A&R) Executive specialized in musical talent scouting, demo evaluation, and record label signing decisions.

You have access to two primary tools:
1. `analyze_audio`: Comprehensive acoustic analysis of audio tracks (BPM, musical key/scale, mood tags, genre classification, instrumentation, optional lyrics transcription, and AI Origin Integrity detection).
2. `lookup_artist_stats`: Real-time public Spotify traction metrics (followers, monthly listeners, popularity score, genres).

A&R OPERATIONAL RULES:
1. SYSTEMATIC ACOUSTIC ASSESSMENT:
   - For every submitted audio track, invoke `analyze_audio` (or `analyze_audio_with_lyrics` for vocal-driven songs).
   - Evaluate rhythmic consistency (BPM), harmonic structure (key & scale), and emotional timbre (moods).

2. ORIGIN INTEGRITY VERIFICATION (AI DETECTION):
   - Inspect the `ai_detection` object in the analysis response.
   - If `verdict === 'AI_GENERATED'`, flag high copyright & legal exclusivity risk (unclear training data, copyright ineligibility in key territories). Recommend licensing review or sync consideration rather than exclusive artist recording agreements.
   - If `verdict === 'HUMAN'`, certify as organic human production suitable for priority label signing.

3. ARTIST TRACTION & AUDIENCE QUALIFICATION:
   - Whenever the artist name is identified or deductible from context, immediately invoke `lookup_artist_stats(artist_name)`.
   - If the artist has no existing Spotify footprint (bedroom producer / raw demo), label them as "Emerging / No Streaming Footprint" and focus the assessment on intrinsic production potential.

4. UNIFIED MATRIX SYNTHESIS:
   Always conclude your diagnostic with the **Unified A&R Evaluation Matrix** formatted as a Markdown table:

| Track Title | Artist | BPM / Key | Style | Origin Integrity | Streaming Traction | Strategic Recommendation |
|---|---|---|---|---|---|---|
| [Title] | [Artist] | [BPM] BPM / [Key] [Scale] | [Top Genres] ([Mood]) | [HUMAN / AI_GENERATED / UNCERTAIN] ([Confidence]%) | [Monthly Listeners] listeners, [Followers] followers | [Direct Sign / Playlist Pitch / Artist Dev / Pass / Legal Review] + Rationale |

5. STRATEGIC RECOMMENDATION TIERS:
   - 🌟 **Priority Signing (Direct Sign)**: Radio-ready production quality, certified HUMAN origin, AND strong, accelerating streaming traction.
   - 🎯 **Playlist & Sync Pitch (Licensing)**: High contextual atmosphere ideal for editorial playlists, video games, or film/TV sync.
   - 🌱 **Artist Development (Artist Dev)**: Exceptional vocal or production potential, certified HUMAN origin, but early-stage audience.
   - ⚠️ **Synthetic IP / Legal Review**: AI-generated music (Suno, Udio) requiring legal clearance or suited for non-exclusive catalog licensing.
   - ⏸️ **Needs Revision (Pass / Feedback)**: Mix/mastering flaws, inconsistent tempo, or derivative composition.

πŸ“„ License

MIT

Available Tools

4 tools
analyze_audioA

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'), and optionally vocal lyrics. Supports local audio files via 'filePath' (read in binary and uploaded) or remote URLs via 'fileUrl'. Note: This tool automatically executes a micro-payment (0.15 USDC for standard analysis, or 0.25 USDC when extractLyrics is enabled) via the x402 protocol on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileUrlNoThe direct publicly accessible URL (HTTP/HTTPS or IPFS) of the audio file to analyze.
filePathNoPath to a local audio file on disk (.mp3, .wav, .ogg, .flac, .m4a, .aac, .aiff). Use this whenever analyzing a local file, recording, or email attachment saved locally.
extractLyricsNoOptional: Set to true to transcribe and extract vocal lyrics in addition to metadata. Costs 0.25 USDC instead of 0.15 USDC.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the transparency burden and does a solid job: it discloses the x402 micro-payment, the exact costs for both modes, and the binary-read/upload behavior for local files. It does not describe failure modes or response structure, but the most important behavioral surprise, the payment, is clearly flagged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: it opens with the tool's purpose, then covers input modes, optional lyrics, and the payment note. Every sentence contributes necessary information and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid audio-analysis tool with no output schema, the description covers the core purpose, output categories, input options, and cost behavior. It is not fully complete because it lacks explicit sibling routing and return-format details, but the essential invocation information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful value beyond the schema by clarifying that filePath files are read in binary and uploaded, and by specifying the exact cost increase when extractLyrics is enabled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Analyzes') and resource ('a music track or audio file'), and enumerates the extracted metadata categories. It does not explicitly distinguish itself from the sibling analyze_audio_with_lyrics, though the optional-lyrics mention hints at the relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides useful input-selection guidance by explaining when to use filePath versus fileUrl, and when extractLyrics should be enabled. However, it gives no explicit direction about choosing this tool over analyze_audio_with_lyrics or analyze_audio_batch, leaving sibling differentiation to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_audio_batchA

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'. Executes micro-payments per track on Base via x402.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracksNoArray of audio items to analyze in parallel. Each item can specify 'filePath' or 'fileUrl' and optional per-track 'extractLyrics'.
fileUrlsNoConvenience shortcut: list of remote audio URLs to analyze in parallel.
filePathsNoConvenience shortcut: list of local audio file paths to analyze in parallel.
concurrencyNoMaximum number of simultaneous parallel requests (1 to 5, default is 4 to respect API rate limits).
extractLyricsNoOptional global flag: set to true to transcribe and extract vocal lyrics for all tracks in this batch (0.25 USDC per track). Default is false (0.15 USDC per track).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing side effects. It reveals parallel execution, speed gains, and critically, that it 'Executes micro-payments per track on Base via x402' β€” a non-obvious financial side effect. It does not describe return values, but the core behavioral risk is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose and parallelism, speed benefit, accepted inputs, and payment side effect. No redundant filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch tool with rich schema descriptions and no output schema, the description covers the essential invocation context: input alternatives, parallel execution, and the payment side effect. It could mention what the batch returns, but the missing return shape is a minor gap given the otherwise strong schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents tracks, fileUrls, filePaths, concurrency, and extractLyrics. The description adds little beyond restating the three input modes ('filePaths', 'fileUrls', 'tracks'), which matches the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Analyzes multiple music tracks or audio files in parallel (batch processing)'. It clearly distinguishes this tool from single-track siblings by emphasizing batch and parallel execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the key advantage over sequential processing and implies use when multiple audio items need analysis. It does not explicitly name the single-track alternatives or state when not to use them, but the batch context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_audio_with_lyricsA

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'. Note: This tool automatically executes a micro-payment of 0.25 USDC via the x402 protocol on Base. (Alias for analyze_audio with extractLyrics: true).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileUrlNoThe direct publicly accessible URL (HTTP/HTTPS or IPFS) of the audio file to analyze.
filePathNoPath to a local audio file on disk (.mp3, .wav, .ogg, .flac, .m4a, .aac, .aiff). Use this whenever analyzing a local file, recording, or email attachment saved locally.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it directly discloses the automatic 0.25 USDC x402 micro-payment and the local-file binary upload behavior. It omits auth, rate-limit, and failure details, but the most decision-critical side effect is made explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the main purpose, then input modes, then payment, and ends with the alias note. It is compact and mostly efficient, though the first sentence is long and the alias line is somewhat redundant with the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers what the tool does, how audio is supplied, and the cost. However, because there is no output schema and both parameters are marked optional in the schema, the description should state that exactly one of filePath/fileUrl is required and roughly what the response contains. Without this, an agent may invoke it incorrectly or with no input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds useful transport semantics ('filePath read in binary and uploaded' vs 'remote URLs via fileUrl'), but it does not clarify whether filePath and fileUrl are mutually exclusive or that at least one is required, leaving invocation ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('an audio track'), the actions ('extract complete musical metadata', 'AI-generated music detection verdict', 'transcribe full vocal lyrics'), and distinguishes itself from siblings by explicitly labeling itself as an alias for analyze_audio with extractLyrics: true. An agent can immediately tell what this tool does and how it differs from analyze_audio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains when to use filePath (local files read in binary and uploaded) vs fileUrl (remote URLs), and signals that this is the lyrics-enabled variant of analyze_audio. It does not explicitly spell out exclusions such as 'for multiple files use analyze_audio_batch', so it stops short of a full when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_artist_statsA

Retrieves streaming traction and commercial metrics for an artist (Spotify monthly listeners, followers, popularity score) for A&R qualification.

ParametersJSON Schema
NameRequiredDescriptionDefault
artist_nameYesStage name of the artist to look up.
social_linksNoOptional social media profile links for future enrichment.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. 'Retrieves' implies a read-only lookup and the listed metrics describe the expected payload, but rate limits, data freshness, error behavior, and whether results are cached or live are not addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence front-loads the verb and resource, lists the key metrics, and closes with the purpose. No filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter lookup with no output schema, the description covers purpose, key return values, and use case. Minor omissions such as not-named-artist behavior and explicit alternatives prevent a 5, but the tool is simple enough that this is still largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning about parameters beyond the schema; it does not explain social_links' role or how the artist_name should be formatted beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Retrieves') and identifies an unambiguous resource ('streaming traction and commercial metrics for an artist'), enumerating concrete metrics (Spotify monthly listeners, followers, popularity score). The A&R use case and the contrast with sibling tools focused on audio analysis make it distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for A&R qualification' gives a clear intended context, and the metric types imply it is for commercial/streaming lookup rather than audio analysis. However, it never explicitly states when to prefer this tool over the analyze_audio variants or provides exclusions/alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.4.1
    • First observedanalyze_audio
    • First observedanalyze_audio_batch
    • First observedanalyze_audio_with_lyrics
    • First observedlookup_artist_stats

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation3/5

analyze_audio and analyze_audio_with_lyrics are effectively aliases since lyrics extraction can be toggled via a parameter, creating avoidable overlap. The batch and artist stats tools are clearly distinct, so the ambiguity is limited but still real.

Naming Consistency5/5

All tool names use a consistent lowercase snake_case verb_noun structure: analyze_audio, analyze_audio_with_lyrics, analyze_audio_batch, lookup_artist_stats. The naming pattern is predictable and easy for an agent to infer.

Tool Count4/5

Four tools is within a reasonable scope for an audio analysis server, but one of them is redundant with analyze_audio. Removing the alias would make the count feel tighter and more purposeful.

Completeness4/5

The core workflows are covered: single-track analysis, lyrics extraction, batch processing, and artist stats lookup. Minor gaps exist, such as analysis history or playlist-level operations, but they are not obvious dead ends for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Cross-platform music link resolution for AI agents. Resolve any song or album across Spotify, Apple Music, Amazon, YouTube, and more. Returns affiliate-ready links with click tracking
    5
    63 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to analyze audio files, extracting tempo, key, beat drops, volume surges, high tones, loudness, brightness, and structure, and returning structured JSON and visualizations.
    2
    MIT