Barevalue MCP server
[Barevalue]
Barevalue edits podcast audio. Your agent hands over a raw recording and gets back a finished episode, with noise and levels fixed and filler words and dead air removed, plus a transcript, show notes and highlight clips for longer episodes.
One call to sign up, no sign-in, 10 free hours of editing a month, delivered at up to 320 kbps or lossless. No payment details, and the agent does not operate an editor.
Streamable HTTP, nothing to install, no key needed to connect. The agent calls barevalue_register with your email address and gets a key in that one call.
Install
There are two addresses for the same server. https://barevalue.com/mcp is open: the agent registers itself and holds its own key. https://barevalue.com/mcp/connect asks you to sign in to your Barevalue account in a browser first, which is what the Claude and ChatGPT connector screens expect.
The Claude Code plugin line needs Claude Code 2.1.275 or later. On an earlier version, run claude plugin marketplace add barevalue-ai/barevalue-mcp and then claude plugin install barevalue@barevalue. The plugin adds the hosted server and the skill in skills/barevalue-podcast-editing, which teaches an agent the order of calls and what to do when one is refused. This repository is also a Cursor plugin (.cursor-plugin/plugin.json).
Cursor also takes an install link: cursor://anysphere.cursor-deeplink/mcp/install?name=barevalue&config=eyJ1cmwiOiJodHRwczovL2JhcmV2YWx1ZS5jb20vbWNwIn0=
The npm bridge, for a recording on your own machine
The hosted server takes a recording by link. For a file on disk it returns a curl command for the agent to run. The npm package barevalue-mcp does that step itself: barevalue_upload takes the path and sends the file.
The package is a bridge to the hosted server. Its tools come from the service (asked for when a client lists them, kept for five minutes), so they are always the current ones.
Claude Code:
Or in any MCP client's configuration:
Node 18 or later.
API key
If your email address has no Barevalue account yet, you do not need one to start. The agent calls barevalue_register with the address and gets a key in that one call, which this server keeps for the rest of the session. You get an email with a link: until you click it the account can edit 30 minutes, after it 10 hours a month.
If the address already has an account, barevalue_register is refused and you make the key yourself (Settings, API Keys on barevalue.com). Set it and the tools stop asking for one:
What to say
Edit the podcast episode at ~/recordings/ep42.wav with Barevalue. The show is "Tech Talk", the episode is "AI in 2026". Remove the sponsor read at the start.
The agent will:
- Upload the file (
barevalue_upload)
- Order the edit (
barevalue_submit_url)
- Check on it every minute or so until it is done (
barevalue_status), usually 5 to 15 minutes
- Give you the download links, and the show notes and transcript as text (
barevalue_content)
- Ask whether you are happy with it and pass that on (
barevalue_feedback), or have it edited again with your notes (barevalue_request_revision)
Tools
The list comes from the service, so tools/list is the authority. Today:
Limits
- Audio only. One file per order, with one audio track, up to 60 minutes and 750 MB
- MP3, WAV, M4A, FLAC, AAC, OGG, Opus, WMA and AIFF
- The free plan edits one order at a time and 120 minutes in any 5 hours
- An uploaded file can be ordered once, within 2 hours of the upload
Changes in 1.4.0
- The tools now come from the hosted server.
barevalue_submit (with order_id), the webhook tools and human editing are gone: the service retired them
barevalue_upload uses the new upload flow and returns an upload_id for barevalue_submit_url
BAREVALUE_API_KEY is optional
BAREVALUE_API_URL is no longer read
- With
BAREVALUE_API_KEY set, that key is the only one used: an api_key passed to a tool is ignored and barevalue_register does not replace it
barevalue_upload sends audio files only (by the real file's extension) and no call follows a redirect
Changes in 1.4.1
- A
BAREVALUE_API_KEY that cannot be a key (empty quotes, two layers of quotes, a quote that is not closed) stops the server at startup with one line that says how to set it. Before, the first ran without a key and the others got a 401 on every call
- When the service refuses the key in
BAREVALUE_API_KEY (revoked, expired, mistyped), the answer now says so and what to do: set a working key or remove the variable, then restart. That key is still the only one used. A key the session got from barevalue_register and that is later refused is dropped, so a working key can be passed as api_key (registering the same address again is refused: it has an account by then)
barevalue_upload sends the file only to Barevalue's own storage host. Any other upload address is refused before a byte is sent
- A long upload reports progress to a client that asks for it (a progress token on the call), about once a second
- Cancelling the call stops the upload, and so does the client going away. The same file asked for again reuses the upload it had been given, so retries do not use up the account's unordered uploads
- A second
barevalue_upload call for a file that is still on its way joins that upload and returns the same upload_id, in place of sending the file twice
- A streamed answer from the service is read correctly when it carries other messages or stays open after the answer
barevalue_upload opens the file once and sends what it checked, so a file swapped in afterwards is not sent. A file with more than one name on disk (a hard link) is refused: copy it and upload the copy. A file the program may not read is refused in plain words
Changes in 1.4.2
- An upload no longer waits for ever when storage sends the start of an answer and then drops the connection. The call is answered with the reason, the file is closed, and the same file asked for again goes to the upload it had been given. An upload that goes quiet for 120 seconds is stopped the same way. A yes from storage that comes before the whole file was sent no longer counts as an upload
barevalue_submit_url sends an idempotency key. An order that got no answer (a timeout, a broken connection) and is asked for again with the same arguments within 30 minutes goes out with the same key, so it is not placed twice. The timeout message says so. When the answer is that earlier order, it says so and what became of it. If it failed, the same call once more places a new order. If it is being edited or done, the same call keeps giving that order, and a second order of the same recording takes an idempotency_key of your own. An idempotency_key you pass yourself is sent as given
barevalue_upload lists api_key like the other tools while the session has no key. It always took one
- The texts about
barevalue_register no longer promise a key to an address that already has an account: that call is refused, and the key comes from Settings, API Keys
Changes in 1.4.3
- The program is the same as 1.4.2. On the service's side, a file longer than 60 minutes is now refused before any editing and uses none of the allowance. Before, one could be accepted and fail part-way
- The package now names its repository,
barevalue-ai/barevalue-mcp, and this page leads with the hosted server and how to add it to each client
- The repository is a Claude Code plugin and a Cursor plugin, and the skill names the second address,
https://barevalue.com/mcp/connect
Development
Support
[email protected], the developer page or the API documentation, which is also plain markdown at https://barevalue.com/llms-full.txt.
License
MIT