Skip to main content
Glama

DJ Music Metadata MCP (Python)

MCP server for DJs to organize metadata with API-based validation and batch writing.

What this server does

  • Scans a music folder and finds missing fields.

  • Queries external APIs (MusicBrainz and iTunes) to suggest metadata with evidence.

  • Computes a confidence score per track and blocks low-confidence writes in strict mode.

  • Supports multiple genres per track.

  • Writes metadata to MP3, FLAC, and M4A/MP4.

Related MCP server: io.github.khglynn/spotify-bulk-actions-mcp

Exposed MCP tools

  1. scan_tracks

  2. suggest_verified_metadata

  3. apply_verified_metadata

Requirements

  • Python 3.10+

Optional API credentials

  • Spotify (recommended):

    • SPOTIFY_CLIENT_ID

    • SPOTIFY_CLIENT_SECRET

  • SoundCloud (optional):

    • SOUNDCLOUD_CLIENT_ID

If these variables are not configured, the server still works with MusicBrainz and iTunes.

Install

pip install -r requirements.txt

Run

python server.py

Example (Windows PowerShell):

$env:SPOTIFY_CLIENT_ID="your_client_id"
$env:SPOTIFY_CLIENT_SECRET="your_client_secret"
$env:SOUNDCLOUD_CLIENT_ID="your_client_id"
python server.py

MCP setup (VS Code)

Example file: mcp.server.json

  1. Run scan_tracks to map missing fields.

  2. Run suggest_verified_metadata with minConfidence between 0.78 and 0.90.

  3. Review per-track evidence.

  4. Run apply_verified_metadata with dryRun true.

  5. If results look correct, run again with dryRun false.

Example 1: scan

Tool: scan_tracks

{
  "folderPath": "D:/DJ/Setlist",
  "recursive": true
}

Example 2: API-based verified suggestion

Tool: suggest_verified_metadata

{
  "folderPath": "D:/DJ/Setlist",
  "recursive": true,
  "minConfidence": 0.82,
  "onlyMissing": true
}

Example 3: apply in strict mode

Tool: apply_verified_metadata

{
  "dryRun": true,
  "strict": true,
  "minConfidence": 0.82,
  "updates": [
    {
      "filePath": "D:/DJ/Setlist/Artist - Track.mp3",
      "confidence": 0.91,
      "evidence": [
        { "source": "musicbrainz", "recordingId": "..." }
      ],
      "metadata": {
        "title": "Track",
        "artist": "Artist",
        "genre": ["Tech House", "House"],
        "comment": ["Validated by API"]
      }
    }
  ]
}

Set dryRun to false to write changes.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    An MCP server for Spotify control and synchronized lyrics retrieval that enables playback management, queue navigation, and music search capabilities. It also features perception tools for real-time track analysis, including BPM, key detection, and timestamped lyrics.
    93
    3
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for bulk Spotify operations enabling batch playlist creation, library exports, and large-scale library management with confidence scoring and human-in-the-loop for uncertain matches.
    33
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An intelligent MCP server that enables AI agents to act as sophisticated music curators for self-hosted Navidrome libraries, focusing on quality, discovery, and non-destructive management.
    15
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Producer/Riffusion AI music generation

  • TheAudioDB MCP — community music metadata database.

  • Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jpmamededs/dj-music-metadata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server