Skip to main content
Glama

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.

No install: the hosted server

Apps that connect to an MCP server by URL can use https://cuecaps.com/mcp (Streamable HTTP) with no install and no key: claude.ai and the Claude apps on phone and desktop, ChatGPT, Gemini CLI, Claude Code and Cursor. It has list_styles and studio_link, so you ask for captions the way you'd describe them ("karaoke captions on a Spanish TikTok") and get a studio link set up for them, to finish in your browser. To caption a file on your computer directly, use this package (below).

  • claude.ai: Settings, Connectors, Add custom connector, and paste https://cuecaps.com/mcp.

  • Claude Code: claude mcp add --transport http cuecaps https://cuecaps.com/mcp

  • Gemini CLI, in ~/.gemini/settings.json: { "mcpServers": { "cuecaps": { "httpUrl": "https://cuecaps.com/mcp" } } }

Setup for every client: cuecaps.com/ai-assistants.

Related MCP server: whisper-mcp

Requirements

  • Node 22 or later.

  • Google Chrome or Microsoft Edge, found at its standard install path. CUECAPS_CHROME points to any other browser.

  • A key from cuecaps.com/account. Agent access comes with a Creator or Pro plan: cuecaps.com/pricing.

Setup

Claude Code

claude mcp add cuecaps --env CUECAPS_API_KEY=cck_… -- npx -y cuecaps-mcp

Claude 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

list_styles

no

The 10 caption styles: id, name and how each one looks.

studio_link

no

A studio link that opens set up with your settings. Works on every plan.

account_status

yes

Your plan, cloud minutes left this period, the date they reset, and whether it includes agent captioning.

transcribe

yes

Every word of a file with its start and end time in seconds, plus the SRT text. Writes no file.

caption_video

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: cloud is 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. device is 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: mp4 with the captions burned in (the default), mov or webm as a transparent captions-only overlay, or srt or vtt subtitles.

  • resolution: 720p, 1080p (the default), 1440p or 4k. 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

CUECAPS_API_KEY

Your key (cck_ and 32 characters).

CUECAPS_CHROME

Path to the Chrome or Edge executable, when it isn't at a standard install path.

CUECAPS_URL

The Cuecaps site, https://cuecaps.com by default.

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 tools
account_statusA
Read-onlyIdempotent
Inspect

Reads the Cuecaps account behind CUECAPS_API_KEY: the plan, cloud minutes left this period, the date they reset, and whether agent captioning is included. Uses no minutes. Call it before transcribe or caption_video to check the plan and minutes; with no key or an invalid key it returns an error that says how to get one.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds context they cannot carry: it explicitly says 'Uses no minutes' (a cost signal critical for an agent deciding whether to probe) and predicts failure behavior — an error explaining how to obtain a key when the key is missing or invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero padding, and the ordering directive is front-loaded ahead of the error-behavior note. Every clause carries actionable information for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description compensates by naming the returned fields verbatim; the auth failure mode and the cost profile are also covered. For a parameterless read tool, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is fully closed (additionalProperties: false). A 4 is the appropriate ceiling because no parameter-level value can be added, though the implicit auth dependency (CUECAPS_API_KEY) is at least surfaced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Reads the Cuecaps account behind CUECAPS_API_KEY') and enumerates exactly what comes back: plan, cloud minutes left, reset date, and whether agent captioning is included. That is far more precise than the sibling tools' names alone would allow an agent to infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit call order: 'Call it before transcribe or caption_video to check the plan and minutes.' It names the exact siblings it gates and the condition (checking plan/minutes) that selects it, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

caption_videoAInspect

Captions a local video or audio file with the Cuecaps studio's renderer in headless Chrome or Edge and writes .captions. next to it, never replacing a file: an MP4 with the captions burned in, a transparent MOV or WebM overlay, or SRT or VTT subtitles. Returns the file, its duration in seconds, the engine, the cloud minutes used and a studio link to fine-tune words and style. Needs a Creator or Pro key; 1440p and 4K need Pro. Transcription works as in transcribe, and the video never leaves this machine. Use transcribe when only the words are needed, and studio_link when the user wants to edit by hand or has no key.

NameRequiredDescriptionDefault
fpsNoFrames per second.
langNoThe spoken language. Give it for any video that isn't in English; auto lets cloud transcription detect it.
pathYesAbsolute path to the video or audio file: MP4, MOV, WebM, MP3, WAV, M4A or another format the studio opens.
linesNoLines per caption.
styleNoCaption style. list_styles shows how each one looks.
wordsNoWords per caption; 1 shows one word at a time.
aspectNoFrame shape: 9:16 for TikTok, Shorts and Reels, 1:1 or 4:5 for feed posts, 16:9 for YouTube.
engineNocloud: 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).
outputNomp4 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.
keytermsNoNames and words for cloud transcription to spell your way.
out_pathNoAbsolute 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.
positionNoWhere the captions sit in the frame.
resolutionNoShort side of the video. 1440p and 4k come with Pro.1080p

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the mutation/scope profile; the description adds what an agent actually needs: the file is written next to the input, an existing file is never replaced, the video never leaves the machine, and the return payload includes the file, duration, engine, cloud minutes and a studio link. It also discloses the key-tier gating, which the annotations do not cover. Nothing contradicts the hints (destructiveHint=false is consistent with 'never replacing a file').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense paragraph, but it is front-loaded with purpose and output behavior before prerequisites and alternatives. A couple of clauses are near-redundant (engine/cloud-minutes detail is repeated in the returned-fields list), slightly hurting scannability for a 13-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, multi-output rendering tool with no output schema, the description covers writes, collision handling, plan gating, privacy, return fields and sibling alternatives. An agent can invoke it correctly without further context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and eight parameters carry enums, so the schema already documents nearly everything. The description reinforces a few semantics (burned-in vs transparent overlay vs subtitles, out_path extension deciding format) but adds little beyond the schema text, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Captions a local video or audio file') and immediately names the renderer, the output formats, and the write location. It is clearly distinguishable from siblings: transcribe is named as the words-only path and studio_link as the manual-edit path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states exactly when to use alternatives ('Use transcribe when only the words are needed, and studio_link when the user wants to edit by hand or has no key') and adds prerequisites (Creator or Pro key, Pro for 1440p/4K). An agent has no guesswork about routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_stylesA
Read-onlyIdempotent
Inspect

Lists the 10 Cuecaps caption styles, each with the id to pass as style to caption_video or studio_link, its name and how it looks. The list is fixed and needs no key. Call it when the user hasn't picked a style or asks what the styles look like.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false. The description adds genuinely new behavioral facts beyond those: the list is fixed and requires no key, and it discloses the shape of each entry. It stops short of noting ordering or caching guarantees, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: what it returns, how the result is consumed, and when to call it. No filler, and the actionable trigger is placed last where it reads as the decision rule.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the fields of each returned style (id, name, appearance) and explaining what the id is for. Nothing needed to invoke or interpret this zero-argument read tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 description correctly implies no filtering or selection arguments exist by framing the result as a complete fixed list of 10.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb plus resource ('Lists the 10 Cuecaps caption styles') with the exact payload spelled out (id, name, appearance). It also disambiguates by naming the downstream tools that consume the returned id (caption_video, studio_link), so an agent can place it relative to its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit trigger conditions: 'Call it when the user hasn't picked a style or asks what the styles look like.' That is a concrete when-to-use rule tied to the downstream caption_video/studio_link flow, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribeAInspect

Transcribes a local video or audio file and returns every word with its start and end time in seconds, plus the SRT text and the engine used. Writes no file: use caption_video when the user wants a captioned video, an overlay or a subtitle file. Needs a Creator or Pro key. engine "cloud" uses the plan's minutes and sends only compressed audio, deleted after transcription; "device" runs Whisper locally and uses none. Left unset, it picks cloud when the minutes left cover the file, else device.

NameRequiredDescriptionDefault
langNoThe spoken language. Give it for any video that isn't in English; auto lets cloud transcription detect it.
pathYesAbsolute path to the video or audio file: MP4, MOV, WebM, MP3, WAV, M4A or another format the studio opens.
engineNocloud: 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).
keytermsNoNames and words for cloud transcription to spell your way.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that no file is written, that a Creator or Pro key is required, that cloud mode bills plan minutes and sends only compressed audio deleted after transcription, and that device mode downloads a 132 MB model on first run. These are auth, cost, and privacy facts the readOnlyHint/destructiveHint flags cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the outcome and return shape, then the exclusion, then the prerequisites and engine tradeoffs — every sentence earns its place. Minor redundancy: the cloud/device engine explanation partly repeats the engine schema description, and the sentences are dense enough that a reader must parse carefully.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return contract itself and does so (timestamped words, SRT text, engine). Auth requirement, cost model, file-writing behavior, and the alternative tool are all covered, leaving nothing an agent needs before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, but the description still adds value the schema lacks: the default resolution rule for engine ('picks cloud when the minutes left cover the file, else device') and the privacy/consumption consequences of cloud mode. This is behavior an agent would otherwise have to guess at call time.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Transcribes a local video or audio file') and immediately defines the return payload (words with start/end seconds, SRT text, engine used). It explicitly names the sibling it is not (caption_video) so an agent can route between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly excludes the captioning case: 'use caption_video when the user wants a captioned video, an overlay or a subtitle file.' It also gives selection guidance for the engine parameter, including the exact default heuristic when the parameter is unset, so the agent knows it can omit it.

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.

  1. 5 tool updatesv0.1.0
    • First observedaccount_status
    • First observedcaption_video
    • First observedlist_styles
    • First observedstudio_link
    • First observedtranscribe

TDQS

A4.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct purpose: listing styles, reading account status, generating a studio URL, transcribing to text, and rendering a captioned file. The descriptions explicitly cross-reference when to use one versus another (e.g. transcribe vs caption_video vs studio_link), leaving no realistic ambiguity.

Naming Consistency3/5

The set mixes patterns: verb_noun (list_styles, caption_video), a bare verb (transcribe), and noun_noun phrases (account_status, studio_link). Names remain readable and individually clear, but there is no single predictable convention.

Tool Count5/5

Five tools is well-scoped for a captioning service, and each covers a necessary step in the workflow: discover styles, check quota, transcribe, render captions, or hand off to the studio. No tool feels redundant or missing at this count.

Completeness4/5

The surface covers the core lifecycle: style discovery, account/quota check, text-only transcription, final caption rendering, and browser handoff. Minor gaps exist around managing or retrieving past outputs or batch/URL-based inputs, but the main workflows are reachable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to create subtitled tutorial videos by scripting browser interactions with Playwright, outputting MP4 with burned-in captions and SRT file.
    75 npm
    4
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables 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.
    17
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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