Skip to main content
Glama

OCR frames or a single image

video_ocr
Read-onlyIdempotent

Extract on-screen text from videos or images using OCR. Provide a video path to sample keyframes or an image path for a single frame, and receive text in markdown or JSON.

Instructions

Extract on-screen text with tesseract. Pass a video source to sample keyframes + OCR, or an image path for a single frame/screenshot. Requires tesseract on PATH (brew install tesseract).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesVideo path/URL, or absolute path to a .jpg/.png image
max_framesNo
response_formatNoResponse text formatmarkdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.3.0

TDQS

A4.2/5.0
Behavior4/5

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

The description adds useful operational detail beyond the annotations: it samples keyframes rather than analyzing every frame, and it calls out the external tesseract dependency with an installation hint. This helps an agent anticipate missing-dependency failures and understand that video OCR is sampled rather than exhaustive.

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 brief sentences cover the action, input modes, and prerequisite with no filler. The most important behavior is front-loaded, and the dependency caveat is placed at the end without disrupting the main usage guidance.

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

Completeness4/5

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

For a simple tool with three parameters and rich annotations, the description covers the core behavior, input modes, and prerequisite. It does not spell out the exact JSON output structure, but the response_format parameter and 'Extract on-screen text' make the expected result clear enough for a straightforward call.

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?

The description adds meaning for source by clarifying video keyframe sampling versus single-frame OCR. However, max_frames is left entirely to the schema's min/max/default constraints, and response_format relies on its schema description. With 67% schema coverage, the description partially compensates but still leaves some parameter behavior to inference.

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 states the specific action ('Extract on-screen text with tesseract') and clarifies the two supported input modes: video keyframe sampling and single image. This clearly distinguishes it from sibling tools like video_transcribe (speech) and video_extract_frames (frames without OCR).

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

Usage Guidelines4/5

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

It gives concrete invocation guidance by telling the agent to pass either a video source or an image path. It does not explicitly name sibling alternatives or state when not to use this tool, but the intended context is clear from the two documented modes.

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