Skip to main content
Glama
Echoteka

Echoteka MCP

Official
by Echoteka

echoteka-mcp: AI audio mastering for your assistant

Echoteka runs a remote Model Context Protocol (MCP) server. Connect it to Claude, Cursor, OpenAI Codex or any MCP client, and the assistant can measure a track's loudness, clean the marks an AI generator leaves in the audio, compare presets by ear and master the track to a streaming target.

Nothing has to be installed for the hosted server. This package is a small stdio bridge for clients that cannot speak HTTP, and it reaches the same server.

Connect

Claude Code

claude mcp add --transport http echoteka https://echoteka.ai/mcp

Claude Desktop

Option A, custom connector: open Settings, then Connectors, choose Add custom connector and paste https://echoteka.ai/mcp.

Option B, config file (claude_desktop_config.json), for versions that only accept local servers:

{
  "mcpServers": {
    "echoteka": {
      "command": "npx",
      "args": ["-y", "echoteka-mcp"]
    }
  }
}

Restart the app after editing the file.

Cursor

Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json inside a project:

{
  "mcpServers": {
    "echoteka": {
      "url": "https://echoteka.ai/mcp"
    }
  }
}

OpenAI Codex

codex mcp add echoteka --url https://echoteka.ai/mcp

Or add this to ~/.codex/config.toml:

[mcp_servers.echoteka]
url = "https://echoteka.ai/mcp"

Any other stdio client

{
  "mcpServers": {
    "echoteka": {
      "command": "npx",
      "args": ["-y", "echoteka-mcp"]
    }
  }
}

Using your account's masters

The anonymous endpoint is enough to try everything. To use the masters of your own Echoteka account, connect to the sign-in endpoint instead. The client opens an Echoteka page in your browser, you sign in and press Allow, and the assistant receives a token limited to mastering. It never sees your password.

  • Remote clients: use https://echoteka.ai/mcp/oauth as the URL, for example claude mcp add --transport http echoteka https://echoteka.ai/mcp/oauth.

  • This package: set ECHOTEKA_MCP_URL=https://echoteka.ai/mcp/oauth in the environment of the process that starts it.

Related MCP server: audio-mastering-mcp

Tools

The live tools/list response of https://echoteka.ai/mcp (checked 14 October 2026) contains nine tools:

Tool

What it does

Cost

get_service_info

What Echoteka does, what is free, where the rules are. Call once at the start.

free

list_presets

Mastering presets with their target loudness in LUFS.

free

check_limits

Free masters left today, when they reset, credit balance, upload limit.

free

analyze_track

Integrated LUFS, sample peak, duration, sample rate, stereo correlation. No processing.

free

clean_ai_trace

Removes marks an AI generator leaves in the audio, such as narrow tones above 15 kHz and seams between generated blocks. Loudness and tone stay as they are.

free, no credit

preview_styles

Masters 24 seconds of a track in 2 to 6 presets and returns each loudness and a listen link.

free, 6 per day

master_track

Masters one track to a preset and target, returns a job id. dry_run shows what would be used first.

free daily master, then credits

batch_master

Masters up to 10 tracks with the same settings. Album mode keeps the loudness balance between tracks.

one free run or a credit per track

get_job

Status and result of a job: loudness, true peak, loudness range, and a signed download link.

free

Typical flow: check_limits → analyze_track → clean_ai_trace (optional, for AI-generated tracks) → preview_styles → master_track → poll get_job.

Audio is passed as a public https link. Echoteka fetches the file from the link; the assistant never uploads bytes through the protocol. Share links from Suno song pages, Google Drive and Dropbox are resolved to the file when possible.

Pricing

  • Analysis, artifact cleanup, previews and job status are free.

  • One full master per day is free, with no account.

  • Signing in adds a few welcome masters and a free master per day.

  • Extra masters use credits. Credits are bought by a person on the website; the server has no payment tool and an assistant cannot pay.

Current details and prices: https://echoteka.ai/pricing.

Honest limits

  • Cleanup removes artifacts a generator leaves in the audio. It does not change where a track came from. If a platform or distributor asks you to disclose AI use, disclose it.

  • Mastering is not mixing. It cannot fix a vocal that sits too low or a muddy mix.

  • Free masters are not stored for long. Download the result when the job is done.

Configuration

Variable

Default

Purpose

ECHOTEKA_MCP_URL

https://echoteka.ai/mcp

Server the bridge connects to. Use https://echoteka.ai/mcp/oauth for sign-in.

The bridge needs Node.js 18 or newer and outbound HTTPS access to echoteka.ai.

Docker

docker build -t echoteka-mcp .
docker run -i --rm echoteka-mcp

The image contains only the bridge. The server itself stays hosted at https://echoteka.ai/mcp.

Privacy and terms

Support

Email support@echoteka.ai, or open an issue in this repository.

License

MIT. See LICENSE. Copyright (c) 2026 Echoteka.

Available Tools

9 tools
analyze_trackAnalyze a trackA
Read-only

Measure integrated LUFS, sample peak, duration, sample rate and stereo correlation without processing. Free, a couple of seconds. Run this before choosing a preset. Note: true peak and loudness range are NOT part of this fast pass — they are measured on the result and come back from get_job.

ParametersJSON Schema
NameRequiredDescriptionDefault
audio_urlYesPublic https URL of the audio file (wav/mp3/flac/m4a). A share link to the page works too — Suno/Udio song pages, Google Drive and Dropbox links are resolved to the file automatically.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lufsNo
channelsNo
peak_dbfsNo
sample_rateNo
duration_secNo
true_peak_dbNonull in the fast pass; see get_job for the measured value
genre_suggestionNo
stereo_correlationNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive), and the description adds real value beyond them: no processing, fast/cheap, and critically what is NOT measured (true peak, loudness range) with a pointer to get_job. That negative scoping is genuinely useful behavioral disclosure.

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?

Four tight sentences, front-loaded with the measurement scope followed by cost/workflow and the negative note. Every sentence earns its place; no filler.

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

Completeness5/5

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

An output schema exists, so return values need not be re-explained, and the description covers what is measured, latency/cost, when to invoke, and the true-peak/loudness-range exclusion. Nothing an agent needs to call it correctly is missing.

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?

Only one parameter, and the schema description coverage is 100% with a detailed audio_url description covering formats and share-link resolution. The description adds nothing about the parameter, so the baseline 3 applies — the schema does all the work here.

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?

States a specific verb (Measure) and resource (track) and enumerates the exact metrics returned: integrated LUFS, sample peak, duration, sample rate, stereo correlation. The explicit contrast with processing-oriented siblings like master_track ('without processing') lets an agent route correctly without opening schemas.

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?

Gives clear workflow context — run this before choosing a preset — plus cost/latency signals ('Free, a couple of seconds'). It also diverts the agent for true peak/loudness range to get_job. It does not explicitly name master_track as the alternative step, keeping it from a perfect score.

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

batch_masterMaster an album or a batchA

Master up to 10 tracks in one call with the same settings. Needs N CREDITS for N tracks, or N free runs - not one. album_mode (default true) levels the tracks RELATIVE to each other: the loudest hits the target exactly, the others keep their offsets, so a quiet interlude is not inflated to single level. Limits: 10 tracks, 100 MB per file and 300 MB per call (this server's own caps, for memory). A big album takes minutes - send fewer, longer tracks per call rather than all at once. Returns one job id per track - poll each with get_job. Pass dry_run=true to see what would be used and the settings before anything is spent.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoPreset key from list_presets.
bitrateNoMP3: 128/192/256/320; OPUS: 128/192.
dry_runNoReport what would be used and the settings without mastering and without downloading anything.
album_modeNoKeep relative loudness between tracks. Default true. Set false for unrelated singles.
audio_urlsYesPublic https URLs, in album order.
out_formatNo
target_lufsNoTarget for the LOUDEST track in album mode.
remove_watermarkNoAlso run AI artifact cleanup first. Free.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobsNo
tracksNojob_id, filename, source_url, target_lufs and album_lufs_offset as APPLIED by the server
dry_runNo
job_idsNo
poll_withNo
would_chargeNo
enough_capacityNo
nothing_was_chargedNo
album_mode_requestedNo
album_offsets_appliedNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false, openWorld=true. The description adds cost modeling (N credits for N tracks, not one, or N free runs), resource caps (10 tracks, 100 MB/file, 300 MB/call) attributed to server memory, runtime expectations ('takes minutes'), return shape (one job id per track), and the dry_run escape hatch. This is rich behavioral context well beyond the annotations.

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?

Front-loaded with purpose, then cost, then the highest-value semantic (album_mode), then limits and workflow. Every sentence carries information, though the batching advice and repeated target_lufs phrasing make it slightly longer than necessary.

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

Completeness5/5

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

An output schema exists and annotations carry the safety profile, yet the description still supplies the polling workflow (get_job per job id), cost, caps, and timing needed to call this batch mutation correctly. Nothing an agent needs is missing.

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 88%, so baseline is 3, but the description adds real meaning: album_mode is explained with the relative-leveling behavior ('the loudest hits the target exactly, the others keep their offsets, so a quiet interlude is not inflated'), and credits are tied to audio_urls count. Other params (style, bitrate, out_format) are left entirely to the schema.

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?

States a specific verb and resource with scope: 'Master up to 10 tracks in one call with the same settings.' An agent can distinguish it from the sibling master_track (single) purely from the description.

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?

Gives clear context for use: batching up to 10 tracks sharing settings, album vs unrelated singles via album_mode, and routes polling to get_job and previewing to dry_run. It never explicitly names master_track as the single-track alternative, so routing between the two is inferred rather than stated.

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

check_limitsCheck quota and balanceA
Read-only

What this caller may do right now: free master left today and when it resets, credit balance, upload cap, whether advanced modules are available. Call before mastering.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
freeNo
max_upload_mbNo
can_master_nowNo
tokens_balanceNo
max_upload_mb_via_mcpNoeffective per-file ceiling for THIS channel
result_retention_daysNo
max_batch_total_mb_via_mcpNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnly/destructive/openWorld, so the safety profile is covered. The description adds real behavioral context beyond them: the response is a point-in-time entitlement snapshot ("right now") and includes a reset schedule, which tells the agent the values are time-boxed and may need re-checking.

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 dense sentence pair: contents first, then the call-to-action ("Call before mastering"). No filler, no 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?

With zero parameters, an output schema documenting the return shape, and annotations covering the safety profile, the description only needs to convey purpose and timing — which it does. It could note rate-limit or caching behavior for a quota check, but nothing essential is missing.

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?

The tool takes no parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The "this caller" phrasing usefully confirms the implicit scoping that no argument is needed.

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 states a specific scope ("what this caller may do right now") and enumerates exactly what is returned: masters left today and reset time, credit balance, upload cap, and advanced-module availability. This cleanly separates it from siblings like get_service_info (service capabilities) and get_job (job status).

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?

"Call before mastering" gives an explicit pre-condition for use, which is genuinely actionable. It stops short of naming when-not to call or pointing at alternatives, but the trigger condition is unambiguous.

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

clean_ai_traceClean AI generator artifactsA

Remove the marks an AI generator leaves in the audio (narrow tones above 15 kHz, level jumps at block seams, fixed spectral peaks); loudness and tone stay as they are. It does not hide that a track is AI-made - disclose AI use wherever a platform asks. Free, never spends a credit. Returns a job id - poll get_job.

ParametersJSON Schema
NameRequiredDescriptionDefault
audio_urlYesPublic https URL of the audio file (wav/mp3/flac/m4a). A share link to the page works too — Suno/Udio song pages, Google Drive and Dropbox links are resolved to the file automatically.
out_formatNo
sensitivityNo0-1, default server-side.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description adds genuinely new behavior: the no-credit cost model, the guarantee that loudness/tone are untouched, and the asynchronous job-id/polling contract. It does not discuss failure modes or what sensitivity changes, 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.

Conciseness4/5

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

Front-loaded with the core action and no filler sentences; each clause (what is removed, what is preserved, cost, follow-up) carries information. The parenthetical artifact list makes the middle dense, but nothing is wasted.

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 3-param async job tool with annotations and an output schema, the description covers scope, cost, preservation guarantees, ethical caveat and the polling handoff. Remaining gaps are the undocumented out_format/sensitivity parameters, which the output schema cannot cover.

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 67%: audio_url is well documented and enriched with share-link resolution behavior, but out_format (enum) and sensitivity ('0-1, default server-side') are undocumented. The description adds no parameter-level detail to compensate, so it sits at the baseline.

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?

States a specific verb and resource ('remove the marks an AI generator leaves in the audio') and enumerates exactly what those marks are (narrow tones above 15 kHz, level jumps at block seams, fixed spectral peaks). An agent can distinguish this from analyze_track or master_track 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.

Usage Guidelines4/5

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

Gives clear operating context: it preserves loudness and tone, it does not conceal AI provenance, it never spends a credit, and the result must be polled via get_job. It stops short of explicitly naming when to choose this over a sibling like master_track, so it is context-rich but not fully routed.

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

get_jobGet job statusA
Read-only

Status, progress and result metrics (after_lufs, true_peak_db, lra, platform_ready) for a mastering, cleanup or preview job. For previews it returns each style with its loudness and a listen link. When a master is done it also returns download_url - a signed link that works without credentials for about an hour. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob id returned by master_track, clean_ai_trace or preview_styles; batch_master returns one per track in job_ids. Not a URL or a filename: 1-64 chars of A-Z a-z 0-9 _ -

Output Schema

ParametersJSON Schema
NameRequiredDescription
lraNo
errorNo
statusNo
progressNo
after_lufsNo
result_urlNo
download_urlNosigned, ~1 h, works without credentials
true_peak_dbNo
platform_readyNo
download_url_expires_inNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-structured context: the download_url is a signed link that works without credentials and expires in about an hour, and the call is free. It does not discuss rate limits or behavior while a job is still running.

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 short sentences, front-loaded with the primary purpose, followed by the preview-specific return shape and the download-link caveat. The trailing 'Free.' is terse but carries real decision-relevant cost information, so no sentence is waste.

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

Completeness5/5

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

An output schema exists, so return values need not be re-explained, yet the description still flags the two things an agent would otherwise mis-handle: per-style preview results with listen links, and the signed, credential-free, time-limited download_url. With a fully documented single parameter and annotations covering safety, nothing material is missing.

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% and the single job_id parameter already documents its format, pattern and provenance (master_track, clean_ai_trace, preview_styles, batch_master job_ids). The description adds nothing about the parameter, so the baseline 3 applies.

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?

States a specific verb+resource (get job status/progress/result metrics) and enumerates the exact metrics returned (after_lufs, true_peak_db, lra, platform_ready). It also scopes which job types it applies to (mastering, cleanup, preview), which cleanly separates it from siblings like check_limits or get_service_info.

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?

Usage is only implied: the agent must infer that this is the polling tool to call after master_track, clean_ai_trace or preview_styles. There is no explicit when-to-use, when-not-to-use, or statement of how long to wait between polls, though the sibling set makes the routing reasonably obvious.

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

get_service_infoService infoA
Read-only

What Echoteka does, what is free, what a credit buys, and where the rules live. Call once at the start of a session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it should be called once per session, implying the result is stable and repeated calls are wasteful. Return format is left to the output schema, which exists.

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?

Two short sentences, no filler. The content scope comes first and the call cadence second, which is the right front-loading for an agent deciding whether to invoke.

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

Completeness5/5

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

An output schema exists, so return-value details need not be restated. The description covers what the tool provides, when to call it, and its read-only nature via annotations — nothing an agent needs to call this correctly is missing.

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?

The tool takes zero parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it correctly does not invent parameter guidance.

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 enumerates exactly what the tool returns — service overview, free tier, credit economics, and where the rules live — which is specific enough that an agent can distinguish it from every sibling (all of which are audio-processing tools). It stops short of a clean verb+resource phrasing, but the content list is unambiguous.

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?

"Call once at the start of a session" gives explicit timing and frequency guidance, which is exactly the when-to-use information an agent needs for an orientation tool. No alternatives are named, but none are needed since no sibling overlaps with this function.

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

list_presetsList mastering presetsA
Read-only

All mastering presets with their target loudness in LUFS. Call this to get the exact preset keys that master_track and batch_master accept. Use preview_styles instead when you want to HEAR 2-6 of them on the actual track before choosing, and get_service_info when you need the wider service manifest rather than the preset list. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
presetsYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that: it discloses that the tool is free and that its output is the authoritative source of preset keys. It stops short of anything else notable for a zero-side-effect list tool, which is acceptable here.

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?

Front-loaded with the resource and payload, then routing guidance, then a one-word cost note. Every clause carries selection-relevant information; nothing is redundant.

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

Completeness5/5

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

For a zero-parameter read-only list tool with an output schema and full annotation coverage, the description supplies everything an agent needs: what it returns, why to call it instead of neighbours, and when the alternatives are better.

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?

The schema has zero parameters, so per the baseline a 4 is appropriate. There is no parameter detail the description could add; the fields it mentions (preset keys, LUFS) describe output, which the output schema already covers.

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?

States a specific verb and resource ('List all mastering presets') plus the payload detail ('target loudness in LUFS'). It explicitly distinguishes itself from preview_styles and get_service_info, so an agent can identify it without opening the schema.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use rule ('Call this to get the exact preset keys that master_track and batch_master accept') and names both alternatives with the precise condition that selects each (preview_styles for hearing 2-6 on the track, get_service_info for the wider manifest).

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

master_trackMaster a trackA

Master one track. Uses 1 CREDIT when the account has a balance; otherwise it runs on the free quota (1 free master a day, without advanced modules). Returns a job id immediately - poll get_job (typical 20-60 s, up to 10 min with restoration). The source is fetched by this server, so the ceiling here is 100 MB per file. Pass dry_run=true first if you want to see what would be used and the effective settings before anything is spent.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoPreset key from list_presets, e.g. edm, hiphop, podcast, unlimiter. Default standard.
bitrateNoMP3: 128/192/256/320; OPUS: 128/192.
dry_runNoDo not master: report what this call would use and what settings would apply. Nothing is charged, the file is not even downloaded.
audio_urlYesPublic https URL of the audio file (wav/mp3/flac/m4a). A share link to the page works too — Suno/Udio song pages, Google Drive and Dropbox links are resolved to the file automatically.
intensityNoMultiplier on the preset's multiband compression: 1.0 as designed, 0.5 gentler, 1.5 denser. Values outside 0.5-1.5 are clamped.
out_formatNo
dither_typeNoDither for 16-bit WAV output: tpdf (default), ns_e or ns_itu (noise-shaped).
target_lufsNoOverride the preset target, e.g. -14 for Spotify.
webhook_urlNoPublic https URL to POST the result to instead of polling.
denoise_strengthNoNoise reduction, 0-1. 0 disables.
remove_watermarkNoAlso run AI artifact cleanup first. Free.
restore_dynamicsNoOpen up a brickwalled source before mastering (pairs with style unlimiter).

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idNo
dry_runNo
poll_withNo
would_chargeNo
tokens_balanceNo
nothing_was_chargedNo

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by disclosing the credit cost model, the free-quota fallback (1 free master/day without advanced modules), the 100 MB server-side fetch ceiling, and the asynchronous nature (job id returned, 20-60 s typical, up to 10 min with restoration). These are exactly the behavioral facts an agent needs before spending money.

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?

Five sentences with no filler, front-loaded on purpose and then cost, then the async/polling contract, then the size limit, then the dry_run recommendation. Every sentence carries information; the ordering is logical and easy to scan.

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

Completeness5/5

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

For a 12-parameter, paid, asynchronous tool with an output schema, the description covers the essentials an agent needs: billing behavior, quota fallback, source fetching and size cap, and the polling/return contract. The output schema carries the return shape, so nothing critical is missing.

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 92%, so the schema already documents nearly every parameter, including dry_run, intensity clamping, bitrate sets, and audio_url resolution. The description restates dry_run's no-charge behavior and adds the 100 MB ceiling, but contributes little parameter meaning the schema does not already carry. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb+resource ('Master one track') and immediately scopes it to a single track, which cleanly separates it from the batch_master sibling. The first sentence is enough for an agent to identify the operation without opening the schema.

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?

Gives clear workflow guidance: pass dry_run=true first to preview cost and settings, poll get_job after submitting, or supply webhook_url instead. It names the get_job sibling explicitly. It stops short of saying when to prefer batch_master or preview_styles over this tool, so it is clear context rather than a full alternative matrix.

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

preview_stylesCompare presets on 24 secondsA

Master the middle 24 s of the track in 2-6 presets at once and get each one's loudness plus a listen link. FREE (6 per day). Use this instead of guessing a preset, and instead of spending a credit to 'try' one.

ParametersJSON Schema
NameRequiredDescriptionDefault
stylesNoPreset keys from list_presets. Default: edm, pop, rnb, standard.
audio_urlYesPublic https URL of the audio file (wav/mp3/flac/m4a). A share link to the page works too — Suno/Udio song pages, Google Drive and Dropbox links are resolved to the file automatically.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idNo
stylesNo
poll_withNo
preview_url_templateNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the description carries real added weight: it discloses cost (FREE), a rate limit (6 per day), and what the preview actually renders (middle 24 s across 2-6 presets). It does not explain whether the call is synchronous or returns a job to poll, which is a gap given the presence of a get_job sibling.

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?

Two short sentences, front-loaded with the action and scope, with the cost/quota parenthetical and the anti-pattern guidance packed in without waste.

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?

An output schema exists so return values need no explanation, and the description covers cost, quota, scope and selection guidance. The only notable omission is the async/job semantics of the call, which matters for a tool family that includes get_job.

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% and both parameters are already documented in the schema, including the preset default and the accepted URL forms. The description's '2-6 presets' merely restates the minItems/maxItems bounds, so baseline 3 is appropriate.

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?

States a specific verb (master), a precisely scoped resource (the middle 24 s of the track), a count range (2-6 presets at once), and the outputs (per-preset loudness plus a listen link). An agent can immediately tell this apart from a full-length mastering sibling because the preview window and multi-preset compare are explicit.

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?

Gives a clear when-to-use rule: 'Use this instead of guessing a preset, and instead of spending a credit to try one,' which implicitly positions it against the paid mastering tools. It stops short of naming master_track/batch_master directly as the alternative, so the routing is clear but slightly inferential.

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. 9 tool updatesv0.1.0
    • First observedanalyze_track
    • First observedbatch_master
    • First observedcheck_limits
    • First observedclean_ai_trace
    • First observedget_job
    • First observedget_service_info
    • First observedlist_presets
    • First observedmaster_track
    • First observedpreview_styles

TDQS

A4.4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, and descriptions explicitly cross-reference near-neighbors (e.g. list_presets vs preview_styles vs get_service_info, analyze_track vs get_job metrics). master_track vs batch_master differ clearly by cardinality, and the info tools (get_service_info/check_limits/list_presets) are cleanly separated by scope. Little risk of misselection.

Naming Consistency5/5

All nine tools follow a consistent snake_case verb_noun pattern: get_service_info, list_presets, check_limits, analyze_track, master_track, batch_master, clean_ai_trace, preview_styles, get_job. No mixed conventions or casing. batch_master is the only slight variant but stays within the same readable pattern.

Tool Count5/5

Nine tools is well-scoped for an audio mastering service, with no redundant or filler entries. Each tool maps to a distinct step (orient, check limits, list presets, analyze, preview, master single/batch, clean, poll).

Completeness4/5

The surface covers the full mastering lifecycle: orientation, limits, presets, pre-analysis, preview, single/batch mastering, cleanup, and result retrieval. Minor gaps exist, such as no job cancellation or way to list/enumerate existing jobs (only get_job by id), but core workflows are fully supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers