Skip to content
Try it free

MCP

MCP limits and cost

What each tool call costs in minutes, how long a call can take, the limits on the remote server, and what the errors mean.

View as Markdown
On this page

What a call costs

The tools use the same minutes as everywhere else. The first call on a video does the work and pays for it. Later calls on the same video read the stored result and cost nothing, except a summary Scribiz has not written for it yet, which uses a tenth of the video's length.

ToolMinutes
get_video_context on a new videoBy what runs, per minute of video: captions 0.1, Listen 1, Watch 1, Both 2
get_transcript0 once the video is processed. Otherwise the same as above
search_video0 once the video is processed. Otherwise the same as above
ask_video0.1 per question, on top of reading the video the first time. With a key, a question about something shown can run Watch, once, and watch: true runs it for any question. Without a key: 5 questions a day, answered from the words only (the picture is never looked at). A question still works when the day's 10 minutes are used up, for a video with captions or one already processed
get_video_context or ask_video with watch: true (with a key)Watch 1 per minute of video, once. The captions that come with it are free, and a Listen that had to run is added (Both is 2). 0 when the on-screen notes are already stored. See Watch, with a key
On-screen notes that are already stored (with a key)0, in every tool that reads a video
get_job0
Any call on a video someone already processed0, except a summary Scribiz has not written for it yet (a tenth of the video's length)

Every result reports minutesUsed, and free: true when it came from stored results and cost nothing. A failed call is not charged for work that did not happen. If ask_video reads the video (Listen or Watch) and the question then fails, the read is charged, because it was done and is stored for everyone. A call that joins a run already going, or reuses one that just finished, is not charged again. See Minutes and billing.

The local server with GEMINI_API_KEY uses no Scribiz minutes. Google bills your key. It comes with the command-line tool (npm install -g scribiz, then claude mcp add scribiz -- scribiz mcp), needs ffmpeg and yt-dlp, and is tested on macOS only.

How long a call takes

Processing a long video takes minutes, and most clients give up on a tool call after about a minute. So a tool never blocks for long:

  • It waits up to 45 seconds, sending progress updates if your client asked for them.
  • If the video is not done, it returns status: "processing" with a job_id and retry_after_seconds. This is a normal result, not an error.
  • Calling again, or calling get_job, picks up the run that is already going.

Typical timings: a video that was processed before answers at once. A public YouTube video with captions that Scribiz has not seen takes about 8 seconds. A short video read from its link takes a few seconds (about 4 seconds for a 19 second one). Listening to a longer video takes longer than one call waits, so expect a processing result and a second call.

Tokens

A tool result is text the agent has to read, so size matters.

ResultApproximate size
get_video_context with briefUnder 2,000 tokens. The 19 second example video is about 150.
A page of get_transcript at the default max_charsAbout 15,000 tokens
search_videoA few hundred tokens
A two hour transcript read wholeMore than 25,000 tokens

Lower max_chars if your client warns about large tool results. Page with cursor.

Limits

LimitValue
Video lengthYour plan's limit: 15 minutes without an account, 2 hours with a free account, 6 hours on Pro
Running videos per key2. A third call is RATE_LIMIT with a hint to call get_job.
Wait inside a call45 seconds
A finished run answers the same call againFor 15 minutes. With a key, a get_video_context or search_video result with no on-screen notes is run again for a YouTube link when notes have been stored since: it costs nothing
Local filesLocal server only, and only from folders you allow
Remote server inputLinks, not file paths
Without a keyCaptions our server can read (30 lookups a day), stored results, and a model reading the link within the web tool's 10 minutes a day (videos up to 15 minutes), plus one daily limit shared by everyone without a key. Never the picture: no on-screen notes. See Without a key

Longer videos than your plan allows are rejected before work starts.

Watch, with a key

A video that is mostly speech does not get the on-screen layer on its own. With a key you can have it, and you pay for it once.

WhatCost
On-screen notes already stored, made by anyone0, in get_video_context, search_video and ask_video
watch: true on a video whose notes are not storedWatch: 1 minute for each minute of video. The captions that come with it are free. A Listen that had to run is added: Both is 2
watch: true again, or any other call, once the notes are stored0

Before anything is read, a watch: true call is quoted the way a job from the API is. It is checked against your plan's video length, the minutes you have left, and the minutes your other runs hold, and those minutes stay held while it runs. If it does not fit, it is refused at once with QUOTA or SOURCE_TOO_LONG, nothing is read, and nothing is charged. The message says how many minutes it needs. Call again without watch to leave the picture out.

A run that turns into a step you cannot pay for is stopped before that step starts. A layer that is skipped or fails is not charged. A link whose length could not be checked is read in a clip that ends at what you can still pay for; its notes are partial, they are not stored, and asking again reads again.

The picture is read once for a video. It is stored with the other layers, so the next call gets it free, with or without watch. A summary Scribiz has not written yet at that level of detail and in that language is the one thing that can still use a tenth of the video's length.

Calls at the same time for one video are taken one after the other, for one account. If you ask a question and for a summary of the same video together, the second waits for the first, finds the notes stored, and pays nothing for them. A wait that runs very long comes back as RATE_LIMIT, and the call can be repeated.

Without a key none of this applies. The picture is never looked at, a stored layer is not served, and watch is ignored with a note.

The local server (scribiz mcp, from the command-line tool, version 0.1.1 or newer) takes watch too, and serves on-screen notes that are already stored at no cost. What it costs goes to your credential: your Scribiz account's minutes after scribiz login, or Google's bill for your own Gemini key. See Connection modes.

Without a key

The server works without a key, inside a daily allowance. Days are UTC, and everything resets at 00:00 UTC.

AllowanceValue
ReadingThe same 10 minutes a day as the free web tool, for each connection. Reading is charged by the length of the video that was actually read: a 19 second video uses about 19 seconds. Captions use a tenth of that
Longest video15 minutes. A video known to be longer is refused before anything is used
Caption lookups30 a day for each connection
Questions5 a day, 0.1 minute each
Shared limitOne more daily limit of about $3 of reading, shared by everyone who connects without a key. It is separate from the website's free tools: neither can use up the other's. They share only your own 10 minutes a day

What it does and does not do:

  • It uses a video's captions when the server can read them, and serves a video Scribiz has already processed at once, however it was first read.
  • When there are no captions the server can read, a model reads the video from its link. Its times are approximate (about 2 seconds either way), it has no speaker labels, and the result says so.
  • It never looks at the picture, so there are no on-screen notes. A question about what was shown is answered from the words only.
  • A summary written for a video that was already processed uses a tenth of its length (about 0.03 minutes for a 19 second video), and the result says so.
  • If a read stops at its limit (a link whose length could not be checked in advance), the result says it is partial and how much was read. Repeating the call reads again and uses minutes again.
  • One read runs at a time for each connection. A second call made at the same time waits for the first. If that takes longer than the wait, it comes back as processing and the agent calls get_job.
  • When your 10 minutes, or the shared limit, are used up, captions and videos already processed still work. The error says what is used up and when it resets.
  • For a video Scribiz has not processed, the link is passed to Google's model, which reads the public video. Nothing is uploaded from your machine.

Errors

A real failure is an error result, with isError: true. Its structured part has status: "failed" and an error object with the same codes the CLI and the API's jobs use, plus a message, a hint, a next_step for the agent, and retryable:

JSON
{  "status": "failed",  "error": {    "code": "URL_UNSUPPORTED",    "message": "This address is not allowed: private or loopback address (169.254.169.254)",    "retryable": false,    "stage": "resolve",    "hint": "Only public http(s) links to media or supported video sites are accepted here.",    "next_step": "Pass a public http(s) link to a video. Local files and private addresses are not available on a hosted server."  }}
CodeWhat it meansWhat the agent can do
SOURCE_AUTH_REQUIREDThe site needs a loginTell the user to download the file and upload it on the web, or to use the command-line tool with their browser's login (--cookies-from-browser)
SOURCE_BLOCKEDThe site refused a serverThe same, or ask for another link
SOURCE_UNAVAILABLEPrivate, deleted or restrictedAsk for another link, or tell the user to download the file and upload it on scribiz.com
SOURCE_TOO_LONGOver your plan's limit. Without a key, a video known to be longer than 15 minutesAsk for a shorter video
URL_UNSUPPORTEDNot a link Scribiz can use, or a private addressAsk for a public link
QUOTA, out of minutesWithout a key: the day's 10 minutes, the connection's spending limit, or the daily limit shared by everyone without a key. With a key, your minutes: a watch: true call needs a minute for each minute of video and is refused before anything is read when you have lessTell the user. Without a key, captions and videos already processed still work (a key holder at zero minutes does not get this fallback). Without a key it resets at 00:00 UTC
QUOTA, caption lookupsWithout a key, the 30 caption lookups a day are used up on this connectionTell the user. Videos already processed still work. It resets at 00:00 UTC
QUOTA, questionsWithout a key, the 5 questions a day are used up on this connectionTell the user. Searching and reading videos still work. It resets at 00:00 UTC
RATE_LIMITToo many calls, or too many videos running. Without a key, also minutes held by another read of yours that is still running: the error says what is heldWait, then try again
AUTHThe key was rejectedTell the user to check SCRIBIZ_API_KEY
TIMEOUT, NETWORK, SERVERA temporary problemTry again
INVALID_ARGUMENTSA bad argument, such as a time that does not parse, or an unknown job_idFix the call, or repeat the original call

A video with no speech returns a result with the warning NO_SPEECH_DETECTED, not an error.

Every engine code is described in Errors and limits.

Checked against the Scribiz build on 2026-10-05.

Loading the index