video-context-mcp-server 0.20.1-beta → 0.22.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Video Context MCP Server
2
2
 
3
- Video Context MCP Server is a Model Context Protocol (MCP) server that gives MCP-compatible coding assistants (such as GitHub Copilot in VS Code, Cursor, and Claude Code) the ability to understand and analyze video content.
3
+ An MCP server that gives coding assistants (GitHub Copilot, Cursor, Claude Code) the ability to understand and analyze video content.
4
+
5
+ **[Watch the demo](https://www.youtube.com/watch?v=vv4ojD5_67M)**
4
6
 
5
7
  ## Features
6
8
 
@@ -9,98 +11,43 @@ Video Context MCP Server is a Model Context Protocol (MCP) server that gives MCP
9
11
  - 🖼️ **Frame Extraction** — Extract frames at specific timestamps or intervals
10
12
  - 🔍 **Timestamp Search** — Find the exact moment when something happens in a video
11
13
  - 📊 **Video Metadata** — Get duration, resolution, fps, codec, and other technical details
12
- - 🎙️ **Audio Transcription** — Transcribe speech from any video using Deepgram, AssemblyAI, Groq/Whisper, or Gemini
14
+ - 🎙️ **Audio Transcription** — Transcribe speech using Deepgram, AssemblyAI, Groq/Whisper, or Gemini
13
15
  - 🔊 **Speaker Diarization** — Identify who said what (Deepgram and AssemblyAI)
14
- - 🔄 **Multi-Backend Support** — Choose between Gemini (native multimodal), GLM-4.6V (cheap/free), or Kimi K2.5 (broader format support)
15
- - 🎯 **Smart Video Handling** — Extracts keyframes from long videos to reduce token usage (when not using Gemini)
16
- - **Pro tier** — audio-enhanced analysis, extended frame extraction, and multi-platform video downloads. [Learn more ↓](#-pro)
17
-
18
- **[Check demo here](https://www.youtube.com/watch?v=vv4ojD5_67M)**
16
+ - 🔊 **Audio-Enhanced Analysis** — Auto-transcribes audio and injects transcripts into AI prompts for richer results (GLM/Kimi only)
17
+ - 🔄 **Multi-Backend Support** — Choose between GLM-4.6V (free), Kimi K2.5, or Gemini
18
+ - 🎯 **Smart Video Handling** — Extracts keyframes from long videos to reduce token usage
19
+ - ⭐ **Pro tier** — Extended frame extraction, multi-platform downloads, higher resolution. [Learn more ↓](#pro)
19
20
 
20
- ## 🔓 Pro
21
+ ---
21
22
 
22
- The free tier covers all core functionality. A **pro license** unlocks four power features:
23
+ ## Quick Start
23
24
 
24
- | Feature | Free Tier | Pro |
25
- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | --------------------------------- |
26
- | **🔊 Audio-enhanced analysis** — Auto-transcribes a video's audio track and injects the transcript into AI prompts, giving `analyze_video` and `summarize_video` richer, more accurate results. Controlled by `AUDIO_ENHANCE_VIDEO_ANALYSIS`.<br />**Note**: The `transcribe_video` tool itself is available to all users — this feature specifically enhances the _analysis_ tools by injecting the transcript automatically. | Disabled | ✅ Enabled |
27
- | **🖼️ Extended frame extraction** — Raise the keyframe cap used by `summarize_video` for long or complex videos beyond the free-tier limit. Controlled by `VIDEO_MCP_MAX_FRAMES`. | Capped at 50 | Default 100; set `0` for uncapped |
28
- | **🌐 Platform video downloads** — Analyze videos directly from YouTube, Vimeo, TikTok, and hundreds of other yt-dlp-supported platforms without downloading manually.<br />**Note**: Local files and direct `http(s)://` video file URLs (e.g., `https://example.com/video.mp4`) work for all users — no license needed. This gate only applies to platform URLs handled by yt-dlp (e.g., YouTube, Vimeo, TikTok links). | YouTube only | All platforms |
29
- | **📺 Extended download resolution** — Raise the yt-dlp download resolution cap beyond 720p for higher-quality platform video downloads. Controlled by `YT_DLP_MAX_RESOLUTION`. | Capped at 720p | Uncapped |
25
+ ### Prerequisites
30
26
 
31
- When a free-tier limit is reached, the tool falls back gracefully and includes a clear notice in the response — it **never hard-blocks**.
32
-
33
- ### Getting a License
27
+ - **Node.js 18+**
28
+ - A supported MCP client (VS Code + GitHub Copilot Chat, Cursor, or Claude Code)
29
+ - At least one API key — see [API Keys](#api-keys) below
34
30
 
35
- License keys are valid for **1 year** from date of issue and verified **offline** — no network calls occur at runtime.
31
+ ### Install
36
32
 
37
- To obtain a key, contact the author. Once you have it:
38
-
39
- **Step 1.** Add `VIDEO_MCP_LICENSE_KEY` to the `env` block in your MCP config:
40
-
41
- ```json
42
- {
43
- "env": {
44
- "VIDEO_MCP_LICENSE_KEY": "<your-license-key>"
45
- }
46
- }
33
+ ```bash
34
+ npm install -g video-context-mcp-server
47
35
  ```
48
36
 
49
- **Step 2.** Restart the MCP server (or reload VS Code). Pro features activate automatically.
50
-
51
- > That's all — no registration, no internet check, no extra setup.
52
-
53
- ## Installation
54
-
55
- ### Quick Start (Recommended for ordinary users)
56
-
57
- #### 1. Prerequisites
58
-
59
- - Node.js 18+
60
- - A supported MCP client: VS Code with GitHub Copilot Chat, Cursor, or Claude Code
61
-
62
- #### 2. Get API keys
63
-
64
- You'll need API keys for one or more **video** backends:
65
-
66
- - **GLM-4.6V (Z.AI)**: [Get API Key](https://z.ai/manage-apikey/apikey-list)
67
- - **Kimi K2.5 (Moonshot AI)**: [Get API Key](https://platform.moonshot.ai)
68
- - **Gemini 3 Flash Preview (Google)**: [Get API Key](https://aistudio.google.com/app/apikey)
69
-
70
- For **audio transcription** (`transcribe_video`), you'll also need at least one audio provider key:
71
-
72
- - **Deepgram** (default): [Get API Key](https://console.deepgram.com/)
73
- - **AssemblyAI**: [Get API Key](https://www.assemblyai.com/dashboard)
74
- - **Groq** (free Whisper): [Get API Key](https://console.groq.com/)
75
- - **Gemini** (reuse `GEMINI_API_KEY` above — no extra key needed)
76
-
77
- #### 3. Install the MCP server
37
+ ### Updating & version check
78
38
 
79
39
  ```bash
80
- npm install -g video-context-mcp-server
40
+ npm ls -g --depth=0 video-context-mcp-server # installed version
41
+ npm outdated -g video-context-mcp-server # check for updates
42
+ npm install -g video-context-mcp-server@latest # update
81
43
  ```
82
44
 
83
- This installs the executable command: `video-context-mcp`.
84
-
85
- > **Tip:** To check your installed version and whether an update is available:
86
- >
87
- > ```bash
88
- > # Check installed version
89
- > npm ls -g --depth=0 video-context-mcp-server
90
- >
91
- > # Check if outdated
92
- > npm outdated -g video-context-mcp-server
93
- > ```
94
- >
95
- > To update to the latest version, re-run:
96
- >
97
- > ```bash
98
- > npm install -g video-context-mcp-server@latest
99
- > ```
45
+ ### Configure Your MCP Client
100
46
 
101
- #### 4. Configure VS Code MCP
47
+ <details open>
48
+ <summary><strong>VS Code</strong></summary>
102
49
 
103
- Create (or update) `.vscode/mcp.json` in your project/workspace:
50
+ Create or update `.vscode/mcp.json` in your workspace:
104
51
 
105
52
  ```json
106
53
  {
@@ -121,11 +68,14 @@ Create (or update) `.vscode/mcp.json` in your project/workspace:
121
68
  }
122
69
  ```
123
70
 
124
- Open Copilot Chat in VS Code. The MCP server starts automatically when tools are needed.
71
+ Open Copilot Chat the MCP server starts automatically when tools are needed.
125
72
 
126
- ### Configure Cursor MCP
73
+ </details>
127
74
 
128
- Add this server to your Cursor MCP configuration (global or project-level):
75
+ <details>
76
+ <summary><strong>Cursor</strong></summary>
77
+
78
+ Add to your Cursor MCP configuration (global or project-level):
129
79
 
130
80
  ```json
131
81
  {
@@ -145,15 +95,10 @@ Add this server to your Cursor MCP configuration (global or project-level):
145
95
  }
146
96
  ```
147
97
 
148
- Notes:
149
-
150
- - Run `npm install -g video-context-mcp-server` first if you haven't already.
151
- - If you prefer not to install globally, use `npx -y video-context-mcp-server@latest` as the command (slower startup due to registry check).
152
- - Set one or both API keys depending on which provider you use.
98
+ </details>
153
99
 
154
- ### Configure Claude Code MCP
155
-
156
- Use the Claude CLI to register the MCP server:
100
+ <details>
101
+ <summary><strong>Claude Code</strong></summary>
157
102
 
158
103
  ```bash
159
104
  claude mcp add videoMcp video-context-mcp \
@@ -165,46 +110,16 @@ claude mcp add videoMcp video-context-mcp \
165
110
  --env GROQ_API_KEY=your-groq-key
166
111
  ```
167
112
 
168
- Then verify with:
169
-
170
- ```bash
171
- claude mcp list
172
- ```
173
-
174
- If you prefer not to install globally, register via `npx` instead (slower startup due to registry check):
175
-
176
- ```bash
177
- claude mcp add videoMcp npx -y video-context-mcp-server@latest \
178
- --env Z_AI_API_KEY=your-zai-key \
179
- --env MOONSHOT_API_KEY=your-moonshot-key \
180
- --env GEMINI_API_KEY=your-gemini-key \
181
- --env DEEPGRAM_API_KEY=your-deepgram-key \
182
- --env ASSEMBLYAI_API_KEY=your-assemblyai-key \
183
- --env GROQ_API_KEY=your-groq-key
184
- ```
185
-
186
- ### Troubleshooting Setup
187
-
188
- - **`video-context-mcp: command not found`**
189
- - Make sure Node.js is installed and available in your shell (`node -v`, `npm -v`).
190
- - If installed globally, re-run: `npm install -g video-context-mcp-server`.
191
- - If global binaries are not on PATH, use `npx -y video-context-mcp-server@latest` instead of `video-context-mcp`.
113
+ Verify with `claude mcp list`.
192
114
 
193
- - **MCP server not appearing in client**
194
- - Restart the client app after changing MCP configuration.
195
- - Validate JSON syntax in your MCP config file.
196
- - For Claude Code, verify registration with `claude mcp list`.
115
+ </details>
197
116
 
198
- - **Missing API key errors**
199
- - Set `GEMINI_API_KEY` for Gemini usage, `Z_AI_API_KEY` for GLM usage, and `MOONSHOT_API_KEY` for Kimi usage.
200
- - For audio transcription, set `DEEPGRAM_API_KEY` (default), `ASSEMBLYAI_API_KEY`, `GROQ_API_KEY` (free tier), or reuse `GEMINI_API_KEY`. At least one audio key is needed to use `transcribe_video`.
201
- - You can set only the keys for the providers you intend to use.
202
- - For local files, if `provider=glm` is requested but `Z_AI_API_KEY` is missing, the server automatically falls back to Kimi (and then Gemini) when those keys are available.
203
- - For remote `http(s)` video URLs, all three AI providers (`glm`, `kimi`, `gemini`) are supported. All tools automatically download remote videos to a temporary file before processing.
117
+ <details>
118
+ <summary><strong>Run via npx (no global install)</strong></summary>
204
119
 
205
- ### Alternative: Run via npx without global install
120
+ Use `npx -y video-context-mcp-server@latest` as the command instead of `video-context-mcp`. This adds a startup delay (npm registry check) but self-updates automatically.
206
121
 
207
- If you prefer not to install globally, you can use `npx` instead. Note this adds a startup delay due to the npm registry check on each run:
122
+ **VS Code example:**
208
123
 
209
124
  ```json
210
125
  {
@@ -226,83 +141,27 @@ If you prefer not to install globally, you can use `npx` instead. Note this adds
226
141
  }
227
142
  ```
228
143
 
229
- The `@latest` tag ensures you always get the newest published version, at the cost of a network round-trip on every startup — this also means the `npx` approach self-updates automatically and requires no manual update step.
230
-
231
- ### For contributors: install from source
232
-
233
- Clone this repository, then:
144
+ **Claude Code:**
234
145
 
235
146
  ```bash
236
- npm install
237
- npm run build
238
- ```
239
-
240
- Then use this `.vscode/mcp.json` server command:
241
-
242
- ```json
243
- {
244
- "servers": {
245
- "videoMcp": {
246
- "type": "stdio",
247
- "command": "node",
248
- "args": ["${workspaceFolder}/dist/index.js"],
249
- "env": {
250
- "Z_AI_API_KEY": "your-zai-key",
251
- "MOONSHOT_API_KEY": "your-moonshot-key",
252
- "GEMINI_API_KEY": "your-gemini-key",
253
- "DEEPGRAM_API_KEY": "your-deepgram-key",
254
- "ASSEMBLYAI_API_KEY": "your-assemblyai-key",
255
- "GROQ_API_KEY": "your-groq-key"
256
- }
257
- }
258
- }
259
- }
260
- ```
261
-
262
- ### Debugging Behavior in VS Code
263
-
264
- When your `.vscode/mcp.json` includes a `dev` block such as:
265
-
266
- ```jsonc
267
- {
268
- "servers": {
269
- "videoMcp": {
270
- "type": "stdio",
271
- "command": "node",
272
- "args": ["${workspaceFolder}/dist/index.js"],
273
- "env": {
274
- "Z_AI_API_KEY": "your-zai-key",
275
- "MOONSHOT_API_KEY": "your-moonshot-key",
276
- "GEMINI_API_KEY": "your-gemini-key",
277
- "DEEPGRAM_API_KEY": "your-deepgram-key",
278
- "ASSEMBLYAI_API_KEY": "your-assemblyai-key",
279
- "GROQ_API_KEY": "your-groq-key",
280
- },
281
- "dev": {
282
- "watch": "src/**/*.ts",
283
- "debug": { "type": "node" },
284
- },
285
- },
286
- },
287
- }
147
+ claude mcp add videoMcp npx -y video-context-mcp-server@latest \
148
+ --env Z_AI_API_KEY=your-zai-key \
149
+ --env MOONSHOT_API_KEY=your-moonshot-key \
150
+ --env GEMINI_API_KEY=your-gemini-key \
151
+ --env DEEPGRAM_API_KEY=your-deepgram-key \
152
+ --env ASSEMBLYAI_API_KEY=your-assemblyai-key \
153
+ --env GROQ_API_KEY=your-groq-key
288
154
  ```
289
155
 
290
- you may see frequent logs in the **Output** panel under `MCP: videoMcp`.
291
-
292
- This is expected in development mode:
156
+ </details>
293
157
 
294
- - `watch` restarts/reloads the MCP server when TypeScript files change
295
- - `debug` enables Node debug integration
296
- - MCP protocol payloads (tool schemas, discovery events, lifecycle messages) are printed in that output channel
158
+ > **Tip:** Set keys for all providers you can access — this maximises the fallback chain. If the default provider is unavailable or rate-limited, the server automatically retries with the next available one. At minimum you need one video key and one audio key, but more is better.
297
159
 
298
- If you want less noise, remove either:
299
-
300
- - `dev.debug` (keeps auto-watch, disables debug integration), or
301
- - the full `dev` block (disables watch + debug behavior)
160
+ ---
302
161
 
303
162
  ## Available Tools
304
163
 
305
- | Tool | Description | Parameters |
164
+ | Tool | Description | Key Parameters |
306
165
  | ------------------ | ------------------------------------ | --------------------------------------------------------------- |
307
166
  | `analyze_video` | Ask questions about video content | `videoPath`, `question`, `provider?` |
308
167
  | `summarize_video` | Generate a structured video summary | `videoPath`, `provider?` |
@@ -311,140 +170,150 @@ If you want less noise, remove either:
311
170
  | `get_video_info` | Get video metadata | `videoPath` |
312
171
  | `transcribe_video` | Transcribe audio/speech from a video | `videoPath`, `provider?`, `language?`, `diarize?`, `translate?` |
313
172
 
314
- ### Path and Provider Constraints
173
+ All tools accept local file paths, `file://` URIs, and remote `http(s)` URLs. Remote videos are downloaded automatically.
315
174
 
316
- - **All 6 tools** support both local files and remote `http(s)` URLs. Remote videos are automatically downloaded to a temporary file before processing.
317
- - For remote `http(s)` URLs with AI-powered video tools (`analyze_video`, `summarize_video`, `search_timestamp`): all three providers (`provider=glm`, `provider=kimi`, `provider=gemini`) are supported. Remote videos are downloaded to a temp file before upload.
318
- - For `transcribe_video`, all four audio providers (Deepgram, AssemblyAI, Groq, Gemini) support both local files and remote URLs.
319
- - For local inputs, all tools accept normal filesystem paths or `file://` URIs (automatically normalized).
175
+ ### Usage Examples
320
176
 
321
- ## Usage Examples
177
+ **Local files**
322
178
 
323
- ### Analyze Video
179
+ > "Analyze the video at `./demo.mp4` and tell me what happens in it"
324
180
 
325
- Ask Copilot Chat:
181
+ > "Summarize `./long-video.mp4`"
326
182
 
327
- > "Analyze the video at `./demo.mp4` and tell me what happens in it"
183
+ > "Extract 5 evenly-spaced frames from `./recording.mp4`"
328
184
 
329
- ### Summarize Video
185
+ > "At what timestamp does the person wave in `./clip.mp4`?"
330
186
 
331
- > "Summarize the video at `./long-video.mp4`"
187
+ > "Transcribe `./interview.mp4` with speaker diarization using AssemblyAI"
332
188
 
333
- ### Extract Frames
189
+ > "Transcribe this Spanish video and translate it to English: `./video.mp4`"
334
190
 
335
- > "Extract 5 evenly-spaced frames from `./video.mp4`"
191
+ **Remote video files** (direct URLs works for all users)
336
192
 
337
- > "Extract a frame at timestamp 30 seconds from `./video.mp4`"
193
+ > "Analyze this video: `https://example.com/product-demo.mp4`"
338
194
 
339
- ### Search Timestamp
195
+ > "Get the metadata for `https://cdn.example.com/sample.webm`"
340
196
 
341
- > "In `./video.mp4`, at what timestamp does the person wave?"
197
+ **Platform videos** (YouTube, Vimeo, TikTok, etc. requires [Pro](#pro) for non-YouTube)
342
198
 
343
- ### Get Video Info
199
+ > "Summarize this YouTube video: `https://www.youtube.com/watch?v=dQw4w9WgXcQ`"
344
200
 
345
- > "Get the video info for `./video.mp4`"
201
+ > "At what point does the speaker mention pricing in `https://www.youtube.com/watch?v=abc123`?"
346
202
 
347
- ### Transcribe Video
203
+ > "Transcribe the audio from `https://vimeo.com/123456789`"
348
204
 
349
- > "Transcribe the audio from `./meeting.mp4`"
205
+ ---
350
206
 
351
- > "Transcribe `./interview.mp4` with speaker diarization using AssemblyAI"
207
+ ## API Keys
352
208
 
353
- > "Transcribe this Spanish video and translate it to English: `./video.mp4`"
209
+ ### Video Backends
210
+
211
+ Set all three keys to get the full fallback chain. The server will try GLM first, then Kimi, then Gemini, so having all keys ensures it never gets stuck without a working backend:
212
+
213
+ | Provider | Key | Link |
214
+ | ---------------------------- | ------------------ | ------------------------------------------------- |
215
+ | **GLM-4.6V** (default, free) | `Z_AI_API_KEY` | [Get key](https://z.ai/manage-apikey/apikey-list) |
216
+ | **Kimi K2.5** | `MOONSHOT_API_KEY` | [Get key](https://platform.moonshot.ai) |
217
+ | **Gemini 3 Flash Preview** | `GEMINI_API_KEY` | [Get key](https://aistudio.google.com/app/apikey) |
218
+
219
+ When a provider's API key is missing, tools automatically fall back: **GLM → Kimi → Gemini**.
220
+
221
+ ### Audio Providers
222
+
223
+ Similarly, set all audio keys so transcription always has a fallback provider available:
224
+
225
+ | Provider | Key | Link |
226
+ | ----------------------- | -------------------- | ----------------------------------------------- |
227
+ | **Deepgram** (default) | `DEEPGRAM_API_KEY` | [Get key](https://console.deepgram.com/) |
228
+ | **AssemblyAI** | `ASSEMBLYAI_API_KEY` | [Get key](https://www.assemblyai.com/dashboard) |
229
+ | **Groq/Whisper** (free) | `GROQ_API_KEY` | [Get key](https://console.groq.com/) |
230
+ | **Gemini** | `GEMINI_API_KEY` | Reuses the same key as the video backend |
231
+
232
+ When an audio key is missing, tools fall back: **Deepgram → AssemblyAI → Groq → Gemini**.
233
+
234
+ ---
354
235
 
355
236
  ## Backend Comparison
356
237
 
357
- | Feature | Gemini 3 Flash Preview | GLM-4.6V | Kimi K2.5 |
358
- | -------------- | ---------------------------------------------- | ------------------------------------ | ---------------------------------------------- |
359
- | Video formats | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp |
360
- | Price | Free tier available | Free tier available (GLM-4.6V-Flash) | $0.60 input / $3.00 output |
361
- | Context window | 1M tokens | 128K | 256K |
362
- | Max file size | 2 GB | ~20 MB (base64) | 100 MB |
363
- | Best for | Fallback only (inaccurate despite features) | **Default** (free tier) | Alternative to GLM |
238
+ ### Video Backends
239
+
240
+ | Feature | GLM-4.6V (default) | Kimi K2.5 | Gemini 3 Flash Preview |
241
+ | -------------- | ------------------------------------ | ---------------------------------------------- | ---------------------------------------------- |
242
+ | Price | Free tier available (GLM-4.6V-Flash) | $0.60 input / $3.00 output per 1M tokens | Free tier available |
243
+ | Video formats | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp |
244
+ | Context window | 128K tokens | 256K tokens | 1M tokens |
245
+ | Max file size | ~20 MB (base64) | 100 MB | 2 GB |
246
+ | Best for | **Default** — free, good accuracy | Broader format support | Last-resort fallback only |
247
+
248
+ **GLM-4.6V** is the default — it offers a free tier, making it a good zero-cost starting point. **Kimi K2.5** is a paid alternative with broader format support. **Gemini** is used as a last-resort fallback — despite superior technical specs, it has proven inaccurate for video analysis in practice.
249
+
250
+ Set `VIDEO_MCP_DEFAULT_PROVIDER=kimi` or `gemini` to change the default.
251
+
252
+ ### Audio Providers
364
253
 
365
- **GLM-4.6V is the default backend** — it offers a free tier (GLM-4.6V-Flash), making it a good zero-cost starting point. Kimi K2.5 is a paid alternative with broader format support; accuracy between the two has not been systematically compared. Gemini 3 Flash Preview is used as the **last resort fallback** despite its superior technical features (1M token context, 2GB file size, native multimodal audio+video support) because it has **proven inaccurate for video content analysis** in practice. Set `VIDEO_MCP_DEFAULT_PROVIDER=kimi` or `VIDEO_MCP_DEFAULT_PROVIDER=gemini` to switch the default. This env default is used when a tool call omits the `provider` parameter.
254
+ | Feature | Deepgram (default) | AssemblyAI | Groq/Whisper | Gemini |
255
+ | ------------------- | ---------------------------- | ------------------------ | ----------------------- | -------------------------- |
256
+ | Price | Paid (free trial) | Paid (free trial) | Free tier available | Free tier available |
257
+ | Speaker diarization | Yes | Yes | No | No |
258
+ | Translation | No | No | Yes (`translate: true`) | Yes (`translate: true`) |
259
+ | Best for | **Default** (fast, accurate) | High-quality diarization | Free/cost-conscious use | Users already using Gemini |
366
260
 
367
- When a provider's API key is missing, the tool automatically falls back to the next available provider in the ranking chain (**GLM → Kimi → Gemini**) and includes a notice in the response, e.g. `Provider used: kimi (fell back from glm)`.
261
+ Set `AUDIO_MCP_DEFAULT_PROVIDER` to change the default.
262
+
263
+ ---
368
264
 
369
265
  ## Environment Variables
370
266
 
371
- | Variable | Description | Required |
372
- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
373
- | `Z_AI_API_KEY` | Z.AI API key for GLM-4.6V | Optional (required if using GLM) |
374
- | `MOONSHOT_API_KEY` | Moonshot AI API key for Kimi K2.5 | Optional (required if using Kimi) |
375
- | `GEMINI_API_KEY` | Google API key for Gemini 3 Flash Preview | Optional (required if using Gemini) |
376
- | `VIDEO_MCP_DEFAULT_PROVIDER` | Default video backend (`gemini`, `glm`, `kimi`) | Optional (default: `glm`) |
377
- | `VIDEO_MCP_MAX_FRAMES` | Max keyframes extracted by `summarize_video` for long videos (GLM/Kimi only). **Pro**: unset/empty defaults to 100; set to `0` for uncapped (size guard still enforced); any value ≥ 5 is used as-is. **Free**: clamped to 5–50; `0` or unset defaults to 50. | Optional (default: 50 for free / 100 for pro; free users clamped to 5–50) |
378
- | `DEEPGRAM_API_KEY` | Deepgram API key for `transcribe_video` | Optional (required if using Deepgram) |
379
- | `ASSEMBLYAI_API_KEY` | AssemblyAI API key for `transcribe_video` | Optional (required if using AssemblyAI) |
380
- | `GROQ_API_KEY` | Groq API key for Whisper transcription via `transcribe_video` | Optional (required if using Groq) |
381
- | `AUDIO_MCP_DEFAULT_PROVIDER` | Default audio provider; defaults to `deepgram`. Falls back in order: **deepgram → assemblyai → groq → gemini** when the selected provider's key is unavailable. A fallback notice is included in the response. | Optional (auto-selects from available keys) |
382
- | `AUDIO_ENHANCE_VIDEO_ANALYSIS` | Controls audio transcript injection into GLM/Kimi `analyze_video`/`summarize_video` prompts. **Requires a pro license.** `auto` (default) — transcribes only when the video has a detected audio track; `true` — always attempt transcription; `false` — disabled. A confidence label (`high`/`medium`/`low`) is included in the injected header so the model can weight the transcript appropriately. Gemini is always skipped (handles audio natively). | Optional (default: `auto`; pro only) |
383
- | `VIDEO_MCP_CACHE_TTL_MINUTES` | How long downloaded remote/platform videos are cached (in minutes) across separate tool calls. Cached files live in `os.tmpdir()/video-mcp-cache/` and survive per-call cleanup, avoiding redundant downloads on retries or follow-up questions. Set to `0` to disable caching entirely. | Optional (default: `30`) |
384
- | `VIDEO_MCP_CACHE_MAX_ENTRIES` | Maximum number of entries in the in-memory download cache. Uses LRU eviction the least-recently-used entry is evicted first when the cap is exceeded. Set to `0` or a negative value to disable the cap (unbounded). | Optional (default: `100`) |
385
- | `YT_DLP_MAX_RESOLUTION` | Maximum video height in pixels when downloading via yt-dlp (YouTube, Vimeo, TikTok, etc.). Lower values reduce file size and download time. Free users capped at 720; pro users can set any value. | Optional (default: `720`) |
386
- | `YT_DLP_PATH` | Path to a custom yt-dlp binary. If unset, uses the binary bundled by `youtube-dl-exec` at install time. | Optional |
387
- | `YT_DLP_COOKIES_FILE` | Path to a Netscape-format cookies file for authenticated yt-dlp downloads (e.g. age-restricted or private YouTube videos). | Optional |
388
- | `YT_DLP_IMPERSONATE` | Browser to impersonate when downloading (e.g. `chrome`, `firefox`). Required for sites like Udemy that return 403 to non-browser user-agents. Uses yt-dlp's `--impersonate` flag; requires a yt-dlp build with `curl_cffi` support (all modern yt-dlp releases include it). | Optional |
389
- | `VIDEO_MCP_LICENSE_KEY` | Pro license key. Unlocks audio-enhanced analysis, extended frame extraction (uncapped), platform downloads beyond YouTube, and extended download resolution (above 720p). Valid for 1 year from date of issue. | Optional (free tier without it) |
390
-
391
- > **Tip: install yt-dlp system-wide for faster startup.** The `youtube-dl-exec` package bundles a yt-dlp binary downloaded at `npm install` time, which adds ~30 MB to the install footprint. If you use platform video URLs regularly, it's lighter to install yt-dlp directly and point to it:
392
- >
393
- > ```bash
394
- > # macOS
395
- > brew install yt-dlp
396
- >
397
- > # Windows (winget)
398
- > winget install yt-dlp
399
- >
400
- > # pip (cross-platform)
401
- > pip install yt-dlp
402
- > ```
403
- >
404
- > Then set `YT_DLP_PATH` to the installed binary (e.g. `/opt/homebrew/bin/yt-dlp` or `C:/Users/you/AppData/Local/Microsoft/WinGet/Packages/yt-dlp.yt-dlp_Microsoft.Winget.Source_8wekyb3d8bbwe/yt-dlp.exe`). To skip the bundled download entirely at install time, set `YOUTUBE_DL_SKIP_DOWNLOAD=true` in your environment before running `npm install`:
405
- >
406
- > ```bash
407
- > YOUTUBE_DL_SKIP_DOWNLOAD=true npm install -g video-context-mcp-server
408
- > ```
409
-
410
- > **Tip: use `YT_DLP_COOKIES_FILE` for age-restricted or authenticated content.** Some platform videos (e.g. age-restricted YouTube videos, private Facebook videos, Instagram reels that require login) cannot be downloaded without valid session cookies. You can export your browser's cookies and pass them to yt-dlp via this variable.
411
- >
412
- > **Step 1 — Export cookies from your browser.**
413
- >
414
- > Install the **[Get cookies.txt LOCALLY](https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc)** extension (Chrome/Edge) or **[cookies.txt](https://addons.mozilla.org/en-US/firefox/addon/cookies-txt/)** (Firefox). Navigate to the platform you want to download from (e.g. `youtube.com`, `facebook.com`) while logged in, then click the extension and export cookies in **Netscape format** (the default). Save the file somewhere stable, e.g.:
415
- >
416
- > ```
417
- > # macOS / Linux
418
- > ~/cookies-youtube.txt
419
- >
420
- > # Windows
421
- > C:\Users\you\cookies-youtube.txt
422
- > ```
423
- >
424
- > You can export separate files per platform or combine multiple sites into one file — yt-dlp reads all cookies in the file and uses whichever match the domain.
425
- >
426
- > **Step 2 — Point `YT_DLP_COOKIES_FILE` at the exported file.**
427
- >
428
- > Add it to the `env` block in your MCP config:
429
- >
430
- > ```jsonc
431
- > {
432
- > "servers": {
433
- > "videoMcp": {
434
- > "env": {
435
- > // ... other keys ...
436
- > "YT_DLP_COOKIES_FILE": "C:/Users/you/cookies-youtube.txt",
437
- > },
438
- > },
439
- > },
440
- > }
441
- > ```
442
- >
443
- > Restart the MCP server after adding the variable. yt-dlp will now send those cookies with every download request, allowing access to content that requires authentication.
444
- >
445
- > **Keep your cookies file private** — it contains session tokens that grant access to your accounts. Never commit it to source control.
446
-
447
- ### Example Configuration
267
+ ### Core
268
+
269
+ | Variable | Description | Default |
270
+ | ---------------------------- | ------------------------------------------------- | ------- |
271
+ | `Z_AI_API_KEY` | Z.AI API key for GLM-4.6V | |
272
+ | `MOONSHOT_API_KEY` | Moonshot AI API key for Kimi K2.5 | |
273
+ | `GEMINI_API_KEY` | Google API key for Gemini | |
274
+ | `VIDEO_MCP_DEFAULT_PROVIDER` | Default video backend: `glm`, `kimi`, or `gemini` | `glm` |
275
+
276
+ ### Audio
277
+
278
+ | Variable | Description | Default |
279
+ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
280
+ | `DEEPGRAM_API_KEY` | Deepgram API key | |
281
+ | `ASSEMBLYAI_API_KEY` | AssemblyAI API key | |
282
+ | `GROQ_API_KEY` | Groq API key for Whisper transcription | |
283
+ | `AUDIO_MCP_DEFAULT_PROVIDER` | Default audio provider: `deepgram`, `assemblyai`, `groq`, or `gemini`. Falls back in that order when the selected key is missing. | `deepgram` |
284
+ | `AUDIO_ENHANCE_VIDEO_ANALYSIS` | Inject audio transcripts into `analyze_video`/`summarize_video` prompts (GLM/Kimi only). `auto` = transcribe when audio track detected; `true` = always; `false` = disabled. | `auto` |
285
+
286
+ ### Caching
287
+
288
+ | Variable | Description | Default |
289
+ | ----------------------------- | -------------------------------------------------------------------------------------- | ------- |
290
+ | `VIDEO_MCP_CACHE_TTL_MINUTES` | How long downloaded videos are cached across tool calls (minutes). Set `0` to disable. | `30` |
291
+ | `VIDEO_MCP_CACHE_MAX_ENTRIES` | Max entries in the download cache. LRU eviction. Set `0` for unbounded. | `100` |
292
+
293
+ ### Video Summarization
294
+
295
+ | Variable | Description | Default |
296
+ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
297
+ | `VIDEO_MCP_MAX_FRAMES` | Max keyframes for `summarize_video` (GLM/Kimi only; Gemini uploads full video). **Free**: clamped 5–50. **Pro**: default 100; set `0` for uncapped. Either way, trailing frames are automatically dropped if the total payload exceeds the provider's size limit (12 MB for GLM, 80 MB for Kimi). | `50` free / `100` pro |
298
+
299
+ ### yt-dlp (Platform Downloads)
300
+
301
+ | Variable | Description | Default |
302
+ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------- |
303
+ | `YT_DLP_MAX_RESOLUTION` | Max video height (px) for yt-dlp downloads. Free users capped at 720. | `720` |
304
+ | `YT_DLP_PATH` | Path to a custom yt-dlp binary. If unset, uses the bundled binary from `youtube-dl-exec`. | — |
305
+ | `YT_DLP_COOKIES_FILE` | Path to a Netscape-format cookies file for authenticated downloads (age-restricted, private videos). | — |
306
+ | `YT_DLP_IMPERSONATE` | Browser to impersonate (e.g. `chrome`, `firefox`). Needed for sites like Udemy. Requires yt-dlp with `curl_cffi` support. | — |
307
+
308
+ ### Pro
309
+
310
+ | Variable | Description | Default |
311
+ | ----------------------- | --------------------------------------------------------------------------------------------------------------------- | ------- |
312
+ | `VIDEO_MCP_LICENSE_KEY` | Pro license key. Unlocks extended frames, platform downloads beyond YouTube, and resolution above 720p. Valid 1 year. | — |
313
+
314
+ ### Complete Example Config
315
+
316
+ A fully annotated `.vscode/mcp.json` showing every available environment variable:
448
317
 
449
318
  ```json
450
319
  {
@@ -460,63 +329,168 @@ When a provider's API key is missing, the tool automatically falls back to the n
460
329
  "ASSEMBLYAI_API_KEY": "your-assemblyai-key",
461
330
  "GROQ_API_KEY": "your-groq-key",
462
331
  "VIDEO_MCP_DEFAULT_PROVIDER": "glm",
463
- "VIDEO_MCP_MAX_FRAMES": "100",
332
+ "AUDIO_MCP_DEFAULT_PROVIDER": "deepgram",
464
333
  "AUDIO_ENHANCE_VIDEO_ANALYSIS": "auto",
465
334
  "VIDEO_MCP_CACHE_TTL_MINUTES": "30",
335
+ "VIDEO_MCP_CACHE_MAX_ENTRIES": "100",
336
+ "VIDEO_MCP_MAX_FRAMES": "50",
466
337
  "YT_DLP_MAX_RESOLUTION": "720",
467
- "YT_DLP_PATH": "/path/to/yt-dlp",
468
- "VIDEO_MCP_LICENSE_KEY": "<your-license-key>"
338
+ "YT_DLP_PATH": "/usr/local/bin/yt-dlp",
339
+ "YT_DLP_COOKIES_FILE": "/path/to/cookies.txt",
340
+ "YT_DLP_IMPERSONATE": "chrome",
341
+ "VIDEO_MCP_LICENSE_KEY": "your-license-key"
469
342
  }
470
343
  }
471
344
  }
472
345
  }
473
346
  ```
474
347
 
475
- > **Note:** `VIDEO_MCP_MAX_FRAMES` only applies when using **GLM or Kimi** as the provider. Gemini uploads the full video natively and ignores this setting. You can omit it if you are running with `VIDEO_MCP_DEFAULT_PROVIDER=gemini`.
476
- >
477
- > **Note:** `YT_DLP_PATH` and `YT_DLP_COOKIES_FILE` are only needed if you want to use a custom yt-dlp binary or authenticate downloads of private/age-restricted videos. Omit them for standard use.
348
+ > Remove or omit any variables you don't need unset optional vars fall back to their defaults.
478
349
 
479
- ## Free vs Pro
350
+ <details>
351
+ <summary><strong>Tip: install yt-dlp system-wide for faster startup</strong></summary>
480
352
 
481
- See the [Pro section](#-pro) at the top of this document for a full feature comparison and license setup instructions.
353
+ The `youtube-dl-exec` package bundles a yt-dlp binary (~30 MB). If you use platform URLs often, install yt-dlp directly:
482
354
 
483
- ## Development
355
+ ```bash
356
+ brew install yt-dlp # macOS
357
+ winget install yt-dlp # Windows
358
+ pip install yt-dlp # cross-platform
359
+ ```
360
+
361
+ Then set `YT_DLP_PATH` to the installed binary. To skip the bundled download at install time:
484
362
 
485
363
  ```bash
486
- # Install dependencies
487
- npm install
364
+ YOUTUBE_DL_SKIP_DOWNLOAD=true npm install -g video-context-mcp-server
365
+ ```
488
366
 
489
- # Run in development (auto-restart on changes)
490
- npm run dev
367
+ </details>
491
368
 
492
- # Build for production
493
- npm run build
369
+ <details>
370
+ <summary><strong>Tip: use cookies for age-restricted or private videos</strong></summary>
371
+
372
+ Some videos require authentication. Export cookies from your browser and point yt-dlp at them.
373
+
374
+ **Step 1 — Export cookies.** Install [Get cookies.txt LOCALLY](https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc) (Chrome/Edge) or [cookies.txt](https://addons.mozilla.org/en-US/firefox/addon/cookies-txt/) (Firefox). Navigate to the platform while logged in, export in Netscape format, and save the file (e.g. `~/cookies-youtube.txt`).
375
+
376
+ **Step 2 — Configure.** Add `YT_DLP_COOKIES_FILE` to your MCP config `env` block:
377
+
378
+ ```jsonc
379
+ {
380
+ "env": {
381
+ "YT_DLP_COOKIES_FILE": "C:/Users/you/cookies-youtube.txt",
382
+ },
383
+ }
384
+ ```
385
+
386
+ Restart the MCP server. **Keep your cookies file private** — never commit it to source control.
387
+
388
+ </details>
389
+
390
+ ---
391
+
392
+ ## Pro
393
+
394
+ The free tier covers all core functionality. A **pro license** unlocks three power features:
395
+
396
+ | Feature | Free | Pro |
397
+ | ---------------------------- | ------------------- | --------------------------------- |
398
+ | 🖼️ Extended frame extraction | Capped at 50 frames | Default 100; set `0` for uncapped |
399
+ | 🌐 Platform video downloads | YouTube only | All yt-dlp platforms |
400
+ | 📺 Download resolution | Capped at 720p | Uncapped |
401
+
402
+ > Local files and direct `http(s)://` video URLs work for all users — the platform gate only applies to yt-dlp URLs (YouTube, Vimeo, TikTok, etc.).
403
+
404
+ When a free-tier limit is reached, the tool falls back gracefully with a notice — it **never hard-blocks**.
494
405
 
495
- # Run type checking
496
- npm run type-check
406
+ ### Getting a License
407
+
408
+ License keys are valid for **1 year** and verified **offline** (no network calls at runtime). Contact the author to obtain one.
409
+
410
+ Add `VIDEO_MCP_LICENSE_KEY` to your MCP config `env` block and restart the server:
411
+
412
+ ```json
413
+ {
414
+ "env": {
415
+ "VIDEO_MCP_LICENSE_KEY": "<your-license-key>"
416
+ }
417
+ }
418
+ ```
419
+
420
+ > No registration, no internet check, no extra setup.
421
+
422
+ ---
497
423
 
498
- # Run linter
499
- npm run lint
424
+ ## Troubleshooting
500
425
 
501
- # Run automated tests
502
- npm run test
426
+ - **`video-context-mcp: command not found`** — Make sure Node.js is installed (`node -v`). Re-run `npm install -g video-context-mcp-server`, or use `npx -y video-context-mcp-server@latest` if global binaries aren't on PATH.
503
427
 
504
- # Run tests in watch mode
505
- npm run test:watch
428
+ - **MCP server not appearing** — Restart the client app after config changes. Validate JSON syntax. For Claude Code, verify with `claude mcp list`.
506
429
 
507
- # Run tests with coverage
508
- npm run test:coverage
430
+ - **Missing API key errors** — Set only the keys for providers you use. When a key is missing, tools automatically fall back to the next available provider and include a notice in the response.
431
+
432
+ ---
433
+
434
+ ## Development
435
+
436
+ > This section is for contributors building from source. If you're just using the server, follow the [Quick Start](#quick-start) instead.
437
+
438
+ ### From Source
439
+
440
+ ```bash
441
+ git clone <repo-url> && cd video-mcp
442
+ npm install
443
+ npm run build
444
+ ```
445
+
446
+ Use this `.vscode/mcp.json` to run the local build:
447
+
448
+ ```json
449
+ {
450
+ "servers": {
451
+ "videoMcp": {
452
+ "type": "stdio",
453
+ "command": "node",
454
+ "args": ["${workspaceFolder}/dist/index.js"],
455
+ "env": {
456
+ "Z_AI_API_KEY": "your-zai-key",
457
+ "MOONSHOT_API_KEY": "your-moonshot-key",
458
+ "GEMINI_API_KEY": "your-gemini-key",
459
+ "VIDEO_MCP_DEFAULT_PROVIDER": "glm",
460
+ "DEEPGRAM_API_KEY": "your-deepgram-key",
461
+ "ASSEMBLYAI_API_KEY": "your-assemblyai-key",
462
+ "GROQ_API_KEY": "your-groq-key",
463
+ "AUDIO_MCP_DEFAULT_PROVIDER": "deepgram",
464
+ "AUDIO_ENHANCE_VIDEO_ANALYSIS": "auto",
465
+ "VIDEO_MCP_CACHE_TTL_MINUTES": "30",
466
+ "VIDEO_MCP_CACHE_MAX_ENTRIES": "100",
467
+ "VIDEO_MCP_MAX_FRAMES": "0",
468
+ "YT_DLP_MAX_RESOLUTION": "720",
469
+ "YT_DLP_PATH": "/usr/local/bin/yt-dlp",
470
+ "YT_DLP_COOKIES_FILE": "/path/to/cookies.txt",
471
+ "YT_DLP_IMPERSONATE": "chrome",
472
+ "VIDEO_MCP_LICENSE_KEY": "your-license-key"
473
+ }
474
+ }
475
+ }
476
+ }
477
+ ```
509
478
 
510
- # Format all files
511
- npm run format
479
+ ### Debugging in VS Code
512
480
 
513
- # Check formatting only
514
- npm run format:check
481
+ Add a `dev` block to `.vscode/mcp.json` for auto-restart and debug integration:
515
482
 
516
- # Lint + Type-check + Format + Build
517
- npm run ltfb
483
+ ```jsonc
484
+ "dev": {
485
+ "watch": "src/**/*.ts",
486
+ "debug": { "type": "node" }
487
+ }
518
488
  ```
519
489
 
490
+ This causes verbose MCP protocol logs in **Output → MCP: videoMcp** — that's expected. Remove `dev.debug` or the full `dev` block to reduce noise.
491
+
492
+ ---
493
+
520
494
  ## License
521
495
 
522
496
  Proprietary — All Rights Reserved. No part of this software may be copied, modified, distributed, or used without explicit written permission from the author.
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.20.1-beta";
1
+ export declare const VERSION = "0.21.0-beta";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by scripts/sync-version.ts — do not edit
2
- export const VERSION = '0.20.1-beta';
2
+ export const VERSION = '0.21.0-beta';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/analyzeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,KAAK,kBAAkB,GAAG,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAExE,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,kBAAkB,KACzB,OAAO,CAAC,cAAc,CA0ExB,CAAA"}
1
+ {"version":3,"file":"analyzeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/analyzeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,KAAK,kBAAkB,GAAG,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAExE,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,kBAAkB,KACzB,OAAO,CAAC,cAAc,CAsExB,CAAA"}
@@ -3,7 +3,6 @@
3
3
  * Ask questions about video content and get AI-powered answers
4
4
  */
5
5
  import { logProgress } from '../utils/logger.js';
6
- import { isPro, proNotice } from '../utils/license.js';
7
6
  import { runWithProviderFallback } from './orchestrator.js';
8
7
  export const analyzeVideoTool = async (params) => {
9
8
  const { videoPath, question } = params;
@@ -51,11 +50,7 @@ export const analyzeVideoTool = async (params) => {
51
50
  return { text };
52
51
  },
53
52
  extraNotices() {
54
- const notices = [];
55
- if (!isPro() && process.env.AUDIO_ENHANCE_VIDEO_ANALYSIS !== 'false') {
56
- notices.push(proNotice('Audio-enhanced analysis'));
57
- }
58
- return notices;
53
+ return [];
59
54
  },
60
55
  });
61
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeVideo.js","sourceRoot":"","sources":["../../src/tools/analyzeVideo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzeVideo.js","sourceRoot":"","sources":["../../src/tools/analyzeVideo.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summarizeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,KAAK,oBAAoB,GAAG,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAuC5E,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAgJxB,CAAA"}
1
+ {"version":3,"file":"summarizeVideo.d.ts","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,KAAK,oBAAoB,GAAG,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAuC5E,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CA6IxB,CAAA"}
@@ -5,7 +5,7 @@
5
5
  import { extractFramesEvenly, getVideoMetadata } from '../services/ffmpeg.js';
6
6
  import { getMaxFrames, wasFramesCapped } from '../services/providerRouter.js';
7
7
  import { logProgress } from '../utils/logger.js';
8
- import { isPro, proNotice } from '../utils/license.js';
8
+ import { proNotice } from '../utils/license.js';
9
9
  import { runWithProviderFallback } from './orchestrator.js';
10
10
  const LONG_VIDEO_THRESHOLD_SEC = 5 * 60;
11
11
  function buildSummaryPrompt() {
@@ -123,9 +123,6 @@ export const summarizeVideoTool = async (params) => {
123
123
  },
124
124
  extraNotices(s) {
125
125
  const notices = [];
126
- if (!isPro() && process.env.AUDIO_ENHANCE_VIDEO_ANALYSIS !== 'false') {
127
- notices.push(proNotice('Audio-enhanced analysis'));
128
- }
129
126
  if (wasFramesCapped()) {
130
127
  notices.push(proNotice('Extended frame extraction (uncapped for pro users)'));
131
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"summarizeVideo.js","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summarizeVideo.js","sourceRoot":"","sources":["../../src/tools/summarizeVideo.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,6 @@ export type TranscriptResult = {
17
17
  /**
18
18
  * Reads and validates AUDIO_ENHANCE_VIDEO_ANALYSIS env var.
19
19
  * Returns 'auto' if unset or unrecognised (the default behaviour).
20
- *
21
- * Audio enhancement is a pro feature. When no valid license is present,
22
- * this always returns 'false' regardless of the env var value.
23
20
  */
24
21
  export declare function getAudioEnhancementMode(): AudioEnhancementMode;
25
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"audioUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CACtC,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,CAK9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,QAAQ,GAAG,KAAK,CAM3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkElC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAC9B,MAAM,CASR"}
1
+ {"version":3,"file":"audioUtils.d.ts","sourceRoot":"","sources":["../../src/utils/audioUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CACtC,CAAA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,CAI9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,QAAQ,GAAG,KAAK,CAM3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkElC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAC9B,MAAM,CASR"}
@@ -18,17 +18,11 @@ import { createGeminiClient } from '../services/geminiClient.js';
18
18
  import { resolveAudioProvider, getAudioProviderKeys, } from '../services/audioRouter.js';
19
19
  import { generateTempFilename } from './tempFiles.js';
20
20
  import { logProgress } from './logger.js';
21
- import { isPro } from './license.js';
22
21
  /**
23
22
  * Reads and validates AUDIO_ENHANCE_VIDEO_ANALYSIS env var.
24
23
  * Returns 'auto' if unset or unrecognised (the default behaviour).
25
- *
26
- * Audio enhancement is a pro feature. When no valid license is present,
27
- * this always returns 'false' regardless of the env var value.
28
24
  */
29
25
  export function getAudioEnhancementMode() {
30
- if (!isPro())
31
- return 'false';
32
26
  const val = process.env.AUDIO_ENHANCE_VIDEO_ANALYSIS;
33
27
  if (val === 'true' || val === 'false' || val === 'auto')
34
28
  return val;
@@ -1 +1 @@
1
- {"version":3,"file":"audioUtils.js","sourceRoot":"","sources":["../../src/utils/audioUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audioUtils.js","sourceRoot":"","sources":["../../src/utils/audioUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"downloadCache.d.ts","sourceRoot":"","sources":["../../src/utils/downloadCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAuBH;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAMD;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAMtD;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqB3E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAI1E;AAkDD;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
1
+ {"version":3,"file":"downloadCache.d.ts","sourceRoot":"","sources":["../../src/utils/downloadCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAuBH;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAMtC;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAM3C;AAMD;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAMtD;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqB3E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAI1E;AAkDD;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
@@ -33,9 +33,12 @@ let _cacheDirPath = null;
33
33
  * disabled (TTL set to 0 or negative).
34
34
  */
35
35
  export function getCacheTTLMs() {
36
- const minutes = parseInt(process.env.VIDEO_MCP_CACHE_TTL_MINUTES ?? '30', 10);
37
- if (isNaN(minutes) || minutes <= 0)
38
- return 0;
36
+ const raw = process.env.VIDEO_MCP_CACHE_TTL_MINUTES ?? '';
37
+ const minutes = parseInt(raw, 10);
38
+ if (isNaN(minutes))
39
+ return 30 * 60_000; // invalid/empty → default 30 min
40
+ if (minutes <= 0)
41
+ return 0; // explicit 0 / negative → disabled
39
42
  return minutes * 60_000;
40
43
  }
41
44
  /** Returns true when the download cache is active (TTL > 0). */
@@ -48,10 +51,12 @@ export function isCachingEnabled() {
48
51
  * Returns 0 when the cap is disabled (value ≤ 0).
49
52
  */
50
53
  export function getMaxCacheEntries() {
51
- const raw = process.env.VIDEO_MCP_CACHE_MAX_ENTRIES ?? '100';
54
+ const raw = process.env.VIDEO_MCP_CACHE_MAX_ENTRIES ?? '';
52
55
  const parsed = parseInt(raw, 10);
53
- if (isNaN(parsed) || parsed <= 0)
54
- return 0;
56
+ if (isNaN(parsed))
57
+ return 100; // invalid/empty → default 100
58
+ if (parsed <= 0)
59
+ return 0; // explicit 0 / negative → unbounded
55
60
  return parsed;
56
61
  }
57
62
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"downloadCache.js","sourceRoot":"","sources":["../../src/utils/downloadCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloadCache.js","sourceRoot":"","sources":["../../src/utils/downloadCache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"videoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAgCD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUlD;AAKD;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgBzD;AAiCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAoGjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAMD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AAEzD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAkC7B"}
1
+ {"version":3,"file":"videoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmCH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAgCD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUjD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUlD;AAKD;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgBzD;AAiCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAoGjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C;AAMD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AAEzD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAkC7B"}
@@ -13,6 +13,15 @@ import { isCachingEnabled, ensureCacheDir, getCachedDownload, registerCachedDown
13
13
  import { isPro, proNotice } from './license.js';
14
14
  /** Free-tier cap for max download resolution. Pro users have no cap. */
15
15
  const FREE_MAX_RESOLUTION = 720;
16
+ /**
17
+ * Safely parse YT_DLP_MAX_RESOLUTION from the environment.
18
+ * Returns the default (720) for missing, empty, non-numeric, or non-positive values.
19
+ */
20
+ function getEnvMaxResolution() {
21
+ const raw = process.env.YT_DLP_MAX_RESOLUTION ?? '';
22
+ const parsed = parseInt(raw, 10);
23
+ return isNaN(parsed) || parsed <= 0 ? FREE_MAX_RESOLUTION : parsed;
24
+ }
16
25
  /**
17
26
  * Returns true if the value is an http or https URL
18
27
  */
@@ -230,7 +239,7 @@ export async function downloadWithYtDlp(url, tempDir) {
230
239
  return cached;
231
240
  }
232
241
  // ── Download ───────────────────────────────────────────────────────────────
233
- const envMaxRes = Number(process.env.YT_DLP_MAX_RESOLUTION ?? 720);
242
+ const envMaxRes = getEnvMaxResolution();
234
243
  const maxRes = isPro() ? envMaxRes : Math.min(envMaxRes, FREE_MAX_RESOLUTION);
235
244
  const format = `bestvideo[height<=${maxRes}][ext=mp4]+bestaudio[ext=m4a]` +
236
245
  `/best[height<=${maxRes}][ext=mp4]` +
@@ -301,8 +310,7 @@ export async function downloadWithYtDlp(url, tempDir) {
301
310
  export function wasResolutionCapped() {
302
311
  if (isPro())
303
312
  return false;
304
- const envMaxRes = Number(process.env.YT_DLP_MAX_RESOLUTION ?? 720);
305
- return envMaxRes > FREE_MAX_RESOLUTION;
313
+ return getEnvMaxResolution() > FREE_MAX_RESOLUTION;
306
314
  }
307
315
  /**
308
316
  * Resolves a videoPath to a local filesystem path, downloading if necessary.
@@ -1 +1 @@
1
- {"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"videoUtils.js","sourceRoot":"","sources":["../../src/utils/videoUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "video-context-mcp-server",
3
- "version": "0.20.1-beta",
3
+ "version": "0.22.0-beta",
4
4
  "description": "A Model Context Protocol server that gives GitHub Copilot the ability to understand and analyze video content",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",