TrackTag MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TrackTag MCP ServerAnalyze this track and tell me its BPM, key, and genres"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TrackTag MCP Server
Let AI agents (Claude Desktop, Claude Code, Cursor, and any MCP-capable client) analyze music with TrackTag: drop an MP3 into your agent, say "analyze this track", and get BPM, key, genres, moods, instruments, energy and 35+ metadata fields back.
Runs entirely on your own computer — your agent app starts it, talks to it directly (no middleman server, so your audio and API key never leave your machine on the way to TrackTag), and stops it when you quit. Analyses are billed from your TrackTag credit balance (1 credit per track with the core model, 2 with ultra); failed analyses are refunded automatically.
Setup
First, get an API key: tracktag.me/studio → API & MCP → Create key (tt_live_…). Free test keys available.
⚡ One-click install (Claude Desktop) — recommended
Download tracktag.mcpb → double-click it → Claude Desktop opens an install window → paste your API key → done. No config files, no Node.js, nothing to edit. (One Claude quirk: after installing, flip the extension ON in Settings → Extensions.)
Manual config (Cursor, Claude Code, other MCP clients)
Add the server to your agent's MCP config:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"tracktag": {
"command": "npx",
"args": ["-y", "tracktag-mcp"],
"env": { "TRACKTAG_API_KEY": "tt_live_YOUR_KEY" }
}
}
}Claude Code:
claude mcp add tracktag -e TRACKTAG_API_KEY=tt_live_YOUR_KEY -- npx -y tracktag-mcpCursor (~/.cursor/mcp.json): same JSON block as Claude Desktop.
Related MCP server: Audio Analysis MCP Server
Tools
Tool | What it does | Cost |
| Analyze a local audio file (mp3/wav/flac/aiff/m4a/ogg, ≤15 MB) | 1–2 credits |
| Analyze audio from any https URL (≤60 MB) | 1–2 credits |
| Remaining credit balance and limits | free |
| Recent API analyses | free |
Docs
Full API reference: tracktag.me/developers
Can I analyze multiple tracks? (batching)
Yes — small batches work right in the chat. Drop several audio files into your assistant (or name a folder's worth of tracks) and say "analyze all of these with TrackTag" — the agent calls the analysis tool once per track and summarizes the results together. Each track bills its own credit, and the default rate limit (10 requests/minute) makes this comfortable for a handful of tracks at a time.
For real catalog work, use the tools built for it: TrackTag Studio runs 100-file batches with folders, progress tracking and XLSX/CSV/XML exports, and the TrackTag API handles high-volume pipelines with async jobs and webhooks. Same engine, same credits — pick the surface that fits the job: MCP for conversation, Studio for catalogs, API for automation.
"Can't I just drag the MP3 into ChatGPT or Claude and ask?"
Not if you want real, reliable metadata — and here's the honest breakdown.
Claude cannot hear audio, and ChatGPT doesn't musically analyze it. Drop an MP3 into a Claude chat and it sees the file's name and metadata — it never processes the actual sound. ChatGPT will at best transcribe any speech in the file; it won't tell you the key, the groove or the instrumentation from the waveform. Whatever "analysis" comes back is largely an educated guess from the title. This MCP server is what gives your assistant real ears.
Some models can accept audio — but a raw model is not an analysis product. TrackTag runs every track through a purpose-built pipeline: audio preprocessing, signal-level analysis of the actual waveform (tempo, tonality, timbre, instrumentation, vocal characteristics, dynamics), an extraction process tuned specifically for music metadata, and validation of every result against a strict 35+ field taxonomy with controlled vocabulary. A one-off chat prompt gives you different fields, different wording and different judgments every single run — fine for curiosity, useless for a catalog.
Consistency is the product. Sync libraries, marketplaces and labels need the same schema, the same vocabulary and the same standards across 10 or 10,000 tracks — plus batch handling and automatic refunds when an analysis fails. That's engineering around the model, not the model itself, and it's what you're getting here.
Your AI assistant does what it's great at — conversation and workflow. TrackTag does what it's built for — turning sound into professional, uniform metadata.
About the creator
TrackTag is built by Adi Goldstein — a composer and music producer based in Tel Aviv who has spent years on both sides of the problem: writing and licensing music, and wrestling with the metadata that makes it findable. TrackTag exists because tagging a catalog by hand is the least musical part of making music.
It's part of a family of tools Adi builds for musicians and creators:
Project | What it does |
AI music tagging — BPM, key, genres, moods and 35+ metadata fields per track, for catalogs, sync libraries and now AI assistants | |
Curated royalty-free music library for filmmakers, video creators and commercial producers | |
Smart links and artist pages for musicians — one URL that routes fans to their preferred streaming platform, with pre-saves and analytics | |
AI-generated Spotify Canvas videos — looping visuals for your tracks, no video editing needed | |
Audio watermarking to protect tracks and demos before they're licensed |
Questions, ideas, or building something with the TrackTag API? Reach out via tracktag.me/support.
Available Tools
5 toolsanalyze_trackA
Analyze a LOCAL audio file (mp3/wav/flac/aiff/m4a/ogg, up to 15 MB) with TrackTag AI. Returns BPM, key, genres, moods, instruments, energy and 35+ metadata fields. Costs 1 TrackTag credit (model 'core') or 2 ('ultra') from the user's balance; failed analyses are auto-refunded. Needs the file's real path on this machine — if you only know the track's name (e.g. the user dragged a file into chat), call find_audio_files first. For files over 15 MB or already-hosted audio, use analyze_url.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | core = 1 credit, ultra = 2 credits (deeper analysis) | core |
| file_path | Yes | Absolute path to the audio file on this machine | |
| track_name | No | Display name; defaults to the file name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description compensates by disclosing credit costs (1 or 2), auto-refund on failure, and file size constraints. It stops short of describing the response format or whether it creates job records, but the disclosed behavior is sufficient for basic agentic decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: first states action and output, second covers cost/failure, third gives usage routing. No repetitive or extraneous information; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description fully covers the tool's purpose, constraints, costs, and relationships to sibling tools. It even addresses the common ambiguity of whether the agent has a file path vs. a name, making it complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 crucial context for file_path (needs real path, not a name) and reiterates the cost difference for model, even though the schema also says this. This extra guidance improves parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Analyze') and resource ('LOCAL audio file'), lists supported formats and size limit, and states concrete outputs (BPM, key, genres, etc.). It clearly distinguishes from the sibling analyze_url by explicitly noting it is for local files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use context: 'if you only know the track's name... call find_audio_files first' and 'For files over 15 MB or already-hosted audio, use analyze_url.' This directly guides tool selection against siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_urlA
Analyze audio from a URL (any public or signed https link, up to 60 MB) with TrackTag AI. Same output and credit cost as analyze_track.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | core | |
| audio_url | Yes | Direct link to the audio file | |
| track_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It does transparently mention input requirements (public/signed https, up to 60 MB) and cost/output parity with analyze_track. Yet it omits failure modes, authentication needs, or what the returned analysis looks like, leaving notable gaps for autonomous use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no redundant fluff. The key constraint (URL type, size) is front-loaded, and the 'Same output and credit cost as analyze_track' clause efficiently conveys expected behavior without repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but with no output schema and no annotations, the description must explain what the agent should expect. It gives input constraints and cost/output parity, but not the result structure or error behavior. This is adequate for basic selection but incomplete for nuanced autonomous invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description only adds meaningful context to audio_url (format, size, signed-links). The model parameter's enum values (core/ultra) are left unexplained, and track_name has no description or semantic hint. The description does not compensate for the low coverage of the other two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: analyzing audio from a URL. It specifies the input type (public or signed https link), size limit, and distinguishes itself from the sibling analyze_track by referencing it for output/cost comparison. This is a specific verb+resource with clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when an agent has an audio URL to analyze, and it notes format and size constraints. However, it does not explicitly state when to prefer this over analyze_track or when not to use it. The reference to analyze_track is indirect and leaves usage decision-making partially open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_audio_filesA
Find audio files on this machine by (partial) name — searches Downloads, Desktop, Music and Documents. Use this to resolve a file path when the user mentions a track by name (e.g. after dragging a file into chat, which does not reveal its local path). Free.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Part of the file name, case-insensitive (e.g. 'sunset drive') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the search directories and partial-name matching, but does not describe the return format (e.g., list of paths), behavior with zero results, or any potential side effects. The mention of 'Free' adds minimal value. Some behavioral context is present, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no redundant information. Every sentence contributes to understanding the tool's function and use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description provides purpose, scope, search directories, and a concrete use case. It does not explicitly describe the return value, but the phrase 'resolve a file path' implies the output. Given the low complexity and no output schema, this is nearly complete, though a note about multiple matches or no results would elevate it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single parameter 'query' with a clear example. The description reinforces that it is a partial name but does not add additional semantic value beyond the schema. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds audio files on the machine by partial name, searches specific directories, and is distinct from sibling tools like analyze_track or list_recent_jobs. The verb 'Find' and resource 'audio files' make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-to-use scenario: resolving a file path when a user mentions a track by name, such as after dragging a file into chat. It lacks explicit exclusions or comparisons to alternatives, but the context is sufficient for basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_creditsA
Get the user's remaining TrackTag credit balance and API limits. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the useful behavioral trait that the operation is 'Free' (does not consume credits) and implies a read-only balance check. However, with no annotations provided, the description carries the full burden for behavioral disclosure, and it does not mention response format, error conditions, or authentication requirements. This is acceptable for a simple getter but leaves some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first states the purpose, the second adds key gratuitous information ('Free'). There is no fluff, and it is front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is complete enough. It specifies what is returned ('remaining credit balance and API limits') and adds the 'Free' context. Sibling tools are clearly different, so there is no confusion about the tool's role. No further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is empty and schema coverage is 100%. Per the rubric, a baseline of 4 applies when there are no parameters. The description does not need to explain parameter semantics and does not add anything beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource: the user's remaining TrackTag credit balance and API limits. It also adds 'Free' to signal that this operation does not consume credits, which distinguishes it from sibling tools like analyze_track or analyze_url that presumably consume credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. There is no mention of prerequisites, typical scenarios, or exclusions. The 'Free' note implies it could be used to check limits before other operations, but this is not stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_jobsA
List the user's recent TrackTag API analyses (id, status, track, credits). Free.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds useful behavioral context: 'Free' (no cost), 'recent' (implies time-ordered), and 'the user's' (scoped to the authenticated user). While it doesn't discuss authentication requirements or pagination details, it gives more than a bare-bones listing and mentions return fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and resource, then lists the key return fields and cost. No wasted words; every token earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description provides a solid overview: what it lists, the fields returned, and that it's free. It doesn't mention ordering or pagination, but the 'recent' qualifier and the limit parameter in the schema partially cover that. Missing authentication/runtime details are less critical for such a straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (limit) with no description, and schema description coverage is 0%. The tool description does not mention the limit parameter at all, so the agent must infer its meaning from the parameter name. This is a significant gap, even though the parameter is simple and optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('List') and a clear resource ('the user's recent TrackTag API analyses'), and it enumerates the returned fields (id, status, track, credits). This clearly distinguishes it from siblings like analyze_track (creates analyses) and get_credits (just shows credit balance).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you need to see past analyses, use this tool. However, it doesn't explicitly state when to use it versus alternatives, nor does it give exclusions or edge cases. The sibling list provides some context, but the description itself offers no direct comparison or 'use this when' guidance.
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. Dates show when Glama detected each change.
5 tool updates
v0.2.0- First observed
analyze_track - First observed
analyze_url - First observed
find_audio_files - First observed
get_credits - First observed
list_recent_jobs
TDQS
Each tool has a clearly distinct purpose: local file search, local file analysis, URL analysis, credit check, and job history. The two analysis tools are differentiated by input type (local path vs URL), avoiding ambiguity.
All tool names follow a consistent verb_noun pattern with lowercase snake_case: find_audio_files, analyze_track, analyze_url, get_credits, list_recent_jobs. No mixing of styles or vague verbs.
Five tools is well-scoped for the server's purpose: it covers file discovery, two analysis entry points, credit monitoring, and job history without unnecessary redundancy.
The core workflows (find, analyze, check credits, list history) are covered. A minor gap is the lack of a way to retrieve full past analysis results beyond the summary in list_recent_jobs, but this is workable.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Privacy-first audio intelligence: BPM, key, waveform. Audio never stored. Pay per second.
The media memory layer for AI agents and their humans. Your AI client gets 29 tools to search your collection, add items, update ratings, preview music, and find patterns across everything you've read, watched, and listened to.
Analyze tracks and manage customer music-promotion workflows through your DropTrack account.
Audio features + harmonic set-building for tracks by name/ISRC. Spotify audio-features replacement.
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceEnables LLMs to analyze music (genre, mood, tempo, key), separate audio stems, detect AI-generated music, and measure loudness using IRCAM Amplify's audio processing APIs.5-
- FlicenseAqualityDmaintenanceEnables AI models to analyze audio files through numerical fingerprints, pitch tracking, and visual spectrograms without requiring direct audio playback. It provides tools for comparing audio iterations and detecting patterns using token-efficient analysis operations.13-
- FlicenseNot gradedqualityBmaintenanceAnalyzes audio files to extract exact, reproducible measurements like loudness, tempo, key, spectral balance, and clipping for LLM-based DAW control.-
- AlicenseNot gradedqualityCmaintenanceEnables 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.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/adigold/tracktag-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server