@audiolabtools/mcp-server
Allows checking audio loudness and delivery specifications for Amazon Music, ensuring compliance with platform requirements.
Allows checking audio loudness and delivery specifications for Apple Music, ensuring compliance with platform requirements.
Allows checking audio loudness and delivery specifications for Spotify, ensuring compliance with platform requirements.
Allows checking audio loudness and delivery specifications for Tidal, ensuring compliance with platform requirements.
Allows checking audio loudness and delivery specifications for YouTube, ensuring compliance with platform requirements.
Click on "Deploy 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., "@@audiolabtools/mcp-serverAnalyze the loudness of https://example.com/track.wav"
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.
@audiolabtools/mcp-server
MCP (Model Context Protocol) server that gives any MCP-capable AI (Claude Desktop, Claude Code, Cursor, and others) ten audio-analysis tools, backed by the hosted AudioLab API. It is a thin HTTP client: no local audio engine, no ffmpeg, nothing to compile. It can analyse a public URL or a local file on your machine.
Install
Point your MCP client at the package via npx (nothing to install globally):
{
"mcpServers": {
"audiolab": {
"command": "npx",
"args": ["-y", "@audiolabtools/mcp-server"],
"env": { "AUDIOLAB_API_KEY": "al_live_yourkey" }
}
}
}Get a key: sign in at https://audiolab.tools/account and generate one (free tier available).
Related MCP server: Audio Analysis MCP Server
Requirements
Node ≥ 18: uses the built-in global
fetch+AbortSignal.timeout.An
AUDIOLAB_API_KEY. No ffmpeg, no native dependencies.
Tools
Every tool takes one audio source: a public url or a local path:
{ url: "https://…" }: a public https URL the API fetches server-side.{ path: "./mix.wav" }: a file on the machine running this server. Files up to 4 MB are sent inline; larger files (up to 150 MB) upload over a signed URL, are analysed, and are swept from storage within the hour. (Localpathworks only in this stdio server, not the remote/mcpendpoint.)
Tool | Returns |
| Integrated LUFS (EBU R128 / BS.1770-4), true-peak (dBTP), LRA, crest factor, stereo correlation, mono compatibility, tonal balance |
| Pass/fail vs a delivery target ( |
| Short-term LUFS over time + downsampled waveform peaks ( |
| FFT magnitude data + 7-band energies |
| Voice QA: speech/silence ratio, speaking rate, SNR, noise floor, pause energy, sibilance & clipping risk |
| Voiced regions with start/end + per-segment RMS (auto-trim, chapters) |
| Content-type guess, tags, clipping/silence regions, brightness & dynamics buckets |
| One named question, |
| A/B on two sources ( |
| One route over up to 20 sources in a single call ( |
Example asks to your AI:
“Analyze the loudness of https://example.com/track.wav” →
analyze_loudnesswithurl“Is this take usable?” →
analyze_profilewithprofile:"voice"“Has this file been re-encoded, and is it all one source?” →
analyze_profilewithprofile:"provenance"“Run loudness on ./master.wav” →
analyze_loudnesswithpath“Does ./mix.mp3 pass Spotify?” →
check_targetwithpath+target:"spotify"
Configuration (env)
Var | Default | Purpose |
| – (required) | Your API key. |
|
| Override the API base (must be |
|
| Per-request timeout in milliseconds (long files and batches stream server-side and can legitimately take minutes). |
Privacy
Analysis happens on the AudioLab API, so the audio does reach audiolab.tools: a url
is fetched server-side, and a local path is sent to the API (small files inline; larger
files via a private one-shot signed upload that is deleted right after analysis). The API
returns numbers only and does not retain your audio (see https://audiolab.tools/privacy).
This package has no telemetry and writes nothing to disk. If audio must never leave the
machine, don't use a hosted analyser.
Limits
Local files: up to 150 MB (host bigger ones at a public URL).
Duration: loudness routes (
analyze_loudness,check_target,analyze_timeseries,get_spectrum) handle long files (podcast episodes, full sets, up to ~3 h) via server-side streaming; voice/signal routes are limited to ~7 minutes.One file per call (agents loop for many); one-shot (no streaming/realtime).
Rate and monthly limits are enforced by the API, per key.
Smoke test
node hosted-server.mjs --selftest # verifies the 10 tools + guards; no networkLicense
MIT © Nathan Renting
Available Tools
10 toolsanalyze_batchBatch: one analysis route over many filesA
Run one analysis route over up to 20 audio sources in a single call. Returns per-item ok/data/error; each item is metered as one call. Routes: mixlab/analyze (default), mixlab/check-target, mixlab/timeseries, mixlab/spectrum, voicelab/qa, voicelab/segments, signallab/index. Use for folder QA, library indexing, or checking a whole release against a loudness target. Sources: public https urls and/or local file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| tp | No | For target="custom": max true-peak (dBTP). | |
| lufs | No | For target="custom": integrated LUFS target. | |
| urls | No | Public https URLs to audio files. Combined max 20 items with paths. | |
| paths | No | LOCAL audio file paths; each uploads over a one-shot signed URL, is analysed, then deleted. Combined max 20 items with urls. | |
| target | No | For mixlab/check-target: preset id (spotify, ebu-broadcast, podcast, …) or "custom". | |
| endpoint | No | Analysis route to run for every item (default mixlab/analyze). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the 20-item cap, the per-item ok/data/error return shape, and the metering rule that each item counts as one call. It omits failure semantics (e.g. whether one bad item aborts the batch) and auth/permission requirements.
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?
Four dense sentences, front-loaded with the core action and cap, then return shape, routes, and use cases. No filler; every clause carries operational information.
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 batch dispatcher with no output schema, the description is complete enough: it covers scope (20 items), return structure (per-item ok/data/error), metering, route enumeration, and source types. An agent has what it needs to call it correctly.
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 baseline is 3, but the description adds real value the schema does not: it enumerates the valid endpoint routes (mixlab/analyze, check-target, timeseries, spectrum, voicelab/qa, segments, signallab/index) and the source types (https URLs and local paths) that map to the urls/paths 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?
States a specific verb (run one analysis route) and resource (up to 20 audio sources in a single call), and distinguishes itself from siblings by being the batch wrapper that dispatches to the routes those siblings expose individually.
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?
Gives concrete use cases (folder QA, library indexing, checking a whole release against a loudness target) and names the default route, so an agent knows when the batch path applies. It stops short of saying when NOT to use it (e.g. single-file work should call the individual sibling tools), so it isn't a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_loudnessAnalyze loudness (MixLab)B
Loudness and dynamics for a track: integrated LUFS (EBU R128 / BS.1770-4), true-peak (dBTP), loudness range (LRA), crest factor, stereo correlation, mono compatibility, and tonal balance. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses essentially nothing beyond the metric list — no read-only/side-effect profile, no latency or cost characteristics, no auth requirements, and no indication of how large files or failures are handled (the 4 MB inline / 150 MB signed-URL detail lives in the schema, not the description).
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?
Two sentences, front-loaded with the substantive metric list and closing with the input-source clause. Every phrase carries information (specific standards named, concrete metrics enumerated) and there is no filler or repetition.
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?
With no output schema present, the description usefully compensates by enumerating the returned measurements, and the input contract is fully covered by the schema. It is slightly incomplete in that it gives no behavioral context (safe read? latency? cost?) for an analysis operation with zero annotation coverage.
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 100%, so both parameters (url and path) are already fully documented in the schema, including the 'exactly one of' constraint and the size thresholds. The description only restates the two source options without adding format or constraint detail beyond the schema, so baseline 3 applies.
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?
States a specific verb+resource (loudness/dynamics analysis of a track) and enumerates the exact metrics produced — integrated LUFS, true-peak, LRA, crest factor, stereo correlation, mono compatibility, tonal balance — which clearly separates it from siblings like get_spectrum or analyze_voice. It does not explicitly name the nearest sibling compare_loudness, so it falls short of full 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 says what it analyzes but never states when to choose this tool over alternatives such as compare_loudness or get_spectrum. There is no when-to-use, when-not-to-use, or prerequisite guidance; the only routing hint is the input source format, which is parameter information rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_profileAnalyse against a profileA
Measure a file against a named working set of lenses and get back only what that question needs. Profiles: voice (is this take usable, and which phrase is the problem), master (will this translate to real platforms and speakers), provenance (what has been done to this file, and is it all one source), dataset (which of these files are good enough, and why not the rest), environment (what is in this space, and what kind of noise is it), broadcast (does this file meet the delivery spec), loop (is this loop clean, on the grid, and safe to drop in a DAW). basic is the free tier; the other seven need a paid plan. Results are keyed by stable lens id. Only the analysis passes the profile needs are run. Set series:true to also get the curves, the per-block lanes and the per-phrase values,a much larger payload, so leave it off unless you are going to read them. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. | |
| series | No | Include time series, per-block lanes and per-phrase arrays. Off by default. | |
| profile | Yes | Which question to answer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden and does well: it discloses the paid-plan gating for seven profiles, that only the required passes execute, that results are keyed by stable lens id, and that series:true produces a 'much larger payload' to leave off unless read. It stops short of rate limits, latency, or failure behavior, but the cost/entitlement tradeoffs are unusually well surfaced.
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?
Purpose and profile list are front-loaded and the audio-source note closes it out, so it reads in the right order. It is somewhat dense and run-on (the series sentence and 'values,a much larger payload' are slightly garbled), which costs a point but not much material clarity.
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?
There is no output schema, so the description must describe returns: it explains results are keyed by stable lens id, scoped to only what the profile needs, and optionally augmented with curves, per-block lanes and per-phrase values. That covers the shape at a high level, though it does not enumerate per-lens fields, so an agent can call it correctly but not fully predict the payload.
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 baseline would be 3, but the description adds real semantic value the schema lacks: the enum's terse 'Which question to answer' is expanded into a concrete question per profile value, and the series flag's payload consequence is explained rather than merely described.
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?
States a concrete verb and resource ('Measure a file against a named working set of lenses') and then enumerates the eight profiles with the exact question each answers, which lets an agent distinguish this multi-lens entry point from single-purpose siblings like analyze_loudness or analyze_voice.
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 per-profile question list implies when each profile is appropriate, and it notes 'only the analysis passes the profile needs are run', which is useful routing context. However it never states when to prefer this tool over sibling analyzers (analyze_voice, analyze_loudness) or when a profile is the wrong entry point, so guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_timeseriesLoudness over time (for graphing / visualization)B
Short-term LUFS samples over time (EBU R128, ~3s window) with their time-base, plus downsampled waveform peaks. Arrays suitable for loudness-over-time charts, level meters, and waveform UIs. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. | |
| waveformPoints | No | Waveform peak count (default 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the ~3s analysis window, the EBU R128 standard, and that the waveform is downsampled, but says nothing about response size limits, error behavior, or processing cost. Partial disclosure for a read-only analysis tool.
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 that front-load what is returned, then the applicability, then the input sources. No filler, though the last sentence partially duplicates what the schema already documents.
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?
There is no output schema and no annotations, so the description should fully explain the return shape. It names the arrays and time-base but omits units, ordering, or pairing format between samples and timestamps, leaving moderate gaps for an agent consuming the result.
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 100%, so the baseline is 3. The description restates the two audio-source options (public https URL or local path) but adds no syntax or format detail beyond the schema, and the `waveformPoints` parameter is only hinted at via 'downsampled waveform peaks' without naming the default or unit.
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 names a specific resource (short-term LUFS samples with time-base, plus downsampled waveform peaks) and specifies the measurement standard and window (EBU R128, ~3s). It implicitly distinguishes itself from analyze_loudness by framing output as arrays for charts/meters rather than summary metrics, but never names the sibling explicitly.
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?
It gives use-case context (loudness-over-time charts, level meters, waveform UIs) and lists both audio sources, but there is no explicit 'use this instead of analyze_loudness when...' routing and no when-not guidance. The consumer must infer that this tool is for time-series data versus summary statistics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_voiceAnalyze voice quality (VoiceLab)A
Speech-quality QA for a voice recording: speech/silence ratio, speaking-rate label, signal-to-noise, noise floor, pause energy, sibilance risk, clipping severity. Gates a voice take. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. |
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. It usefully discloses the metric set and the acceptance-gate framing plus how audio is sourced (public URL vs local path with size-based handling). It omits permissions, rate limits, failure behavior, and output shape, leaving real gaps for a no-annotation tool.
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?
Two tightly packed sentences, front-loaded with the metric list and the gating purpose, with the source note last. Efficient with no filler, though the metric enumeration is dense enough that it borders on a spec dump.
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?
With no annotations and no output schema, the description does the necessary work by enumerating the returned metrics and the gate semantics, which serves as an implicit output description. It lacks detail on thresholds, scoring, or error cases, but is largely sufficient for a two-parameter analysis tool.
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 100%, so both parameters are already fully documented in the schema including the 'exactly one of url or path' rule. The description restates the source options without adding syntax or format detail beyond the schema, so baseline 3 applies.
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?
States a specific verb and resource (speech-quality QA for a voice recording) and enumerates the exact metrics computed, which distinguishes it clearly from siblings like analyze_loudness and get_spectrum. An agent can tell what this tool returns without opening any schema.
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 phrase 'Gates a voice take' implies the context of use (a pass/fail QA gate for a voice recording), giving implied guidance. However, it names no alternative and gives no explicit when-not or sibling-routing guidance, so an agent must infer the boundary against analyze_loudness or check_target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_targetCheck audio against a loudness target (Spotify, EBU, etc.)A
Verify whether audio hits a delivery target (Spotify -14 LUFS / EBU broadcast -23 / podcast -16 / etc.). Returns pass/fail with per-metric deltas and a concrete ffmpeg loudnorm command to fix if failing. Presets: spotify, apple-music, youtube, tidal, amazon-music, podcast, ebu-broadcast, atsc-broadcast; or target="custom" with lufs+tp. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| tp | No | ||
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| lufs | No | ||
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. | |
| target | Yes | Preset id or "custom". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the return content (pass/fail with per-metric deltas and a fix command), the preset set, and the url-vs-path input modes. It omits auth/rate-limit or cost context, keeping it short of a 5.
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?
Front-loaded purpose in the first clause, then outputs, then presets, then source options — no filler. Dense but readable; the preset list is long yet functional.
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?
With no output schema, the description usefully explains the return shape and even the corrective ffmpeg command, and it covers target semantics. It leaves sibling routing and the missing 40% of parameter docs unaddressed, so not fully complete.
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 60% and the description meaningfully compensates: it enumerates the valid preset ids and explains the custom path (target="custom" with lufs+tp), which the schema only gestures at with 'Preset id or "custom"'. The url/path exclusivity is also reinforced.
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?
States a specific verb and resource ('Verify whether audio hits a delivery target') with concrete scope (presets, LUFS values). However, it never differentiates itself from siblings like analyze_loudness or compare_loudness, which occupy adjacent territory in the same tool family.
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?
Usage context is implied by 'delivery target' and the preset list, so an agent can infer this is a compliance check versus a raw measurement. But there is no explicit when-to-use guidance or exclusion naming analyze_loudness or compare_loudness as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_loudnessCompare two tracks (A/B)A
Run loudness analysis on TWO sources and return both results for an A/B comparison: master vs reference, before vs after a fix, two encoders, two cuts. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| urlA | No | First source URL (e.g. master). Provide urlA or pathA. | |
| urlB | No | Second source URL (e.g. reference). Provide urlB or pathB. | |
| pathA | No | First source as a local file path. | |
| pathB | No | Second source as a local file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that both results are returned for comparison and that sources may be public https URLs or local file paths, but says nothing about pairing requirements, failure modes for mismatched formats, duration limits, or permissions.
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?
Front-loaded with the core action and scope, followed by compact scenario examples and an input-format note. The trailing fragment ('Audio source: ...') is slightly clipped but short and load-bearing.
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 4-param tool with no output schema and no annotations, the description covers purpose, scope, and input forms adequately, and notes that both results are returned. It leaves ambiguous whether the A/B pairs are strictly required and how the pairing of url/path variants is enforced.
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 already 100%, so the baseline is 3, but the description adds a genuine constraint beyond the schema: the URL must be a *public https* URL, whereas the schema only declares format=uri. The urlA/urlB vs pathA/pathB pairing is also hinted at.
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?
States a specific verb+resource ('Run loudness analysis on TWO sources') and makes the two-source/A-B scope explicit with named scenarios, which readily separates it from the single-source analyze_loudness sibling. It stops short of naming that sibling directly, so differentiation is inferred rather than stated.
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?
Gives concrete use contexts (master vs reference, before vs after a fix, two encoders, two cuts) that tell an agent when this tool is the right choice. There are no exclusions or explicit when-not-to-use conditions, and no mention of the single-source alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spectrumFFT spectrum dataA
Frequency-domain magnitude data (paired frequency/magnitude arrays) plus energies in 7 standard bands (sub/bass/lowMid/mid/highMid/presence/air). There is no dominant-band field in the response. For spectrum-analyzer UIs and tonal-balance analysis. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does more than most: it describes the response shape and explicitly warns that a commonly expected field (dominant band) is absent, which prevents downstream hallucination. It still omits cost/latency, auth requirements, and whether this is a non-destructive read, so it is not fully transparent.
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 with no filler, and the most decision-relevant information (what the payload contains) is front-loaded. The input-source sentence at the end duplicates the schema, but the overall length is proportionate to the tool's complexity.
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?
There is no output schema, and the description compensates well by enumerating the return contents (paired arrays, seven bands) and one notable absence. Authorization, cost, and latency remain unstated for an annotation-free tool, but the largest gap, the response shape, is covered.
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 100%; both parameters already document the URL vs. local path choice, the exactly-one requirement, and the 4 MB inline / 150 MB signed-URL limits. The description only restates the source options, adding no syntax or format detail beyond the schema, so the baseline 3 is correct.
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 states exactly what the tool produces: frequency-domain magnitude data as paired frequency/magnitude arrays, plus energies in seven named bands. This clearly separates it from loudness- and timeseries-oriented siblings, though it never names an alternative tool. The negative disclosure ('no dominant-band field') sharpens the identity further.
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?
'For spectrum-analyzer UIs and tonal-balance analysis' gives implied usage context but no explicit when-to-use/when-not-to-use rules. Across nine sibling analysis tools it never says when get_spectrum is preferred over analyze_loudness or analyze_timeseries. The context is real but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_speech_segmentsSpeech segments (VoiceLab)A
List voiced speech regions with start/end timestamps and per-segment RMS. For auto-trim, chapter generation, and speaker-turn detection. RMS-based voice-activity detection, not speaker diarization. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does well: it discloses the detection method (RMS-based voice-activity, not diarization) and the return contents. It omits auth requirements, failure modes for non-speech audio, and rate/size limits beyond what the schema already states.
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 compact sentences; result description and use cases are front-loaded, with the scope caveat and input options following. No filler.
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?
With no output schema, the description correctly specifies returns (timestamps and per-segment RMS), and it covers inputs and the diarization exclusion. Missing only minor operational detail such as error behavior on silent input.
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 schema already documents both url and path in full detail, including the mutually-exclusive constraint and inline/upload size thresholds. The description only restates the source options ('public https URL, or a local file path'), adding no syntax beyond the schema. Baseline 3 applies.
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?
States a specific verb+resource ('List voiced speech regions') and enumerates the output (start/end timestamps, per-segment RMS), plus explicitly distinguishes itself from speaker diarization. An agent can tell it apart from analyze_voice and similar siblings without opening a schema.
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?
Names concrete use cases ('auto-trim, chapter generation, speaker-turn detection') and an exclusion ('not speaker diarization'), which is strong context. It doesn't name a sibling alternative to use instead, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_signalIndex a signal (SignalLab)A
A metadata index for any audio file: content-type guess (voice/music/mixed/noise/silence) with confidence, brightness & dynamics buckets, dominant band, clipping/silence regions, and tag suggestions. For triage or auto-tagging a library. Audio source: a public https URL, or a local file path (path).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL to the audio file. Provide exactly one of url or path. | |
| path | No | Path to a LOCAL audio file on this machine, analysed without hosting it publicly (files up to 4 MB are sent inline; larger ones up to 150 MB upload over a signed URL). Provide exactly one of url or path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the nature of the result (a non-destructive summary index) and lists the derived buckets, which is genuinely useful, but it says nothing about processing cost, latency, rate limits, or whether remote fetching has side effects. It adds context but leaves real operational traits unstated.
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, front-loaded with what the tool produces before the usage note and input summary. Slight redundancy in re-listing the audio source, which the schema already covers, keeps it from a 5.
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?
There is no output schema, so the description must describe return values, and it does so thoroughly with the enumerated buckets and tag suggestions. What it omits — latency, remote-fetch behavior, failure modes — is minor for a local metadata-indexing tool with no annotations.
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% and both parameters are fully documented in the schema, including the 'exactly one of url or path' constraint and inline-vs-signed-URL size limits. The description only restates the source options, adding no syntax or format detail beyond the schema. Baseline 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?
States a specific resource ('metadata index for any audio file') and enumerates the concrete outputs (content-type guess with confidence, brightness/dynamics buckets, dominant band, clipping/silence regions, tag suggestions), which lets an agent separate it from siblings like analyze_loudness or get_spectrum. It does not explicitly name the siblings it is not, so it stops short of a 5.
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?
'For triage or auto-tagging a library' implies the use case but gives no when-not guidance and never references the alternative tools in the sibling set. The agent must infer that this is the broad triage tool rather than a targeted analysis tool.
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.
10 tool updates
- First observed
analyze_batch - First observed
analyze_loudness - First observed
analyze_profile - First observed
analyze_timeseries - First observed
analyze_voice - First observed
check_target - First observed
compare_loudness - First observed
get_spectrum - First observed
get_speech_segments - First observed
index_signal
This server cannot be deployed
TDQS
Scored across 10 tools
Most tools target a distinct analysis lens (loudness, spectrum, voice, segments, index), but analyze_profile is an umbrella that overlaps with analyze_voice, analyze_loudness, and index_signal, and analyze_timeseries sits close to analyze_loudness. Descriptions largely disambiguate by scoping each to a specific output, so confusion is limited to a couple of pairs.
All ten tools follow a consistent snake_case verb_noun pattern (analyze_loudness, check_target, get_spectrum, compare_loudness, index_signal, analyze_batch). No mixed conventions or stylistic outliers.
Ten tools is well within the sweet spot and each earns its place: distinct analysis lenses, a target checker, a comparator, and a batch runner. Nothing feels redundant or thin.
The surface covers the core audio-QA lifecycle: measurement (loudness, spectrum, timeseries), voice QA, indexing, target verification, comparison, and batch runs. Minor gaps like no dedicated silence/clipping-region extractor or format/provenance-specific operation are largely absorbed by analyze_profile and index_signal.
Related MCP Connectors
AI-manageable audio CDN: upload, transcode, normalize, stream & deliver audio, plus grounded docs.
AI transcription API: turn voice memos, meetings and audio URLs into text and SRT subtitles.
Audio and video tools for your AI assistant: remove noise, enhance voices, transcribe, and more.
- mozonicOAuthcom.mozonic
AI mixing and mastering: analyze your mixes, run DSP autofix, render stems, and master tracks.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables audio file analysis using Google's Gemini multimodal models with support for additional context and system instructions to guide the model's behavior.1-
- 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.14-
- FlicenseNot gradedqualityBmaintenanceAnalyzes audio files to extract exact, reproducible measurements like loudness, tempo, key, spectral balance, and clipping for LLM-based DAW control.-
- AlicenseNot gradedqualityDmaintenanceEnables 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