Server data from the Official MCP Registry
Transcribe audio/video and find dead air. Pay-per-call in USDC over x402 — no account, no key.
About
Transcribe audio/video and find dead air. Pay-per-call in USDC over x402 — no account, no key.
Security Report
This is a well-designed MCP server for audio/video transcription with a pay-per-call model using x402 and USDC. The code demonstrates strong security practices: wallet keys are read from environment variables only (not hardcoded), all user input is validated locally before any payment, spending is capped, and error handling is comprehensive with no sensitive data logging. The primary permission required is network_http (to call the transcription service), which is appropriate for its purpose. Minor quality findings around broad error handling do not materially impact security. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
7 files analyzed · 7 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: TRANSCRIBE_MCP_WALLET_KEY
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-soboljem-transcribe-mcp": {
"env": {
"TRANSCRIBE_MCP_WALLET_KEY": "your-transcribe-mcp-wallet-key-here"
},
"args": [
"-y",
"transcribe-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
transcribe-mcp
Read web pages as clean markdown, transcribe audio and video, and find the silence worth cutting — from any MCP client. No account, no API key, no subscription. Your agent pays a fraction of a cent per call, in USDC, straight from a wallet you control.
{
"mcpServers": {
"transcribe": {
"command": "npx",
"args": ["-y", "transcribe-mcp@latest"],
"env": { "TRANSCRIBE_MCP_WALLET_KEY": "0x..." }
}
}
}
On Windows, MCP clients can't start npx directly, so wrap it:
"command": "cmd", "args": ["/c", "npx", "-y", "transcribe-mcp@latest"].
That is the whole setup. There is nothing to sign up for. It needs Node 20+. The video skill also needs ffmpeg.
One paid call at a time per wallet. The shop refuses a second paid request while one is still running (free, with "already in flight"). Call it sequentially, never in parallel.
Tools
| tool | what it does | price |
|---|---|---|
transcribe_url | a public audio/video url or a local audio file → text, timings, detected language | $0.05 |
find_dead_air | subtitles or timings (inline, or from_file a .json) → the spans worth cutting, and what you'd save | $0.002 |
fetch_page | a web page → clean markdown, links resolved. render: true for JavaScript pages | $0.005 |
shop_info | prices, limits and how payment works | free |
find_dead_air eats exactly what transcribe_url returns, so the two chain:
transcribe a talk, then cut the silence out of it.
"cuts": [{ "from": 2.55, "to": 10.85, "seconds": 8.3, "reason": "silence" }],
"stats": { "sourceSeconds": 20, "speechSeconds": 5.05, "wouldSavePercent": 74.75 }
transcribe_url and find_dead_air take save_to: an absolute path to a new .json file. The full result
goes there and the reply is one line plus the receipt, so an hour of transcripts never floods
your agent's context. It never overwrites a file, and a missing folder is refused before paying.
Cutting a whole video
For cutting a whole video end to end — split, transcribe, cut, synced subtitles — there is a
ready agent skill in skills/dead-air-cutter.
What leaves your machine
transcribe_url: theurl, or the bytes of thefile(audio only —.mp3 .wav .m4a .aac .ogg .opus .oga .flac; a video is refused, extract its audio with ffmpeg first).find_dead_air: the timings and text — fromfrom_file, onlystart,end,textof each segment plusdurationSecondsare sent, whatever else the file holds. If the file has avttfield instead, that subtitle text is sent whole.fetch_page: the page URL.
This server talks only to https://transcribe.soboljem.cz. What the shop does with it, from its
terms:
- Audio is never stored. It is transcribed by Cloudflare Workers AI and passes through Cloudflare's infrastructure.
- The result is kept briefly, up to about 8 hours. It is replayable for 15 minutes, then deleted by a sweep that runs four times a day. The replay is a shop-side safeguard that this client cannot use: every call signs a new payment. After a timeout or a "may have been charged" reply, check the wallet. Calling again pays again.
- A row per sale is kept with no automatic deletion: time, price, audio length, word and cut counts, the source hostname (never the full URL), and the paying wallet address and transaction hash, which are public on Base anyway. Ask via the terms page to have rows deleted.
- Payment settles through the PayAI facilitator on Base. On each sale, the shop owner gets a Telegram notification with the shortened payer address and source hostname.
The private key in TRANSCRIBE_MCP_WALLET_KEY never leaves the machine. It only signs.
Why pay-per-call instead of an API key
Because an agent cannot fill in a signup form. x402 is an HTTP-native
payment: the server answers 402 Payment Required with a price, the client pays it, the
request goes through. No dashboard, no key rotation, no minimum, no monthly bill. If you
never call it, you never pay anything.
Settlement is USDC on Base (eip155:8453).
Running it without a wallet
It starts fine. shop_info answers, tools/list works, and the paid tools tell you what
to set. Look before you fund anything.
What it will not do
- It will not overspend. Every call is filtered through a $0.10 ceiling; a quote above it is dropped and the client refuses to pay rather than guessing.
- It will not charge you for a refusal. Bad arguments are caught locally and never leave your machine. The shop is built not to settle error responses; that was verified on testnet (see its terms).
- It will not tell you "no charge" when it cannot know. If the connection drops mid-call, it says a payment may have gone out and to check the wallet before calling again.
- It will not lie about a sale. If the settlement header is missing, it says so instead of reporting a payment it cannot prove.
Files are capped at 800 KB. Oversized ones are refused for free, before payment.
A local file is sent to the shop as bytes, so nothing has to be hosted first. For anything
long, extract the audio small and split it — mono Opus at 16 kbps fits ~6 minutes per call:
ffmpeg -i talk.mp4 -vn -ac 1 -c:a libopus -b:a 16k -f segment -segment_time 360 part%03d.opus
Configuration
| variable | meaning |
|---|---|
TRANSCRIBE_MCP_WALLET_KEY | private key of a wallet holding a little USDC on Base. Required only for the paid tools. |
Use a dedicated wallet with a few dollars in it, not your main one. This is true of every tool you hand a private key to, and it is true here.
Tests
npm test
MIT.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Lharries · Communication
Read, search, and send WhatsApp messages through your AI assistant
