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).

Параметры
  • countnumber

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

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

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

  • maxWidthinteger

    Width cap for returned frames, in pixels; 0 keeps the source resolution. Defaults to 800 (or MCP_FRAME_MAX_WIDTH). Raise it when the video is a screen recording whose meaning lives in small text — terminals, dashboards, IDEs. Native frames cost several times more context than the default.

  • ocrLanguagestring

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

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

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

  • 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

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 для каждого вызова (например, более тяжёлую модель + предметный глоссарий для сложного аудио) без перезапуска сервера.

Параметры
  • optionsobject

    Analysis options

  • 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

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 для отдельного источника.

Параметры
  • concurrencyinteger

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

  • optionsobject

    Analysis options applied to every source

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

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

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") Возвращает: одно изображение кадра видео на указанной временной метке.

Параметры
  • maxWidthinteger

    Width cap for returned frames, in pixels; 0 keeps the source resolution. Defaults to 800 (or MCP_FRAME_MAX_WIDTH). Raise it when the video is a screen recording whose meaning lives in small text — terminals, dashboards, IDEs. Native frames cost several times more context than the default.

  • returnBase64boolean

    Return frame as base64 inline instead of file path

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

    Timestamp to extract frame at (e.g., "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

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.

Параметры
  • countnumber

    Number of frames to extract (default: 5)

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

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

  • maxWidthinteger

    Width cap for returned frames, in pixels; 0 keeps the source resolution. Defaults to 800 (or MCP_FRAME_MAX_WIDTH). Raise it when the video is a screen recording whose meaning lives in small text — terminals, dashboards, IDEs. Native frames cost several times more context than the default.

  • returnBase64boolean

    Return frames as base64 inline instead of file paths

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

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

  • 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_framesтолько чтениеидемпотентныйвнешний мир

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

Параметры
  • optionsobject
  • 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_metadataтолько чтениеидемпотентныйвнешний мир

Получает метаданные видео, комментарии, главы и 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, если ничего из этого нет.

Параметры
  • optionsobject

    Transcription overrides (apply only to the Whisper fallback)

  • 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

Похожие MCP-сервера

MKirovBG/scribefy-mcp

MKirovBG/scribefy-mcp

Сервер Scribefy для MCP — извлекает транскрипты YouTube по ссылке прямо в Claude Desktop, Cursor, Windsurf и других AI-клиентах. Также бесплатно ищет видео, получает метаданные и похожие ролики.

JavaScript1
zlatkoc/youtube-summarize

zlatkoc/youtube-summarize

MCP-сервер загружает транскрипты YouTube-видео и генерирует их суммаризацию. Поддерживает несколько форматов (текст, JSON, SRT, WebVTT), метаданные, таймкоды, плейлисты. Автоматизирует анализ видео...

Python6
SubDownload/subdownload-mcp

SubDownload/subdownload-mcp

MCP сервер SubDownload интегрирует YouTube в ваш AI инструмент. Поиск видео, получение транскриптов (включая AI ASR), сохранение в базу знаний для повторного использования. Полезен разработчикам и ...

JavaScript4
kimtaeyoon83/mcp-server-youtube-transcript

kimtaeyoon83/mcp-server-youtube-transcript

Сервер для извлечения транскриптов и субтитров из YouTube видео. Поддерживает ссылки, Shorts и ID, автоматически подбирает язык и фильтрует рекламу. Полезен разработчикам AI-ассистентов и аналитика...

TypeScript592
lfnovo/content-core

lfnovo/content-core

MCP сервер Content Core извлекает, обрабатывает и суммаризирует контент из URL, документов и медиафайлов. Полезен разработчикам и ИИ-агентам: интеграция с Claude Desktop, поддержка YouTube, PDF, аудио. Единый API и CLI.

Python171
stabgan/openrouter-mcp-multimodal

stabgan/openrouter-mcp-multimodal

Мультимодальный MCP-сервер для анализа и генерации текста, изображений, аудио и видео. Интегрируется с Claude Desktop, Cursor и другими клиентами через OpenRouter, давая доступ к 300+ моделям. Вклю...

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

Лука Никитин