
Audivo
io.github.AudivoDotDev由 GitHub 账号 AudivoDotDev 发布v0.4.2更新于 Oct 24, 2026
Podcast transcripts: send an episode link and get the transcript back, a page at a time.
概览
Audivo 把播客单集转成文字稿:助手可以搜索节目、转写单集,并逐页读取文字稿。
- 可以做什么
- 按名称、主持人或主题搜索节目,查看分类榜单,按最新优先列出节目单集
- 从链接、feed 与 guid、单集 id、上传文件或 YouTube 链接转写单集,并分页返回文字稿
- 为一批单集报价、确认报价,再跟踪任务组进度并取消尚未开始的任务
- 读取并列出最近的文字稿;本地版还可上传音频文件、搜索 YouTube
- 适用场景
- 适合让助手获取播客单集文本以便总结、引用或检索,或先估算成本再批量转写某个榜单或历史节目。
- 运行要求
- 可使用 api.audivo.dev 的托管端点(Streamable HTTP,OAuth 登录或 Bearer API 密钥),或用 npx 运行本地 npm 包,需要 Node.js 和 AUDIVO_API_KEY 环境变量。本地版的 YouTube 与文件输入需要 yt-dlp,缺失时首次调用会下载。需要带额度的 Audivo 账户。
安装
在 SourceWeft 中
- 打开 控制台中的 Audivo,将其添加到工作区。
- 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.AudivoDotDev%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。
{
"mcpServers": {
"audivo": {
"type": "http",
"url": "https://api.audivo.dev/mcp"
}
}
}README
Audivo MCP server
Podcast transcripts for Claude, ChatGPT, Codex, Cursor, and any other MCP client, backed by the Audivo API. Ask for an episode; get the transcript back.
Transcribe the latest episode of Acquired and summarise it.
Two ways to connect. The hosted endpoint serves eleven tools. The local server serves the same
eleven, with transcribe also taking a file on your machine or a YouTube link, plus upload_audio
and youtube_search. Both serve an app to clients that render MCP Apps.
Tools
transcribe
Pass one episode: an Apple Podcasts link, feed_url with guid, an episode_id from
list_episodes (with that show's feed_url and itunes_id, so an episode nobody has transcribed
yet can be found), or an upload_id — and on the local server, a YouTube link or an absolute
path.
- An episode that is already transcribed comes back at once.
- A fresh one becomes a job.
transcribewaits for it inside the call: up to 20 seconds on the hosted server, whose gateway allows 29, and 50 by default on the local one, which reports progress to clients that ask for it. If it is still running, the answer is thejob_idandread_transcriptwaits the rest. - The transcript comes a page at a time, about 40,000 characters each (roughly 50 minutes of speech). Each page names the exact call for the next one.
max_creditsrefuses the call, before anything is spent, if it could cost more. A job holds its ceiling (the estimate plus 25%) and settles at the audio it measured, never above.- The same call twice returns the same job, never a second charge: the idempotency key is derived from the request.
For many episodes at once — a chart, a back catalogue — use quote and then confirm, which
refuses unless the model restates the quote's total.
The app
Clients that render MCP Apps — ChatGPT, Claude, and others — show results in Audivo's own view instead of only text:
transcribeopens a transcript reader: the show and episode, its length, language and cost, then the transcript with timestamps, a search box, and more pages on demand. A job still running shows its progress and fills in when it finishes.list_transcriptsopens your library: recent transcripts to open in the reader, and a search that finds a show, lists its episodes, and transcribes one after you confirm its estimated cost. ChatGPT also puts the library in its sidebar and as a tab beside a conversation.
The app is one self-contained page served as ui://audivo/app-v1.html. It loads nothing from any
domain, so it declares none. Its data travels in each result's _meta, which hosts give the app and
never the model; the model keeps getting the same fenced text as before. Every title and transcript
line is rendered as text, never as markup. Clients without MCP Apps ignore all of this.
Its source is in ui/; npm run build:ui bundles it into src/app-html.ts, and a test fails when
the two disagree.
Local: run it with npx
You need an API key from the Audivo dashboard. Keys are shown once. Set the key in the environment the client starts the server with, then add the server.
Claude Code (or install the Audivo plugin, which adds this server and the skill together)
Codex
Cursor, Claude Desktop, Windsurf, and other JSON-configured clients
VS Code (.vscode/mcp.json)
Keep files that contain a real key out of Git and shared chats.
Updating
@latest makes npx look the package up on npm each time the client starts the server, so a new
release arrives with your next session. To get it in the session you are in, restart the server: in
Claude Code, /mcp, choose audivo, then Reconnect. A spec without @latest works too, but
a bare @audivo/mcp resolves to a copy in the current project first, when there is one. The hosted
server at https://api.audivo.dev/mcp is kept current by Audivo.
Environment
The server writes nothing to stdout except protocol messages. Log lines go to stderr as JSON, and the key never appears in them.
YouTube (local server only)
When a show has no public RSS feed — many exist only on YouTube — search_shows finds nothing.
On the local server, youtube_search finds the episode and transcribe takes its link:
Find the Costco episode of Acquired on YouTube and transcribe it
transcribe downloads the video's audio on your machine with yt-dlp,
audio only and with no transcoding, uploads it to Audivo as your own upload, and transcribes it. The
transcript is private to your account.
yt-dlp is found in this order: AUDIVO_YTDLP_PATH; a yt-dlp on your PATH; otherwise the project's
official standalone binary for your platform, downloaded once from its GitHub releases into your user
cache directory and checked against that release's SHA2-256SUMS before it is made executable. The
package has no install script: nothing is downloaded until the first YouTube call. A managed copy
that stops working is updated to the latest release once and the call retried; a yt-dlp you
installed yourself is never touched. yt-dlp is given the Node running this server as its JavaScript
runtime.
You run the download, on your machine, under your own account; you are responsible for having the rights to transcribe what you download, as with any upload. Audivo's servers never fetch from YouTube, which is why the hosted server does not offer any of this.
Upload your own audio
A recording you made, an interview, or any file you already have on disk:
Transcribe /Users/alex/Downloads/interview.m4a
transcribe with path announces the file to Audivo (its hash, size, content type, and duration),
uploads the bytes straight to Audivo's storage with the signed URL the announcement returns, and
transcribes it. upload_audio does only the first two steps and returns an upload_id, for when you
want to quote several uploads together. The path must be absolute.
Limits: 1 byte to 5 GiB, up to 10 hours, and one of these content types: audio/mpeg, audio/mp3,
audio/mp4, audio/m4a, audio/x-m4a, audio/aac, audio/x-aac, audio/ogg, audio/opus,
audio/flac, audio/x-flac, audio/wav, audio/x-wav, audio/webm. An upload is kept for 7
days, and its transcript is private to your account; each account may hold up to 10 GiB across 100
unexpired uploads at a time. See the uploads guide.
Hosted: point a client at the URL
Clients that support MCP authorization — Claude, ChatGPT, Claude Code, VS Code — need only the URL: they open an Audivo sign-in page, you approve the connection, and it appears under Connected apps in the dashboard, where you can revoke it. For example, in Claude Code:
For clients that take a fixed header instead, or for automation, send an API key:
Per-client instructions are in the connection guide. The hosted
server is this package's lambda export, deployed by Audivo.
How it works
- Stateless. Every tool call is one or a few typed calls on the public API with the caller's own credential. The server keeps no table, no cache, and no copy of a credential beyond the call in flight.
- Fenced. Show names, episode and video titles, descriptions, and transcript text are publisher-authored. Each reaches the model inside a fence marked as untrusted content, with a per-response nonce, so a podcast cannot smuggle instructions into a session.
- Bounded.
transcribespends within the job's ceiling and the caller'smax_credits;confirmcompares the total the model states with the total the quote carried and refuses on a mismatch without sending anything. The API applies both checks on its side too. - Typed by the contract.
src/contract/types.tsis generated from the published OpenAPI spec incontract/openapi.yaml; a test fails the build when the two drift. - Local only.
upload_audio,youtube_search, and the file and YouTube inputs oftranscriberun on your machine; the hosted server never sees your files and never fetches from third-party sites.
Development
To pick up a spec change: npm run contract:sync fetches the published spec and regenerates the
types. Run it locally against a key with:
Live reload in your MCP client
npm run dev:server runs src/ through tsx behind a small proxy that restarts the server on every
save, replays the client's handshake into the new process, and sends tools/list_changed. A
connected client uses your latest code with no build and no reconnect. A save that breaks startup
answers calls with an error, the details go to the client's MCP log, and the next save recovers. A
call still running when you save is sent again to the new code, except one that uploads audio (a
file or YouTube transcribe, or upload_audio): sent twice, that could be transcribed and charged
twice, so it finishes on the old code first.
To use it in Claude Code for this repository only, taking precedence over a user-wide audivo
server:
The absolute tsx path lets the client start it from any directory. A bare npx -y @audivo/mcp does
not work inside this repository — npm takes the checkout to be the package and finds no linked
audivo-mcp bin — which is one reason the configs above say @latest.
Releasing
Bump version in package.json, both version fields in server.json, and SERVER_INFO in
src/server.ts (a test fails until they agree), add a CHANGELOG.md entry, commit, then tag
v<version> and push the tag. The release workflow publishes to npm with provenance and lists the
release in the MCP Registry as
io.github.AudivoDotDev/mcp.
License
来源:README.md,提交 a65a30a
工具
0版本历史
2- v0.4.2最新Oct 2, 2026
- v0.3.0Sep 30, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分