Environment Variables
Set these variables in the env block of your MCP client configuration file (.vscode/mcp.json, .mcp.json, etc.).
Core — Video Providers
Section titled “Core — Video Providers”| Variable | Description | Default |
|---|---|---|
GEMINI_API_KEY | Google API key for Gemini (video and audio) | — |
Z_AI_API_KEY | Z.AI API key for GLM-4.6V | — |
DASHSCOPE_API_KEY | Alibaba Cloud API key for Qwen3.6 | — |
MOONSHOT_API_KEY | Moonshot AI API key for Kimi K2.6 | — |
MIMO_API_KEY | Xiaomi MiMo API key for MiMo-V2 Omni | — |
VIDEO_MCP_DEFAULT_PROVIDER | Default video provider: gemini, glm, qwen, kimi, or mimo | gemini |
See Video Providers for details on each provider, pricing, and where to get API keys.
S3 Relay
Section titled “S3 Relay”| Variable | Description | Default |
|---|---|---|
AWS_S3_BUCKET | S3 bucket name for automatic video relay. Enables GLM/Qwen/MiMo to bypass the 10–12 MB local file limit. | — |
AWS_ACCESS_KEY_ID | AWS access key ID. Not needed if using ~/.aws/credentials or an IAM role. | — |
AWS_SECRET_ACCESS_KEY | AWS secret access key. Required alongside AWS_ACCESS_KEY_ID. | — |
AWS_REGION | AWS region for the S3 bucket (e.g. us-east-1). | — |
AWS_S3_RELAY_CLEANUP | Set to false to keep relayed objects across sessions. Default: deleted at session end + orphans swept at startup. | true |
See S3 Relay for the full setup guide.
Audio Providers
Section titled “Audio Providers”| Variable | Description | Default |
|---|---|---|
DEEPGRAM_API_KEY | Deepgram API key | — |
ASSEMBLYAI_API_KEY | AssemblyAI API key | — |
GROQ_API_KEY | Groq API key for Whisper transcription | — |
AUDIO_MCP_DEFAULT_PROVIDER | Default audio provider: deepgram, assemblyai, groq, or gemini | deepgram |
AUDIO_ENHANCE_VIDEO_ANALYSIS | Inject audio transcripts into analyze_video/summarize_video prompts (GLM/Kimi/Qwen/MiMo). auto = when audio detected; true = always; false = disabled. | auto |
See Audio Providers for provider comparison and diarization/translation support.
Caching
Section titled “Caching”| Variable | Description | Default |
|---|---|---|
VIDEO_MCP_CACHE_TTL_MINUTES | How long video artifacts (video file, frames, audio, transcripts) are cached. Set 0 to disable caching. | 43200 (30 days) |
VIDEO_MCP_CACHE_MAX_ENTRIES | Maximum number of entries in the artifact cache. LRU eviction at the video level. Set 0 for unbounded. | 100 |
VIDEO_MCP_CACHE_MAX_MB | Maximum total disk usage for the cache (MB). LRU eviction when exceeded. Set 0 to disable the limit. | 5120 (5 GB) |
See Caching & CLI for cache location details and management commands.
Video Summarization
Section titled “Video Summarization”| Variable | Description | Default |
|---|---|---|
VIDEO_MCP_MAX_FRAMES | Maximum keyframes for summarize_video (GLM/Qwen/MiMo when S3 relay is not configured; Kimi only when video > 100 MB; Gemini always uploads full video). Free: clamped 5–50. Pro: default 100; set 0 for uncapped. Bypassed entirely for GLM/Qwen/MiMo when S3 relay is configured. | 50 free / 100 pro |
| Variable | Description | Default |
|---|---|---|
QWEN_BASE_URL | Override the DashScope API endpoint for regional routing. Singapore (default) / Virginia (https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions) / Beijing (https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions). | https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions |
QWEN_REQUEST_TIMEOUT_MS | Client-side timeout in ms for Qwen API requests. DashScope’s server-side limit is ~5 minutes, so values above ~285 000 are unlikely to help. | 240000 (4 min) |
| Variable | Description | Default |
|---|---|---|
GLM_REQUEST_TIMEOUT_MS | Client-side timeout (ms) for GLM API requests. Z.AI has no hard server-side streaming timeout, so raising this value (e.g. 480000 for 8 minutes) can help when analysing long videos with many frames. | 240000 (4 min) |
| Variable | Description | Default |
|---|---|---|
MIMO_REQUEST_TIMEOUT_MS | Client-side timeout (ms) for MiMo API requests. | 240000 (4 min) |
yt-dlp (Platform Downloads)
Section titled “yt-dlp (Platform Downloads)”| Variable | Description | Default |
|---|---|---|
YT_DLP_MAX_RESOLUTION | Max video height (px) for yt-dlp downloads. Free users are capped at 720. | 720 |
YT_DLP_PATH | Path to a custom yt-dlp binary. If unset, auto-detects common installation paths (WinGet, Homebrew, pip, etc.) then falls back to the bundled binary. | — |
YT_DLP_COOKIES_FILE | Path to a Netscape-format cookies file for authenticated downloads (age-restricted, private videos). | — |
YT_DLP_IMPERSONATE | Browser to impersonate (e.g. chrome, firefox). Needed for sites like Udemy that block non-browser user-agents; requires a yt-dlp build with curl_cffi support. | — |
Pro Tier
Section titled “Pro Tier”| Variable | Description | Default |
|---|---|---|
VIDEO_MCP_LICENSE_KEY | Pro license key. Unlocks extended frames, platform downloads beyond YouTube, resolution above 720p, and all media generation tools. Valid 1 year. | — |
See Pro Tier for details on what the Pro tier unlocks.
MiniMax (Media Generation)
Section titled “MiniMax (Media Generation)”Required for all media generation tools (text_to_speech, generate_image, generate_video, generate_music, query_generation_task). All generation tools also require a Pro license.
| Variable | Description | Default |
|---|---|---|
MINIMAX_API_KEY | MiniMax API key. Obtain from the MiniMax Interface Key page. | — |
MINIMAX_BASE_URL | Override the MiniMax API base URL (e.g. for regional routing or a proxy) | https://api.minimax.io |
MINIMAX_REQUEST_TIMEOUT_MS | Client-side timeout (ms) for MiniMax API requests. Increase if initial API calls time out on slow networks. | 240000 (4 min) |
Example: full configuration
Section titled “Example: full configuration”{ "servers": { "videoMcp": { "type": "stdio", "command": "video-context-mcp", "env": { "GEMINI_API_KEY": "your-gemini-key", "Z_AI_API_KEY": "your-zai-key", "DASHSCOPE_API_KEY": "your-dashscope-key", "MOONSHOT_API_KEY": "your-moonshot-key", "MIMO_API_KEY": "your-mimo-key", "VIDEO_MCP_DEFAULT_PROVIDER": "gemini", "DEEPGRAM_API_KEY": "your-deepgram-key", "ASSEMBLYAI_API_KEY": "your-assemblyai-key", "GROQ_API_KEY": "your-groq-key", "AUDIO_MCP_DEFAULT_PROVIDER": "deepgram", "AUDIO_ENHANCE_VIDEO_ANALYSIS": "auto", "AWS_S3_BUCKET": "my-video-analysis", "AWS_ACCESS_KEY_ID": "your-aws-access-key", "AWS_SECRET_ACCESS_KEY": "your-aws-secret-key", "AWS_REGION": "us-east-1", "AWS_S3_RELAY_CLEANUP": "true", "VIDEO_MCP_CACHE_TTL_MINUTES": "43200", "VIDEO_MCP_CACHE_MAX_ENTRIES": "100", "VIDEO_MCP_CACHE_MAX_MB": "5120", "VIDEO_MCP_MAX_FRAMES": "50", "QWEN_BASE_URL": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", "QWEN_REQUEST_TIMEOUT_MS": "240000", "GLM_REQUEST_TIMEOUT_MS": "240000", "MIMO_REQUEST_TIMEOUT_MS": "240000", "YT_DLP_MAX_RESOLUTION": "720", "YT_DLP_PATH": "/usr/local/bin/yt-dlp", "YT_DLP_COOKIES_FILE": "/path/to/cookies.txt", "YT_DLP_IMPERSONATE": "chrome", "VIDEO_MCP_LICENSE_KEY": "your-license-key", "MINIMAX_API_KEY": "your-minimax-key", "MINIMAX_BASE_URL": "https://api.minimax.io", "MINIMAX_REQUEST_TIMEOUT_MS": "240000" } } }}Remove or omit any variables you don’t need — unset optional vars fall back to their defaults.