guimatheus92/mcp-video-analyzer

guimatheus92/mcp-video-analyzer

от guimatheus92
MCP сервер для анализа видео - извлекает транскрипт, ключевые кадры, метаданные и текст с экрана (OCR) из URL и локальных файлов. Полезен разработчикам и техподдержке для разбора видео с багами, де...

mcp-video-analyzer

mcp-video-analyzer MCP server

Featured in awesome-mcp-servers.

MCP server for video analysis — extracts transcripts, key frames, and metadata from video URLs and local video files. Supports Loom, direct video URLs (.mp4, .mov, .mkv, .webm, and other common formats), and absolute paths to local video files.

No existing video MCP combines transcripts + visual frames + metadata in one tool. This one does.

Installation

Prerequisites

  • Node.js 18+ — required to run the server via npx
  • yt-dlp (optional) — enables frame extraction via ffmpeg. Install with pip install yt-dlp
  • Chrome/Chromium (optional) — fallback for frame extraction if yt-dlp is unavailable

Without yt-dlp or Chrome, the server still works — you'll get transcripts, metadata, and comments, just no frames.

Claude Code (CLI)

claude mcp add video-analyzer -- npx mcp-video-analyzer@latest

Then restart Claude Code or start a new conversation.

VS Code / Cursor

Add to your MCP settings file:

  • VS Code: File → Preferences → Settings → search "MCP" or edit ~/.vscode/mcp.json / %APPDATA%\Code\User\mcp.json (Windows)
  • Cursor: Settings → MCP Servers → Add
analyze_momentтолько чтениеидемпотентныйвнешний мир

Углубленный анализ конкретного временного отрезка в видео. Объединяет пакетное извлечение кадров, фильтрацию расшифровки, OCR и аннотированную временную шкалу для выбранного фрагмента видео. Используй, когда нужно точно понять, что происходит между двумя отметками времени: - Что на экране (кадры + извлечённый текст через OCR) - Что говорится (расшифровка, отфильтрованная по диапазону) - Единая временная шкала, объединяющая визуальный и аудиоконтент Пример: analyze_moment(url, "1:30", "2:00", 10) — 10 кадров + расшифровка + OCR для этого 30-секундного окна Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov), а также локальные видеофайлы (абсолютный путь или file:// URI).

Углубленный анализ конкретного временного отрезка в видео. Объединяет пакетное извлечение кадров, фильтрацию расшифровки, OCR и аннотированную временную шкалу для выбранного фрагмента видео. Используй, когда нужно точно понять, что происходит между двумя отметками времени: - Что на экране (кадры + извлечённый текст через OCR) - Что говорится (расшифровка, отфильтрованная по диапазону) - Единая временная шкала, объединяющая визуальный и аудиоконтент Пример: analyze_moment(url, "1:30", "2:00", 10) — 10 кадров + расшифровка + OCR для этого 30-секундного окна Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov), а также локальные видеофайлы (абсолютный путь или file:// URI).

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

  • fromstringобязательный

    Start timestamp (e.g., "1:30")

  • tostringобязательный

    End timestamp (e.g., "2:00")

  • countnumber

    Number of frames to extract in the range (default: 10)

  • ocrLanguagestring

    Tesseract OCR language codes (default: "eng+por"). Use "+" to combine: "eng+spa", "eng+fra+deu".

analyze_videoтолько чтениеидемпотентныйвнешний мир

Анализирует URL видео, чтобы извлечь транскрипцию, ключевые кадры, метаданные, комментарии, OCR-текст и аннотированную временную шкалу. Возвращает структурированные данные о содержимом видео: - Транскрипция с временными метками и спикерами - Ключевые кадры, извлечённые через детекцию смены сцен (дедуплицированные, в виде изображений). Для статичных клипов без смены сцен (например, Reels/Stories с говорящей головой, где меняется только текст на экране) автоматически переключается на равномерную временную дискретизацию. - OCR-текст, извлечённый из кадров (код, сообщения об ошибках, текст интерфейса, цены/даты/CTA, видимые на экране) - Аннотированная временная шкала, объединяющая транскрипцию + кадры + OCR в единое хронологическое представление - Метаданные (название, длительность, платформа) - Комментарии зрителей (если доступны) Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Уровни детализации: - "brief": только метаданные + сокращённая транскрипция (быстро, без загрузки видео) - "standard": полный анализ с кадрами смены сцен (по умолчанию) - "detailed": плотная дискретизация (1 кадр/сек), больше кадров, полный OCR Используйте options.fields, чтобы запросить только определённые данные (например, ["metadata", "transcript"]). Используйте options.forceRefresh, чтобы обойти кеш. Используйте options.model / options.language / options.initialPrompt, чтобы переопределить настройки транскрипции Whisper для каждого вызова (например, более тяжёлую модель + предметный глоссарий для сложного аудио) без перезапуска сервера.

Анализирует URL видео, чтобы извлечь транскрипцию, ключевые кадры, метаданные, комментарии, OCR-текст и аннотированную временную шкалу. Возвращает структурированные данные о содержимом видео: - Транскрипция с временными метками и спикерами - Ключевые кадры, извлечённые через детекцию смены сцен (дедуплицированные, в виде изображений). Для статичных клипов без смены сцен (например, Reels/Stories с говорящей головой, где меняется только текст на экране) автоматически переключается на равномерную временную дискретизацию. - OCR-текст, извлечённый из кадров (код, сообщения об ошибках, текст интерфейса, цены/даты/CTA, видимые на экране) - Аннотированная временная шкала, объединяющая транскрипцию + кадры + OCR в единое хронологическое представление - Метаданные (название, длительность, платформа) - Комментарии зрителей (если доступны) Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Уровни детализации: - "brief": только метаданные + сокращённая транскрипция (быстро, без загрузки видео) - "standard": полный анализ с кадрами смены сцен (по умолчанию) - "detailed": плотная дискретизация (1 кадр/сек), больше кадров, полный OCR Используйте options.fields, чтобы запросить только определённые данные (например, ["metadata", "transcript"]). Используйте options.forceRefresh, чтобы обойти кеш. Используйте options.model / options.language / options.initialPrompt, чтобы переопределить настройки транскрипции Whisper для каждого вызова (например, более тяжёлую модель + предметный глоссарий для сложного аудио) без перезапуска сервера.

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

  • optionsobject

    Analysis options

analyze_videosтолько чтениеидемпотентныйвнешний мир

Анализирует сразу много видео за один вызов, с ограничением параллелизма и результатами по каждому файлу. Для каждого источника выполняет тот же пайплайн, что и analyze_video (кадры + OCR + расшифровка + таймлайн), используя общий кеш и файловые сайдкары. Предназначен для обработки набора локальных файлов: используйте вместе с MCP_WRITE_SIDECARS=1, чтобы результаты сохранялись рядом с каждым видео, а при повторном запуске работа продолжалась, а не пересчитывалась заново. Возвращает JSON-сводку и по одной структурированной записи на источник: - ok=true → title, duration, frameCount, ocrCount, transcriptEntries, warnings - ok=false → сообщение об ошибке для этого конкретного видео (остальные видео всё равно завершаются) Чтобы ответ оставался в разумных рамках, изображения кадров НЕ встраиваются, а полные массивы расшифровки/OCR/таймлайна возвращаются только когда options.fields задан; иначе вы получаете только счётчики. Если нужны изображения или полные данные внутри результата, используйте analyze_video для отдельного источника.

Анализирует сразу много видео за один вызов, с ограничением параллелизма и результатами по каждому файлу. Для каждого источника выполняет тот же пайплайн, что и analyze_video (кадры + OCR + расшифровка + таймлайн), используя общий кеш и файловые сайдкары. Предназначен для обработки набора локальных файлов: используйте вместе с MCP_WRITE_SIDECARS=1, чтобы результаты сохранялись рядом с каждым видео, а при повторном запуске работа продолжалась, а не пересчитывалась заново. Возвращает JSON-сводку и по одной структурированной записи на источник: - ok=true → title, duration, frameCount, ocrCount, transcriptEntries, warnings - ok=false → сообщение об ошибке для этого конкретного видео (остальные видео всё равно завершаются) Чтобы ответ оставался в разумных рамках, изображения кадров НЕ встраиваются, а полные массивы расшифровки/OCR/таймлайна возвращаются только когда options.fields задан; иначе вы получаете только счётчики. Если нужны изображения или полные данные внутри результата, используйте analyze_video для отдельного источника.

Параметры

  • sourcesstring[]обязательный

    Video sources to analyze in one batch (Loom URLs, platform video URLs like YouTube, direct video URLs, or local paths).

  • optionsobject

    Analysis options applied to every source

  • concurrencyinteger

    How many videos to analyze in parallel (default: 2). Frame extraction + OCR are CPU-heavy — raise cautiously.

get_frame_atтолько чтениеидемпотентныйвнешний мир

Извлекает один кадр видео по заданной временной метке. Полезен для проверки того, что отображается на экране в определённый момент. ИИ читает расшифровку, находит ключевой момент и запрашивает точный кадр на этой метке. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или URI file://). Аргументы: - url: источник видео (URL или локальный путь) - timestamp: позиция по времени (например, "1:23", "0:05", "01:23:45") Возвращает: одно изображение кадра видео на указанной временной метке.

Извлекает один кадр видео по заданной временной метке. Полезен для проверки того, что отображается на экране в определённый момент. ИИ читает расшифровку, находит ключевой момент и запрашивает точный кадр на этой метке. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или URI file://). Аргументы: - url: источник видео (URL или локальный путь) - timestamp: позиция по времени (например, "1:23", "0:05", "01:23:45") Возвращает: одно изображение кадра видео на указанной временной метке.

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

  • timestampstringобязательный

    Timestamp to extract frame at (e.g., "1:23", "0:05", "01:23:45")

  • returnBase64boolean

    Return frame as base64 inline instead of file path

get_frame_burstтолько чтениеидемпотентныйвнешний мир

Извлекает несколько кадров, равномерно распределённых по временному интервалу. Разработана для анализа движения и вибрации, где обнаружение смены сцены не работает, потому что «сцена» не меняется — меняется только положение/состояние объектов. Пример: get_frame_burst(url, "0:15", "0:17", 10) → 10 кадров за 2 секунды - AI видит объект в разных положениях на кадрах → понимает вибрацию - Подходит для: дрожания, мерцания, анимации, быстрой прокрутки, индикаторов загрузки Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Аргументы: - url: источник видео (URL или локальный путь) - from: начальная метка времени (например, «0:15») - to: конечная метка времени (например, «0:17») - count: количество кадров (по умолчанию: 5, максимум: 30) Возвращает: N изображений, равномерно распределённых между метками from и to.

Извлекает несколько кадров, равномерно распределённых по временному интервалу. Разработана для анализа движения и вибрации, где обнаружение смены сцены не работает, потому что «сцена» не меняется — меняется только положение/состояние объектов. Пример: get_frame_burst(url, "0:15", "0:17", 10) → 10 кадров за 2 секунды - AI видит объект в разных положениях на кадрах → понимает вибрацию - Подходит для: дрожания, мерцания, анимации, быстрой прокрутки, индикаторов загрузки Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Аргументы: - url: источник видео (URL или локальный путь) - from: начальная метка времени (например, «0:15») - to: конечная метка времени (например, «0:17») - count: количество кадров (по умолчанию: 5, максимум: 30) Возвращает: N изображений, равномерно распределённых между метками from и to.

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

  • fromstringобязательный

    Start timestamp (e.g., "0:15")

  • tostringобязательный

    End timestamp (e.g., "0:17")

  • countnumber

    Number of frames to extract (default: 5)

  • returnBase64boolean

    Return frames as base64 inline instead of file paths

get_framesтолько чтениеидемпотентныйвнешний мир

Извлекает ключевые кадры из видео по ссылке без расшифровки или метаданных. Два режима извлечения: - Обнаружение смены сцен (по умолчанию) — ловит визуальные переходы. - Плотная выборка (dense=true) — захватывает 1 кадр/с для полного покрытия видео. Возвращает оптимизированные, дедуплицированные JPEG-кадры. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI).

Извлекает ключевые кадры из видео по ссылке без расшифровки или метаданных. Два режима извлечения: - Обнаружение смены сцен (по умолчанию) — ловит визуальные переходы. - Плотная выборка (dense=true) — захватывает 1 кадр/с для полного покрытия видео. Возвращает оптимизированные, дедуплицированные JPEG-кадры. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые ссылки на видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI).

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

  • optionsobject
get_metadataтолько чтениеидемпотентныйвнешний мир

Получает метаданные видео, комментарии, главы и AI-саммари по ссылке на видео. Возвращает структурированные метаданные без загрузки видео или извлечения кадров. Быстрее, чем analyze_video, если нужны только метаданные. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые URL видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI).

Получает метаданные видео, комментарии, главы и AI-саммари по ссылке на видео. Возвращает структурированные метаданные без загрузки видео или извлечения кадров. Быстрее, чем analyze_video, если нужны только метаданные. Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp), прямые URL видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI).

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

get_transcriptтолько чтениеидемпотентныйвнешний мир

Извлекает только расшифровку из URL видео. Возвращает расшифровку с временными метками и идентификацией говорящего (если доступно). Быстрее, чем analyze_video, если нужна только расшифровка. Если у платформы нет встроенной расшифровки, пытается выполнить транскрипцию через Whisper (требуется @huggingface/transformers, whisper CLI или OPENAI_API_KEY). Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp; предпочтительны встроенные субтитры), прямые URL видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Для локальных файлов сначала используются боковые файлы .vtt/.srt рядом с видео, затем встроенная дорожка субтитров, и только потом резервная транскрипция Whisper, если ничего из этого нет.

Извлекает только расшифровку из URL видео. Возвращает расшифровку с временными метками и идентификацией говорящего (если доступно). Быстрее, чем analyze_video, если нужна только расшифровка. Если у платформы нет встроенной расшифровки, пытается выполнить транскрипцию через Whisper (требуется @huggingface/transformers, whisper CLI или OPENAI_API_KEY). Поддерживает: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (требуется yt-dlp; предпочтительны встроенные субтитры), прямые URL видео (.mp4, .webm, .mov) и локальные видеофайлы (абсолютный путь или file:// URI). Для локальных файлов сначала используются боковые файлы .vtt/.srt рядом с видео, затем встроенная дорожка субтитров, и только потом резервная транскрипция Whisper, если ничего из этого нет.

Параметры

  • urlstringобязательный

    Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file

  • optionsobject

    Transcription overrides (apply only to the Whisper fallback)

Другие проверенные MCP-сервера

awslabs/mcp

awslabs/mcp

официальный

Набор open source MCP-серверов от AWS Labs для интеграции AI-ассистентов с AWS-сервисами. Упрощает облачную разработку, управление инфраструктурой, работу с базами данных и документацией прямо из I...

Python9467
Sentry MCP

Sentry MCP

официальный

Официальный MCP-сервер Sentry для доступа к ошибкам, issues и трейсам приложения прямо из AI-агента. Отладка, анализ производительности и root-cause через Seer.

TypeScript781
InfluxData/influxdb3_mcp_server

InfluxData/influxdb3_mcp_server

официальный

MCP сервер для InfluxDB 3: SQL-запросы, запись line protocol, управление базами и токенами. Более 20 инструментов для Core, Enterprise, Cloud. Незаменим для инженеров данных и DevOps, работающих с ...

TypeScript36
jau123/MeiGen-AI-Design-MCP

jau123/MeiGen-AI-Design-MCP

MCP-сервер для генерации изображений и видео через ИИ. Работает в Claude Code, Cursor и других AI-инструментах, поддерживает 9 моделей и 1446 промптов. Параллельная генерация, управление стилями и ...

TypeScript1584
designcomputer/mysql_mcp_server

designcomputer/mysql_mcp_server

MCP инструмент для безопасной работы AI-агентов с MySQL. Выполняет SQL-запросы, возвращает схему таблиц и выборки данных. Помогает разработчикам и аналитикам контролировать доступ, избегая SQL-инъекций и используя SSL/TLS.

Python1333
upsonic/gpt-computer-assistant

upsonic/gpt-computer-assistant

Upsonic — Python-фреймворк для построения автономных AI-агентов и традиционных агентных систем. Поддерживает готовых агентов, кастомные инструменты и интеграцию MCP инструментов для подключения к тысячам внешних сервисов. Полезен разработчикам, создающим умных ассистентов с возможностью изоляции ...

Python7914
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин