Let AI agents watch videos and answer questions about them through any OpenAI-compatible endpoint.
Connect Runs on your machine
claude mcp add video-understanding-mcp -e VIDEO_BASE_URL=<VIDEO_BASE_URL> -e VIDEO_MODEL=<VIDEO_MODEL> -e VIDEO_API_KEY=<VIDEO_API_KEY> -e VIDEO_EXTRA_HEADERS=<VIDEO_EXTRA_HEADERS> -e VIDEO_PART_FORMAT=<VIDEO_PART_FORMAT> -e VIDEO_MAX_DURATION_SECONDS=<VIDEO_MAX_DURATION_SECONDS> -e VIDEO_MAX_UPLOAD_MB=<VIDEO_MAX_UPLOAD_MB> -e VIDEO_ALLOWED_DIRS=<VIDEO_ALLOWED_DIRS> -e VIDEO_VERIFY_MEDIA=<VIDEO_VERIFY_MEDIA> -- npx -y @granitebps/[email protected]
{
"mcpServers": {
"video-understanding-mcp": {
"command": "npx",
"args": [
"-y",
"@granitebps/[email protected]"
],
"env": {
"VIDEO_BASE_URL": "<VIDEO_BASE_URL>",
"VIDEO_MODEL": "<VIDEO_MODEL>",
"VIDEO_API_KEY": "<VIDEO_API_KEY>",
"VIDEO_EXTRA_HEADERS": "<VIDEO_EXTRA_HEADERS>",
"VIDEO_PART_FORMAT": "<VIDEO_PART_FORMAT>",
"VIDEO_MAX_DURATION_SECONDS": "<VIDEO_MAX_DURATION_SECONDS>",
"VIDEO_MAX_UPLOAD_MB": "<VIDEO_MAX_UPLOAD_MB>",
"VIDEO_ALLOWED_DIRS": "<VIDEO_ALLOWED_DIRS>",
"VIDEO_VERIFY_MEDIA": "<VIDEO_VERIFY_MEDIA>"
}
}
}
}
{
"mcpServers": {
"video-understanding-mcp": {
"command": "npx",
"args": [
"-y",
"@granitebps/[email protected]"
],
"env": {
"VIDEO_BASE_URL": "<VIDEO_BASE_URL>",
"VIDEO_MODEL": "<VIDEO_MODEL>",
"VIDEO_API_KEY": "<VIDEO_API_KEY>",
"VIDEO_EXTRA_HEADERS": "<VIDEO_EXTRA_HEADERS>",
"VIDEO_PART_FORMAT": "<VIDEO_PART_FORMAT>",
"VIDEO_MAX_DURATION_SECONDS": "<VIDEO_MAX_DURATION_SECONDS>",
"VIDEO_MAX_UPLOAD_MB": "<VIDEO_MAX_UPLOAD_MB>",
"VIDEO_ALLOWED_DIRS": "<VIDEO_ALLOWED_DIRS>",
"VIDEO_VERIFY_MEDIA": "<VIDEO_VERIFY_MEDIA>"
}
}
}
}
{
"servers": {
"video-understanding-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@granitebps/[email protected]"
],
"env": {
"VIDEO_BASE_URL": "<VIDEO_BASE_URL>",
"VIDEO_MODEL": "<VIDEO_MODEL>",
"VIDEO_API_KEY": "<VIDEO_API_KEY>",
"VIDEO_EXTRA_HEADERS": "<VIDEO_EXTRA_HEADERS>",
"VIDEO_PART_FORMAT": "<VIDEO_PART_FORMAT>",
"VIDEO_MAX_DURATION_SECONDS": "<VIDEO_MAX_DURATION_SECONDS>",
"VIDEO_MAX_UPLOAD_MB": "<VIDEO_MAX_UPLOAD_MB>",
"VIDEO_ALLOWED_DIRS": "<VIDEO_ALLOWED_DIRS>",
"VIDEO_VERIFY_MEDIA": "<VIDEO_VERIFY_MEDIA>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
VIDEO_BASE_URLRequired | Base URL of an OpenAI-compatible chat completions endpoint whose model accepts video, e.g. https://host/v1 |
VIDEO_MODELRequired | Model (or router alias) to send videos to |
VIDEO_API_KEYOptional, secret | Endpoint API key, sent as a bearer token |
VIDEO_EXTRA_HEADERSOptional, secret | Extra endpoint request headers as a JSON object, such as Cloudflare Access service-token headers |
VIDEO_PART_FORMATOptional | How the video is attached: video_url, image_url, file, or input_file |
VIDEO_MAX_DURATION_SECONDSOptional | Longest analyzed range in seconds |
VIDEO_MAX_UPLOAD_MBOptional | Largest prepared video sent to the endpoint, in MB |
VIDEO_ALLOWED_DIRSOptional | Directories local files may be read from; local files are refused when unset |
VIDEO_VERIFY_MEDIAOptional | Fail calls when the endpoint evidently ignored the video |
Details
| Package | @granitebps/[email protected] (NPM, stdio) |
| First published | 13 Nov 2026 |
| Last updated | 13 Nov 2026 |
| Registry name | io.github.granitebps/video-understanding-mcp |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
