Voxloom MCP Server
# @voxloom/mcp
Model Context Protocol server for [Voxloom](https://voxloom.ai). Lets an
assistant transcribe a video or podcast, then read, search and summarise the
result.
Works with Claude Desktop, Claude Code, Cursor, Cline, and anything else that
speaks MCP over stdio.
## Setup
You need a Voxloom API key from **API keys** in your
[dashboard](https://voxloom.ai/dashboard). API access is included from the
Studio plan upwards.
### Claude Desktop
`claude_desktop_config.json`:
```json
{
"mcpServers": {
"voxloom": {
"command": "npx",
"args": ["-y", "@voxloom/mcp"],
"env": { "VOXLOOM_API_KEY": "sk_prod_..." }
}
}
}
```
### Claude Code
```bash
claude mcp add voxloom --env VOXLOOM_API_KEY=sk_prod_... -- npx -y @voxloom/mcp
```
### Cursor and Cline
Both read the same shape of config as Claude Desktop. Add the `voxloom` entry
above to the MCP settings.
## Tools
| Tool | Charges | What it does |
| --- | --- | --- |
| `estimate` | No | What a recording would cost, and whether the balance covers it |
| `transcribe` | **Yes** | Transcribes a recording and returns the transcript |
| `get_transcript` | No | Reads a transcript by job id, or reports progress |
| `search_transcript` | No | Finds where something was said, with timestamps |
| `get_summary` | No | Abstract, key points, quotes and chapters |
| `list_transcripts` | No | Recent transcripts and their job ids |
| `get_speakers` | No | Who is in a transcript and for how long |
| `rename_speaker` | No | Renames a speaker everywhere, exports included |
| `cancel_transcription` | No | Stops a running job; refunds the remainder |
| `list_languages` | No | The 101 languages, and which can be translated into |
## Two things worth knowing
**Transcription costs money.** `transcribe` prices the job before submitting it
and refuses anything above a ceiling (30 standard minutes by default) unless it
is passed `confirm_spend: true`. So an assistant cannot quietly spend your
balance on a three-hour video: it has to tell you the cost and ask.
Raise or lower the ceiling with `VOXLOOM_MAX_CREDITS_PER_CALL`. 120 credits is
one standard minute.
**Transcripts are large.** Nothing returns a whole one by default. Reads are
budgeted and say plainly when they truncated, so the assistant knows it is
looking at an excerpt. For a question about one moment, `search_transcript` is
both cheaper and more accurate than reading everything.
## Configuration
| Variable | Default | What it does |
| --- | --- | --- |
| `VOXLOOM_API_KEY` | required | Your API key |
| `VOXLOOM_BASE_URL` | `https://voxloom.ai` | Override for self-hosting |
| `VOXLOOM_MAX_CREDITS_PER_CALL` | `3600` | Spend ceiling per `transcribe` call |
| `VOXLOOM_WAIT_MS` | `90000` | How long `transcribe` waits before handing back a job id |
| `VOXLOOM_MAX_CHARS` | `12000` | Text budget for a transcript read |
## Example conversation
> **You:** Transcribe https://youtu.be/VIDEO_ID and tell me what they say about
> consensus.
The assistant estimates the cost, transcribes it, then searches the transcript
for "consensus" rather than reading all 9,000 words, and answers with
timestamps you can check.
## Development
```bash
npm install
npm run typecheck
npm test # builds, then runs the tests against dist/
```
Tests run against the compiled output rather than the sources, because that is
what ships and it means the NodeNext module specifiers resolve as they will at
runtime.
## Licence
MIT.
TDQS
Scored across 10 tools
Each tool has a clearly distinct role: estimate (free pricing/preview), transcribe (charges), get_transcript (fetch by id), search_transcript (literal search), get_summary (abstract), plus account/list/speaker lifecycle tools. Descriptions even cross-reference each other to steer selection (e.g., search vs get vs summary). No meaningful overlap.
Most tools follow a verb_noun pattern (get_transcript, search_transcript, get_summary, list_transcripts, get_speakers, rename_speaker, cancel_transcription, list_languages). The two bare verbs 'estimate' and 'transcribe' deviate slightly, but the style remains readable and predictable.
Ten tools for a transcription service is well-scoped: pricing, execution, retrieval in several modes, speaker management, cancellation, and language listing each earn their place without redundancy.
Full lifecycle is covered: estimate → transcribe → retrieve/summarize/search → manage speakers → cancel, plus language discovery. Minor gap: list_languages references translations ('check a target before asking for a translation'), implying a translate operation that no tool exposes.