Skip to main content
Glama

Video Intelligence MCP

Paste a permitted public video URL into Codex, Claude Code, or Kimi Code and ask for a detailed breakdown. This local MCP server downloads supported public media with yt-dlp, uploads it to Gemini, and returns a timestamped production brief covering shots, visual design, animation, motion, narration, music, sound effects, and editing.

It is built to be set-and-forget: no browser extension, no background daemon, and no per-chat copy/paste. Your AI client starts the local server only when it needs a video tool.

Install

Prerequisites: Node 20+, a Gemini API key, and yt-dlp for social-video downloads (brew install yt-dlp on macOS or pipx install yt-dlp elsewhere).

npx -y @solad/video-intelligence-mcp@latest setup

The animated setup saves the Gemini key in a user-only configuration file and connects Codex, Claude Code, and, where the installed version supports it, Kimi Code. It also installs the Codex skill that makes URL-based requests reliably select the video tool.

For a non-interactive setup:

npx -y @solad/video-intelligence-mcp@latest setup --api-key "$GEMINI_API_KEY" --client codex --client claude

Related MCP server: youtube-gemini-mcp

Use it naturally

In any connected client, paste a URL and say:

Give me an insanely detailed production breakdown of this: https://...

Or ask a focused question:

At what timestamp does the logo animate in, and how is the movement made?

The MCP server exposes five tools:

Tool

Purpose

analyze_video

Download (when needed), analyze a URL or local video, and return a video_id.

ask_video

Ask Gemini any number of follow-up questions about a retained video session.

forget_video

Delete a retained Gemini upload and its local session record.

download_video

Save a user-provided public video privately on this computer.

video_intelligence_status

Check the local setup.

Support and limits

  • Works with public URLs supported by the installed yt-dlp extractor. That commonly includes YouTube, TikTok, Instagram, X, Vimeo, and direct video files, subject to each site's current availability.

  • Uses Gemini Files API for video analysis. The default model is gemini-3.6-flash; set GEMINI_MODEL to override it.

  • A pasted public URL is treated as authorized by the caller. The project does not bypass DRM, paywalls, private links, logins, or access controls.

  • Gemini commonly samples visual video input around 1 fps. Reports flag rapid cuts and fine details that need frame-by-frame verification.

Client setup without the wizard

Each client uses the standard local stdio MCP shape:

{
  "mcpServers": {
    "video-intelligence": {
      "command": "npx",
      "args": ["-y", "@solad/video-intelligence-mcp@latest", "serve"]
    }
  }
}
codex mcp add video-intelligence -- npx -y @solad/video-intelligence-mcp@latest serve
claude mcp add --scope user video-intelligence -- npx -y @solad/video-intelligence-mcp@latest serve
kimi mcp add --transport stdio video-intelligence -- npx -y @solad/video-intelligence-mcp@latest serve

Kimi's MCP command is available in newer Kimi Code releases; update it if kimi mcp is not recognized. The installer detects this and prints the correct next step.

Developer workflow

npm install
npm run check
npm run build
node dist/cli.js doctor

The client integrations point to the public npm package, so use node dist/cli.js serve with a local MCP configuration while developing. Run the setup wizard after publishing the package.

Publishing uses a scoped npm package:

npm login
npm publish --access public

Keep real API keys out of the repository; .env is ignored.

Privacy

Downloads are stored under the user-only Video Intelligence state directory and are not committed or shared. Analysis uploads are retained for follow-up prompts for 24 hours by default (set VIDEOINTEL_SESSION_HOURS, maximum 72); use forget_video to delete an upload immediately. Review Google's current policy before processing sensitive footage.

License

MIT

Available Tools

5 tools
analyze_videoAnalyze and retain a video for follow-up questionsA

Use whenever the user pastes a public video URL or asks for a visual, animation, movement, music, transcript, or shot-by-shot breakdown. A user-provided public URL is treated as authorized. Download it, ask Gemini for the requested analysis, then return video_id. Use ask_video with that video_id for every follow-up question; do not re-download it.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic http(s) URL for a video page or direct video file. Treat a user-provided URL as authorized for this request.
modeNoUse detailed for a full production brief, summary for concise notes, question for a targeted answer.detailed
questionNoQuestion to answer when mode is question.
file_pathNoAbsolute path of an existing local video file.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden and discloses key behaviors: it downloads the video, sends it to Gemini, returns a video_id, and instructs the agent to reuse that ID instead of re-downloading. It also clarifies that a user-provided public URL is treated as authorized. However, it does not mention retention duration, deletion, or local-file handling, leaving some behavioral gaps.

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?

The description is three concise sentences that front-load the trigger conditions, then give the workflow and follow-up instruction. Every sentence earns its place, with no filler or repetition.

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?

The description gives a complete workflow for public URLs, including authorization, download, analysis, video_id return, and follow-up via ask_video. It is slightly incomplete because it never mentions the file_path local-video path from the schema, nor does it explain retention or deletion semantics beyond 'do not re-download.'

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?

Schema description coverage is 100%, so the parameter descriptions already explain url, mode, question, and file_path. The tool description adds little beyond the schema, mostly repeating the URL authorization note already present in the schema. Baseline of 3 is appropriate because the schema does the heavy lifting.

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 exactly what the tool does: analyze a public video URL and retain it for follow-up, with a specific verb and resource. It also distinguishes the tool from siblings like ask_video by explicitly reserving follow-up questions for ask_video, and from download_video by noting the download is a means to analysis.

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

Usage Guidelines5/5

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

It says 'Use whenever the user pastes a public video URL or asks for a visual, animation, movement, music, transcript, or shot-by-shot breakdown,' giving clear trigger conditions. It also explicitly instructs to use ask_video for every follow-up and not to re-download, thereby naming the alternative and exclusion.

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

ask_videoAsk Gemini any follow-up about an analyzed videoA

Ask any new question, request a different level of detail, or ask Gemini to inspect a specific timestamp in a previously analyzed video. Use this instead of downloading or uploading the video again.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesAny instruction or question for Gemini about this video. Ask for timestamps and evidence when useful.
video_idYesThe video_id returned by analyze_video.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It mentions the ability to ask questions and inspect timestamps, but does not disclose any side effects, conversation state, rate limits, or whether this is purely a read operation. This is a significant gap for a tool that may rely on prior analysis context.

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?

The description is two sentences, front-loaded with the action and resource, and every phrase adds value. It avoids redundant wording and is highly scannable.

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

Completeness3/5

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

Given the simple tool (2 params, no output schema), the description covers the core purpose and usage context. However, it does not explain the response format, potential errors, or whether the conversation context persists, which would be useful for an AI agent deciding whether to use it. It is adequate but not fully complete.

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?

Schema coverage is 100%, with each parameter having a meaningful description. The tool description adds context about the purpose (follow-up questions) but does not significantly enhance the parameter semantics beyond what the schema already provides, so the baseline 3 is appropriate.

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 uses specific verbs ('ask', 'inspect') with a clear resource ('previously analyzed video') and lists concrete use cases (new questions, different detail, specific timestamp). It also distinguishes itself from siblings by explicitly saying to use this instead of re-downloading or uploading the video.

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?

The description clearly states when to use this tool: for follow-up questions on an already analyzed video, and explicitly advises against downloading/uploading again. However, it does not explicitly name alternative tools or state when not to use it (e.g., for new videos), so it falls just short of full guidance.

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

download_videoDownload a user-provided public videoA

Download a user-provided public video to Video Intelligence's private local downloads folder. Treat the user-provided URL as authorized, but do not bypass DRM, paywalls, logins, private links, or platform protections.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic http(s) URL for a video page or direct file.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the video is saved to a private local folder, that the URL is treated as authorized, and that the tool will not circumvent protections. This gives the agent a clear model of the tool's safety boundaries, which is valuable beyond the input schema alone.

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?

The description is two sentences, with the primary action front-loaded and the constraint sentence adding necessary guidance. Every word earns its place; no filler or repetition.

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

Completeness3/5

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

For a simple one-parameter tool, the description covers purpose and constraints, but it omits any information about the return value or outcome (e.g., whether it returns a file path, success message, or error). Since there is no output schema, this gap makes the description only minimally complete for an agent that needs to know what to expect after invocation.

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 schema already fully describes the 'url' parameter with 100% coverage (format, type, description). The tool description adds that the URL is 'user-provided' and 'authorized', which is mild extra context but not essential. The baseline of 3 applies because the schema does the heavy lifting.

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 clearly states the action ('Download a user-provided public video') and the destination ('Video Intelligence's private local downloads folder'). This distinguishes it from sibling tools like analyze_video and ask_video, which operate on videos already available.

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?

The description provides clear context for when to use the tool (downloading public videos) and includes an explicit exclusion: 'do not bypass DRM, paywalls, logins, private links, or platform protections.' It does not name alternative tools, but the sibling list makes it obvious that this is the download step before other operations.

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

forget_videoDelete a retained Gemini video sessionA

Immediately delete the uploaded Gemini file and remove the local session record when the user is finished asking follow-up questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesThe video_id returned by analyze_video.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the immediate destructive action ('Immediately delete') and the additional side effect of removing the local session record. This goes beyond the name and title, though it does not specify irreversibility or idempotency.

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?

The description is a single, front-loaded sentence that states the action and purpose without wasted words. It earns its place by adding context about timing and the local record.

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 deletion tool with one parameter and no output schema, the description adequately covers what is deleted, when to use it, and the side effect. It does not mention error handling, but that is not essential for basic usage.

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?

Schema coverage is 100%, and the parameter 'video_id' already describes its source from analyze_video. The tool description adds no extra parameter semantics, so the baseline of 3 is appropriate.

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 clearly states the verb 'delete' and the target resources: 'uploaded Gemini file' and 'local session record'. It distinguishes from sibling tools which analyze, ask, download, or check status, so the delete purpose is unambiguous.

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?

The description provides a clear context for use: 'when the user is finished asking follow-up questions'. It does not explicitly mention when not to use or name alternatives, but the context is sufficient to guide the agent on timing.

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

video_intelligence_statusCheck Video Intelligence setupA

Check whether the local video-analysis server is configured before attempting a download or Gemini analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool is a configuration check, but it doesn't state whether it's read-only, what the output looks like, or how to interpret the result. It adds little beyond the title and could be more transparent about the check's behavior.

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?

The description is a single, front-loaded sentence that efficiently conveys purpose and context without redundancy.

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

Completeness3/5

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

Given the tool's simplicity, the description covers its main purpose and usage. However, with no output schema and no annotations, it omits details about the returned status or behavior when the server is unconfigured. This leaves a gap for a tool that primarily returns a status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is nothing to document. The baseline for zero-parameter tools is 4, and the description correctly makes no claims about parameters.

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 clearly states the tool's function: checking whether the local video-analysis server is configured. It uses a specific verb ('check') and resource ('server configured'), and it distinguishes from sibling tools by framing it as a prerequisite check for download and analysis operations.

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?

The description explicitly states when to use this tool: 'before attempting a download or Gemini analysis.' This references the sibling tools (download and Gemini analysis) and gives a clear temporal context. It doesn't explicitly list alternatives or exclusions, but the usage context is well-defined.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.1
    • First observedanalyze_video
    • First observedask_video
    • First observeddownload_video
    • First observedforget_video
    • First observedvideo_intelligence_status

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation3/5

The tools mostly have distinct purposes, but analyze_video and download_video overlap since analyze_video includes downloading. An agent could be confused when a user asks to simply download a video, as analyze_video's description says to use it whenever a URL is pasted. The other tools are clearly distinct.

Naming Consistency4/5

Most tools follow a verb_video pattern (analyze_video, ask_video, forget_video, download_video), but video_intelligence_status deviates from this pattern, breaking the otherwise consistent naming convention.

Tool Count5/5

With exactly 5 tools, the server is well-scoped for its purpose. Each tool serves a necessary role in the video analysis lifecycle, and the count is neither too small nor too large.

Completeness4/5

The tool set covers the core workflow: analyze, ask follow-ups, forget/delete, download, and check status. Minor gaps exist, such as no tool to list previous analyses or retrieve storage information, but these are not critical for the primary use case.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers