Video Vision Mcp

io.github.KitDevUA由 GitHub 帳號 KitDevUA 發布v0.5.1更新於 Oct 24, 2026

Analyze any video (local file or URL) into frames + transcript for Claude Code

已驗證STDIO僅桌面媒體與設計AI 與機器學習

概覽

AI 產生的概覽

一個本機 MCP 伺服器,把影片檔案或直連網址轉成取樣畫面和逐字稿,或交給 Gemini 原生分析,讓助理能理解影片內容。

可以做什麼
分析本機路徑或直連網址的影片,輸出取樣畫面、逐字稿和中繼資料,可設定取樣間隔,也可指定時間點取幀。只取得逐字稿文字。列出已快取的分析結果及所用後端。可在三種後端間選擇:完全本機的 ffmpeg 加 whisper.cpp、經 OpenAI 或 Groq 的雲端轉錄、或由 Gemini 一次分析整段影片。
適用情境
當助理需要理解它本身無法觀看的影片內容時適用,例如缺陷單中的螢幕錄影或連結片段,並希望取得畫面加逐字稿,或一次 Gemini 分析結果。
執行需求
以 Python 套件形式在本機執行(需 Python 3.10 以上),可透過 uvx 或 pip 使用。第 1 層不需金鑰,但首次轉錄會從 Hugging Face 下載 whisper 模型。雲端層需要 GEMINI_API_KEY、OPENAI_API_KEY 或 GROQ_API_KEY,可透過 VIDEO_MCP_ENV 指向的 .env 檔載入。取得連結和模型需要網路存取。
安裝前請注意
設定 GEMINI_API_KEY、OPENAI_API_KEY 或 GROQ_API_KEY 後,影片內容會傳送給對應第三方;伺服器會顯示一次性提示,且除非停用,Gemini 優先。只有第 1 層完全在本機。下載的影片和快取結果保存在快取目錄,預設 24 小時後清除。需要驗證的 API 網址不能作為 url 輸入。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Video Vision Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

video-vision-mcp

[CI] [PyPI] [Python] [License: MIT]

An MCP server that gives Claude Code the ability to analyze any video — a local file or a URL — through one set of tools.

Claude can't watch video natively (only text + the first frame of an image). This server converts a video into sampled frame images + an audio transcript, or — when a Gemini key is present — a native Gemini analysis of the whole video.

It is standalone: give it a ready video (a local path or a direct URL) and it does the rest. It does not connect to Jira/Slack/etc. If a video lives behind an integration, fetch it with that integration first (download to a file or get a direct URL), then hand the file_path or url to this server.

Scenario: a Jira bug ticket has only a screen-recording, no text. Your Jira MCP downloads the attachment to a temp file → analyze_video file_path=/tmp/bug.mp4 → you see the frames + transcript (or Gemini's analysis) and can reason about the bug.

Three backend tiers (auto-selected)

TierNeedsWhat it does
1 — local (default)nothingffmpeg frames + whisper.cpp transcript. Free, fully local, always works.
2 — cloud ASROPENAI_API_KEY or GROQ_API_KEYLocal frames, but transcription via OpenAI Whisper / Groq for higher quality.
3 — native GeminiGEMINI_API_KEYGemini ingests the whole video (visual + audio) in one call, with MM:SS timestamps. Default when the key is set.

Precedence: Gemini > OpenAI > Groq > local. Set VIDEO_MCP_DISABLE_GEMINI=true to force tiers 1/2 even with a Gemini key. The backend used is named in every result.

Privacy: tier 1 never uploads anything. Tiers 2/3 print a one-time notice in the session the first time video content is sent to a third party.

Tools

  • analyze_video — frames + transcript + metadata (the main tool). frame_interval sets seconds between frames (default 1.0; e.g. 0.5/0.25/0.1 denser, 2/5 sparser).
  • get_video_transcript_only — transcript text only.
  • extract_frames_at — frames at specific timestamps ("00:42", "1:05", 12.5).
  • list_recent_analyses — cached analyses + backend used.

Install

Requires Python ≥ 3.10. A single install pulls everything — backends, plus the ffmpeg and whisper.cpp dependencies. Nothing is ever installed globally on your machine (no brew/apt/winget, no sudo).

Use it (recommended)

With uv you don't install it explicitly — uvx runs the published package on demand (see Register in Claude Code). To install into an environment instead:

bash
uv pip install video-vision-mcp     # or: pip install video-vision-mcp

From source (development)

bash
git clone https://github.com/KitDevUA/video-vision-mcp.gitcd video-vision-mcpuv venv && source .venv/bin/activateuv pip install -e ".[dev]"          # all backends bundled

Dependencies — fully self-contained

  • ffmpeg / ffprobe: if they are already on your PATH, those system binaries are used. Otherwise the bundled static-ffmpeg package supplies them (fetched once into its own local cache — never a system-wide install).
  • whisper.cpp (tier 1 transcription): shipped as the bundled pywhispercpp binding (prebuilt wheels; builds from source only if no wheel exists for your platform/Python). A whisper-cli already on PATH is used if present.
  • whisper model: the ggml model (base by default) downloads from Hugging Face into the cache on first transcription. Override with VIDEO_MCP_WHISPER_MODEL (tiny/base/small/medium/large-v3) or VIDEO_MCP_WHISPER_MODEL_PATH.
  • cloud-only: set OPENAI_API_KEY / GROQ_API_KEY (tier 2) or GEMINI_API_KEY (tier 3); whisper.cpp is then never invoked.

Configure

bash
cp env.example .env# edit .env — nothing is required for tier 1

See env.example for every variable — all optional (API keys and tuning). Tier 1 needs none.

Register in Claude Code

Add to your project .mcp.json (or global config) — see .mcp.json.example:

json
{  "mcpServers": {    "video-vision": {      "command": "uvx",      "args": ["video-vision-mcp"],      "env": { "VIDEO_MCP_ENV": "/abs/path/to/.env" }    }  }}

uvx downloads and runs the published package automatically — no manual install step. VIDEO_MCP_ENV is optional (tier 1 needs no keys); point it at your .env if you use the cloud backends. For local development against a checkout, use "args": ["--from", "/abs/path/to/video-vision-mcp", "video-vision-mcp"] instead. Restart Claude Code; the video-vision tools then appear.

Cache

Results are cached at ~/.cache/video-vision-mcp/ keyed by (file hash, backend, frame interval) — re-analyzing the same video is instant, and switching backends or intervals keeps each result separately. Downloaded URLs and whisper models live under the same dir. Override with VIDEO_MCP_CACHE_DIR.

Cached analyses and downloaded videos older than VIDEO_MCP_CACHE_TTL_HOURS (default 24) are pruned on startup and skipped on read; set 0 to keep them forever. Whisper models are never pruned (expensive to re-download).

Using it with an integration (e.g. Jira, Slack)

This server is deliberately standalone — it never talks to Jira, Slack, or any other service. When a video lives behind an integration, let that integration's MCP fetch it, then pass the result here:

  1. The integration MCP downloads the attachment to a local file (or gives a direct, publicly reachable URL — an authenticated API URL won't work with url).
  2. Call analyze_video file_path=<downloaded file> (or url=<direct link>).

This keeps auth and service-specific logic where it belongs, and lets one video tool serve every source.

來源:README.md,提交 128b7d7

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.5.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分