cuecaps-mcp
Uses ElevenLabs Scribe as the cloud transcription engine to produce timed words and SRT subtitles for video/audio files, consuming plan cloud minutes and supporting keyterms and automatic language detection.
cuecaps-mcp
Caption a video or audio file on your computer from Claude Code, Cursor, Claude Desktop or any MCP client. Ask "caption
talk.mp4 in Karaoke and give me the MP4" and talk.captions.mp4 lands next to the original. The server drives the
Cuecaps studio's own export in headless Chrome or Edge on your machine, so the result matches a studio export of the same
settings. Once the project syncs to your account, caption_video also returns a studio link that opens it, to fix a word
or change the style.
Requirements
Node 22 or later.
Google Chrome or Microsoft Edge, found at its standard install path.
CUECAPS_CHROMEpoints to any other browser.A key from cuecaps.com/account. Agent access comes with a Creator or Pro plan: cuecaps.com/pricing.
Related MCP server: whisper-mcp
Setup
Claude Code
claude mcp add cuecaps --env CUECAPS_API_KEY=cck_… -- npx -y cuecaps-mcpClaude Desktop and Cursor
Add this to the MCP config: Settings, Developer, Edit Config in Claude Desktop, or ~/.cursor/mcp.json in Cursor.
{ "mcpServers": { "cuecaps": { "command": "npx", "args": ["-y", "cuecaps-mcp"], "env": { "CUECAPS_API_KEY": "cck_…" } } } }The Agent access card on cuecaps.com/account creates a key and shows this config with the key filled in.
Tools
Tool | Key | What it does |
| no | The 10 caption styles: id, name and how each one looks. |
| no | A studio link that opens set up with your settings. Works on every plan. |
| yes | Your plan, cloud minutes left this period, the date they reset, and whether it includes agent captioning. |
| yes | Every word of a file with its start and end time in seconds, plus the SRT text. Writes no file. |
| yes | Captions a file and writes the result next to it. |
Every input except path is optional. The caption settings use the studio-link names: style, words (1 to 10),
lines (1 or 2), position (top, middle, bottom), aspect (9:16, 1:1, 4:5, 16:9) and lang (a language
code such as es; auto lets cloud transcription detect it). Each tool's schema lists the valid values.
transcribe and caption_video also take:
engine:cloudis ElevenLabs Scribe on your plan's cloud minutes, strongest on music, accents and 90+ languages, and the default when the minutes left cover the file.deviceis on-device Whisper with no minutes; its first run downloads the model (132 MB). The result names the engine used.keyterms: up to 100 names and words for cloud transcription to spell your way.
caption_video also takes:
output:mp4with the captions burned in (the default),movorwebmas a transparent captions-only overlay, orsrtorvttsubtitles.resolution:720p,1080p(the default),1440por4k. 1440p and 4K come with Pro.fps: 24, 25, 30 (the default), 50 or 60.out_path: an absolute path in an existing folder to write to instead; its extension sets the output.
Examples
list_styles
{}Returns [{ "id": "bold", "name": "Bold", "look": "Montserrat in capitals with a black outline, …" }, …].
studio_link
{ "style": "karaoke", "words": 4, "aspect": "9:16" }Returns { "url": "https://cuecaps.com/studio?style=karaoke&words=4&aspect=9%3A16" }.
account_status
{}Returns { "plan": "creator", "minutes_left": 287.5, "resets": "2026-11-20", "agents": true }.
transcribe
{ "path": "/Users/ana/clips/talk.mp4", "engine": "device" }Returns { "words": [{ "text": "Greetings!", "start": 0.48, "end": 1.84 }, …], "srt": "1\n00:00:00,480 --> …", "engine": "device", "minutes_used": 0 }.
caption_video
{ "path": "/Users/ana/clips/talk.mp4", "style": "karaoke", "aspect": "9:16" }Returns { "file": "/Users/ana/clips/talk.captions.mp4", "duration": 17.17, "engine": "cloud", "minutes_used": 0.29, "studio_url": "https://cuecaps.com/studio#p=…" }.
While it runs, the server reports progress: Opening, Transcribing, Rendering 42%, Saving.
Output files
caption_video writes <name>.captions.<ext> next to the input. A file that already exists is never replaced: the
next run writes <name>.captions-2.<ext>, then -3, and so on. The same rule applies to out_path.
The studio link in studio_url opens the saved project on Creator and Pro. The video itself stays on your machine, so
the studio asks for the file again when you open the link on another device.
Settings
Variable | Use |
| Your key ( |
| Path to the Chrome or Edge executable, when it isn't at a standard install path. |
| The Cuecaps site, |
Privacy
Your video stays on your machine. The render happens in a browser on your computer.
Cloud transcription sends compressed speech audio, as the studio does, and deletes it after transcription.
engine: "device"sends no audio. The project and its words still sync to your account, as every project does on Creator and Pro.Your key goes only to
cuecaps.com/api/*requests. It is never in a URL, a log or a file.Each run uses a temporary browser profile and deletes it afterwards, so no cookies or projects stay behind.
License
MIT. The source is at github.com/Pantheonn3D/cuecaps-mcp.
Available Tools
5 toolsaccount_statusA
The Cuecaps plan behind the key: cloud minutes left this period, the date they reset, and whether it includes agent captioning.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does convey that this is a read of key-scoped account data and what fields come back. It does not state that it is side-effect free, what happens with an expired or unentitled key, or whether values are cached/stale — meaningful gaps for a no-annotation tool, but the entitlement contents are a genuine addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, colon-front-loaded with the resource first and the three returned data points after. No filler, no repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must enumerate return values and it does so concretely (minutes remaining, reset date, agent-captioning flag). What remains unstated — error behavior for bad keys and whether reads are free — is minor for a zero-parameter status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies; the description correctly implies the API key is the implicit input rather than a parameter. Nothing further is needed on this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact resource (Cuecaps plan tied to the API key) and enumerates what it exposes: remaining cloud minutes, reset date, and agent-captioning entitlement. This is unmistakably a billing/entitlement lookup and cannot be confused with caption_video, transcribe, or list_styles. It stops short of 5 only because there is no explicit verb phrasing (e.g. 'retrieve').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — an agent can infer it should call this before burning minutes or to check plan entitlement, but the description never says when to call it, when not to, or what to do if the key is invalid. No alternatives are named, though the sibling set makes the boundary fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caption_videoA
Captions a local video or audio file with the Cuecaps studio's own renderer in headless Chrome or Edge, and writes .captions. next to it: an MP4 with the captions burned in, a transparent MOV or WebM overlay, or SRT or VTT subtitles. The video stays on this machine. Returns the file, its duration in seconds, the engine used, the cloud minutes used and a studio link to fine-tune words and style. Creator and Pro.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | Frames per second. | |
| lang | No | The spoken language. Give it for any video that isn't in English; auto lets cloud transcription detect it. | |
| path | Yes | Absolute path to the video or audio file: MP4, MOV, WebM, MP3, WAV, M4A or another format the studio opens. | |
| lines | No | Lines per caption. | |
| style | No | Caption style. list_styles shows how each one looks. | |
| words | No | Words per caption; 1 shows one word at a time. | |
| aspect | No | Frame shape: 9:16 for TikTok, Shorts and Reels, 1:1 or 4:5 for feed posts, 16:9 for YouTube. | |
| engine | No | cloud: ElevenLabs Scribe on the plan's cloud minutes, strongest on music, accents and 90+ languages; the default when the minutes left cover the file. device: on-device Whisper, no minutes; the first run downloads the model (132 MB). | |
| output | No | mp4 with the captions burned in, mov or webm as a transparent captions-only overlay, or srt or vtt subtitles. Defaults to out_path's extension when out_path is given, else mp4. | |
| keyterms | No | Names and words for cloud transcription to spell your way. | |
| out_path | No | Absolute path to write to instead of <name>.captions.<ext> next to the input, ending in .mp4, .mov, .webm, .srt or .vtt; its extension sets output. An existing file is never replaced: -2, -3 and so on go before the extension. | |
| position | No | Where the captions sit in the frame. | |
| resolution | No | Short side of the video. 1440p and 4k come with Pro. | 1080p |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does meaningful work: it discloses that the video stays local, that cloud minutes are consumed, that a plan tier (Creator/Pro) is required, and it enumerates the returned fields. It stops short of stating failure modes (e.g. what happens if minutes run out) or time cost of rendering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the purpose and side effect, then return values and plan gating. Everything earns its place, though the enumerated output-format list partially duplicates the schema's output parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming exactly what is returned (file, duration, engine, cloud minutes, studio link). With 13 parameters all documented in the schema and the privacy/plan constraints stated, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so per-parameter meaning is already fully documented, including the nuanced engine, output, and out_path descriptions. The description restates the choice of output formats and the default filename convention but adds no syntax or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Captions a local video or audio file') plus the exact renderer, output formats, and side effect of writing a file next to the input. It is clearly distinguishable from the sibling transcribe (which would just produce text) because burning in captions/overlays is called out explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description (local file on this machine, captioning outputs), but there is no explicit when-to-use rule and no routing against the siblings. An agent gets no statement such as 'use transcribe instead when you only need the transcript' or 'use studio_link to fine-tune after rendering'; the list_styles pointer lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stylesA
The 10 Cuecaps caption styles: the id to pass as style, the name, and how each one looks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the return payload (id, name, appearance), which is the relevant behavior for a static lookup. It stops short of confirming it is a side-effect-free read or whether results are fixed at ten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause (count, returned fields, downstream use) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe return values, and it does so for all three fields. For a zero-parameter enumeration tool this is nearly sufficient, though a hint about ordering or stability would complete it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The mention of 'the id to pass as style' adds cross-tool meaning about how the returned identifier is consumed, which the empty schema cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (the 10 Cuecaps caption styles) and enumerates what comes back: id, name, and visual description. It is clearly distinguishable from the siblings (which are link/auth/video/transcription tools), but it never uses an explicit verb like 'list' — the scope is inferred from the title-style phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the id to pass as style' implicitly signals the downstream use with a captioning tool, which is useful routing context. However, it states no explicit when-to-use condition or exclusion, and never names a sibling tool to pair it with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
studio_linkB
A Cuecaps studio link that opens set up with these settings. The user drops in their video and exports in the browser. Works on every plan, with no key.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The spoken language. Give it for any video that isn't in English; auto lets cloud transcription detect it. | |
| lines | No | Lines per caption. | |
| style | No | Caption style. list_styles shows how each one looks. | |
| words | No | Words per caption; 1 shows one word at a time. | |
| aspect | No | Frame shape: 9:16 for TikTok, Shorts and Reels, 1:1 or 4:5 for feed posts, 16:9 for YouTube. | |
| position | No | Where the captions sit in the frame. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does add real behavioral context (no API key needed, available on every plan, processing/export happens client-side in the browser). It omits the most important behavior for a link tool: that the call returns a URL rather than rendering anything, whether the link expires, and whether any server-side state is created.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, and the core idea (a preconfigured link handed to the user) is front-loaded. The phrasing 'opens set up with these settings' is slightly awkward and could be tightened into an explicit statement of what is returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All six parameters are optional and fully documented in the schema, and there is no output schema, so the description should explain the returned artifact. It explains the surrounding workflow but not what the caller actually gets back, which is the one thing an agent most needs before invoking a link generator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and four of six parameters have enums, so the schema already does the explanatory work. The description adds nothing about the settings themselves beyond the vague phrase 'with these settings', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys that this produces a preconfigured Cuecaps studio link and that the end user finishes the job (drop in video, export in browser), but it never uses an explicit verb like 'generate' or 'returns a URL'. It also gives no differentiation from the sibling caption_video, which is the obvious alternative for producing captioned output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Works on every plan, with no key' plus 'the user drops in their video and exports in the browser' implies the hand-off use case, so an agent can infer when this is appropriate. However, there is no explicit statement of when to choose this over caption_video or transcribe, and no exclusions or prerequisites beyond the licensing note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribeC
Every word of a local video or audio file with its start and end time in seconds, plus the SRT text and the engine used. Writes no file. Creator and Pro.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The spoken language. Give it for any video that isn't in English; auto lets cloud transcription detect it. | |
| path | Yes | Absolute path to the video or audio file: MP4, MOV, WebM, MP3, WAV, M4A or another format the studio opens. | |
| engine | No | cloud: ElevenLabs Scribe on the plan's cloud minutes, strongest on music, accents and 90+ languages; the default when the minutes left cover the file. device: on-device Whisper, no minutes; the first run downloads the model (132 MB). | |
| keyterms | No | Names and words for cloud transcription to spell your way. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that no file is written, what comes back (start/end seconds, SRT text, engine), and that access is limited to Creator and Pro plans, but says nothing about duration limits, that the cloud engine uploads content, or that cloud minutes are consumed at cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and every sentence carries some information, but the opening fragment is not front-loaded with an action verb, and 'Creator and Pro' is compressed to the point of being ambiguous about what it gates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does describe the return payload, which is the main job here, and the schema covers all four parameters richly. However, with zero annotations the behavioral picture (file size/length limits, cloud upload implications, fallback when minutes run out) is only partially filled in.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains path, lang, engine and keyterms in detail. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys the resource (a local video/audio file) and the payoff (word-level timings, SRT text, engine name), but it never states the action in a verb – it is a sentence fragment that only makes sense because the tool name is 'transcribe'. It does not clearly separate itself from caption_video beyond 'Writes no file'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to use this versus caption_video, list_styles or studio_link. The only routing hint is the implicit 'Writes no file', which is a side effect rather than a usage rule, and 'Creator and Pro' is unexplained gating without naming the alternative for other plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
account_status - First observed
caption_video - First observed
list_styles - First observed
studio_link - First observed
transcribe
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: listing styles, generating a studio link, checking account status, captioning a file, and transcribing a file. The boundary between caption_video and transcribe is well-defined by output (file vs. word timings only).
Names mix patterns: verb_noun (list_styles, caption_video), noun_noun (studio_link, account_status), and a bare verb (transcribe). The set is still readable, but there is no single predictable convention.
Five tools is a well-scoped set for a captioning service, with each tool covering a necessary part of the workflow without excess.
The surface covers style discovery, account checks, transcription, caption file generation, and a studio link for editing. Minor gaps exist, such as no direct tool for listing supported output formats or engines, but core workflows are complete.
Maintenance
Related MCP Connectors
- caption.shOAuthsh.caption
Burn styled, word-timed karaoke captions into any video - captions API and MCP server for agents.
One call burns captions into your video. Hosted, prepaid, no subscription. MP4 plus SRT and VTT.
Render animated motion-graphics overlays as MP4: lower thirds, titles, callouts
Generate SRT and VTT subtitles for any video or audio file, 99 languages.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables users to create subtitled tutorial videos by scripting browser interactions with Playwright, outputting MP4 with burned-in captions and SRT file.40 npm4MIT
- AlicenseAqualityCmaintenanceEnables MCP clients to transcribe audio/video files locally, generate SRT subtitles, and burn captions into videos via tool calls, without a cloud API.3MIT
- AlicenseBqualityCmaintenanceEnables AI coding agents to programmatically assemble vertical videos and manage local CapCut Desktop drafts, including AI background removal, audio mastering to -14 LUFS or Demucs vocal isolation, music auto-ducking, punch zooms, karaoke captions, PiP proof overlays, hook badges, safe-zone linting, proxy previews, and EN→ES cloning/dubbing. It outputs real CapCut draft JSON ready for review and export.172MIT
- AlicenseNot gradedqualityCmaintenanceEnables local transcription of audio/video files and YouTube URLs, generation of SRT/VTT subtitles, and analysis of speech pacing and audience retention risk using faster-whisper.MIT