/connect
Add AudioLab to any AI.
The same tools (loudness by EBU R128, true-peak, voice QA, spectrum, speech segments, target-check, A/B compare over MCP) in whatever you already use: Claude, ChatGPT, Gemini, Cursor, n8n, or your own code. The hosted /mcp endpoint and the npm package carry the same ten tools. One API key, one rate limit, the same rights everywhere. Your AI calls the hosted engine, so the proprietary engine never ships to you.
Live now: self-serve keys with a free tier. Grab a key below and wire it in today.
Quick install
Fastest path
Pick your client, paste your key, one click gets the config or opens the client directly. Prefer to do it by hand? The full per-client guide is below.
Step 1 · Your client
Step 2 · Your API key
Remembered on this device so you don’t paste it again. The snippets below are built in your browser; the key only leaves it if you upload a file in step 04.
Step 3 · One click
Detailed setup
Full reference
The full picture: which surface each client uses, how to get a key, and a walkthrough for every client. The quick wizard above already covers the common ones in three clicks.
Two protocols cover everything. MCP for AI clients (a local package for apps that run a subprocess, a hosted /mcp URL for the ones that don't), and plain REST for your own code.
| Client | How | Talks to |
|---|---|---|
| Claude Desktop / Claude Code | Plugin, or local MCP (stdio) | npm package |
| OpenAI API (Responses) | mcp tool | /mcp (remote) |
| ChatGPT (Custom GPT) | Actions from OpenAPI | REST /v1 |
| Google Gemini | SDK (stdio) or hosted MCP | npm package or /mcp |
| Cursor / Windsurf / VS Code | Local MCP (stdio) | npm package |
| n8n | MCP Client node (HTTP) | /mcp (remote) |
| Your own agent | REST or the AI SDK | REST /v1 |
Every route needs one API key. It is the rights boundary: an MCP call and a curl call with the same key get the same tools, the same per-minute limit of your plan, and the same fetch protection. Sign in and generate one from your account, free tier included.
One command adds the skill and the MCP server, and prompts for your key:
/plugin marketplace add Audio-Launch/audiolab-claude-plugin
/plugin install audiolab@audiolab-tools Or configure MCP by hand in any Claude client and restart:
{
"mcpServers": {
"audiolab": {
"command": "npx",
"args": ["-y", "@audiolabtools/mcp-server"],
"env": { "AUDIOLAB_API_KEY": "your_key_here" }
}
}
} OpenAI can’t run a local package. Two ways in: the hosted /mcp endpoint from the API, or a Custom GPT over REST.
A. OpenAI API (Responses)
# tools=[{
# "type": "mcp",
# "server_label": "audiolab",
# "server_url": "https://audiolab.tools/mcp",
# "headers": {"Authorization": "Bearer YOUR_AUDIOLAB_KEY"},
# "require_approval": "never"
# }] B. Custom GPT (no MCP)
In the GPT editor: Actions → Import from URL → https://audiolab.tools/openapi.yaml, then Authentication: API Key, Bearer. This exposes the REST tools directly. (A/B compare is MCP-only; run two analyze calls instead.)
A Custom GPT sends JSON, not file uploads, so give it a public url to the audio rather than the file itself. Every analyze route accepts both; the multipart half is for your own code. To check the wiring right after importing, ask it to analyze https://audiolab.tools/reference/is-original.mp3.
No public URL? Put one here.
Paste your key in step 02, then drop an audio file. It goes straight to our storage, never through the GPT, and you get back a path to hand the GPT in place of a url. It is a storage path and not a link, so a browser cannot open it; your GPT can, because it knows the objectPath field. Up to 150 MB, so a 24-bit master fits, readable for about an hour, and only by that same key.
There is a clock on this one. OpenAI is retiring custom GPTs on 11 December 2026. Until then the route above works as described. Migrating a GPT to a plugin does not carry its actions over, and a plugin that brings its own MCP server is marked desktop-only, so this particular web route ends with the GPT. Route A above, the hosted /mcp endpoint from the OpenAI API, is unaffected, and so is every other client on this page. Checked against OpenAI’s retirement FAQ on 22 September 2026.
Not a route: a ChatGPT Developer Mode connector. It accepts OAuth or no authentication, not an API key, so it cannot send your AudioLab key to /mcp.
The google-genai SDK spawns the local package as a subprocess, so nothing new is needed:
params = StdioServerParameters(
command="npx", args=["-y", "@audiolabtools/mcp-server"],
env={"AUDIOLAB_API_KEY": "your_key_here"})
# async with stdio_client(params) as (r, w):
# async with ClientSession(r, w) as session:
# await session.initialize()
# config = GenerateContentConfig(tools=[session]) Gemini’s hosted MCP mode (2.5-class models) can also point at https://audiolab.tools/mcp with a Bearer header, and plain function-calling can be built from the OpenAPI spec.
All run the local package over stdio. Cursor uses ~/.cursor/mcp.json:
{
"mcpServers": {
"audiolab": {
"command": "npx",
"args": ["-y", "@audiolabtools/mcp-server"],
"env": { "AUDIOLAB_API_KEY": "your_key_here" }
}
}
} Windsurf uses the same shape. VS Code uses .vscode/mcp.json with "type": "stdio" and the same command.
Anything that speaks remote MCP points at one URL. In n8n: an MCP Client node, HTTP Streamable transport, URL https://audiolab.tools/mcp, header Authorization: Bearer your_key.
The universal rule for any MCP client: Streamable HTTP transport, Bearer key in the Authorization header. That is all the endpoint needs.
No MCP, no framework. The tools are a plain REST call:
curl https://audiolab.tools/v1/mixlab/analyze \
-H "Authorization: Bearer $AUDIOLAB_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/track.wav"}' Full reference and a no-key browser playground on the /api page. The @audiolabtools/ai-sdk provider wires eight of these routes into a Vercel AI SDK agent; profiles and batching stay on REST and MCP.
MCP and REST send the audio to the hosted API in the EU for decoding and measuring, so it crosses the network: a URL is fetched by the API, and a local file (a path given to the npm package, or a file you upload on this page) is uploaded to it. Only numbers come back. The package runs on your machine but does not measure there, and there is no offline version. A direct request is discarded inside the request; an uploaded file is swept from storage within the hour. For strictly on-device analysis, use the in-browser labs, which measure on your device (HearLab’s live captions are the one exception). See privacy.