video-context-mcp-server 0.52.0-beta → 0.52.2-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 +182 -32
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/package.json +15 -2
package/README.md
CHANGED
|
@@ -89,10 +89,10 @@ Set all keys to enable the full fallback chain. If one provider is unavailable o
|
|
|
89
89
|
"type": "stdio",
|
|
90
90
|
"command": "video-context-mcp",
|
|
91
91
|
"env": {
|
|
92
|
+
"GEMINI_API_KEY": "your-gemini-key",
|
|
92
93
|
"Z_AI_API_KEY": "your-zai-key",
|
|
93
94
|
"DASHSCOPE_API_KEY": "your-dashscope-key",
|
|
94
95
|
"MOONSHOT_API_KEY": "your-moonshot-key",
|
|
95
|
-
"GEMINI_API_KEY": "your-gemini-key",
|
|
96
96
|
"MIMO_API_KEY": "your-mimo-key",
|
|
97
97
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
98
98
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
@@ -118,10 +118,10 @@ You can configure the MCP server globally (for all projects) or at the project l
|
|
|
118
118
|
"videoMcp": {
|
|
119
119
|
"command": "video-context-mcp",
|
|
120
120
|
"env": {
|
|
121
|
+
"GEMINI_API_KEY": "your-gemini-key",
|
|
121
122
|
"Z_AI_API_KEY": "your-zai-key",
|
|
122
123
|
"DASHSCOPE_API_KEY": "your-dashscope-key",
|
|
123
124
|
"MOONSHOT_API_KEY": "your-moonshot-key",
|
|
124
|
-
"GEMINI_API_KEY": "your-gemini-key",
|
|
125
125
|
"MIMO_API_KEY": "your-mimo-key",
|
|
126
126
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
127
127
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
@@ -151,10 +151,10 @@ Create a `.cursor/mcp.json` (or `.mcp.json`) in your project root with the confi
|
|
|
151
151
|
|
|
152
152
|
```bash
|
|
153
153
|
claude mcp add \
|
|
154
|
+
--env GEMINI_API_KEY=your-gemini-key \
|
|
154
155
|
--env Z_AI_API_KEY=your-zai-key \
|
|
155
156
|
--env DASHSCOPE_API_KEY=your-dashscope-key \
|
|
156
157
|
--env MOONSHOT_API_KEY=your-moonshot-key \
|
|
157
|
-
--env GEMINI_API_KEY=your-gemini-key \
|
|
158
158
|
--env MIMO_API_KEY=your-mimo-key \
|
|
159
159
|
--env DEEPGRAM_API_KEY=your-deepgram-key \
|
|
160
160
|
--env ASSEMBLYAI_API_KEY=your-assemblyai-key \
|
|
@@ -176,10 +176,10 @@ Create `.mcp.json` in your project root:
|
|
|
176
176
|
"videoMcp": {
|
|
177
177
|
"command": "video-context-mcp",
|
|
178
178
|
"env": {
|
|
179
|
+
"GEMINI_API_KEY": "your-gemini-key",
|
|
179
180
|
"Z_AI_API_KEY": "your-zai-key",
|
|
180
181
|
"DASHSCOPE_API_KEY": "your-dashscope-key",
|
|
181
182
|
"MOONSHOT_API_KEY": "your-moonshot-key",
|
|
182
|
-
"GEMINI_API_KEY": "your-gemini-key",
|
|
183
183
|
"MIMO_API_KEY": "your-mimo-key",
|
|
184
184
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
185
185
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
@@ -207,10 +207,10 @@ Use `npx -y video-context-mcp-server@latest` as the command instead of `video-co
|
|
|
207
207
|
"command": "npx",
|
|
208
208
|
"args": ["-y", "video-context-mcp-server@latest"],
|
|
209
209
|
"env": {
|
|
210
|
+
"GEMINI_API_KEY": "your-gemini-key",
|
|
210
211
|
"Z_AI_API_KEY": "your-zai-key",
|
|
211
212
|
"DASHSCOPE_API_KEY": "your-dashscope-key",
|
|
212
213
|
"MOONSHOT_API_KEY": "your-moonshot-key",
|
|
213
|
-
"GEMINI_API_KEY": "your-gemini-key",
|
|
214
214
|
"MIMO_API_KEY": "your-mimo-key",
|
|
215
215
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
216
216
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
@@ -225,10 +225,10 @@ Use `npx -y video-context-mcp-server@latest` as the command instead of `video-co
|
|
|
225
225
|
|
|
226
226
|
```bash
|
|
227
227
|
claude mcp add \
|
|
228
|
+
--env GEMINI_API_KEY=your-gemini-key \
|
|
228
229
|
--env Z_AI_API_KEY=your-zai-key \
|
|
229
230
|
--env DASHSCOPE_API_KEY=your-dashscope-key \
|
|
230
231
|
--env MOONSHOT_API_KEY=your-moonshot-key \
|
|
231
|
-
--env GEMINI_API_KEY=your-gemini-key \
|
|
232
232
|
--env MIMO_API_KEY=your-mimo-key \
|
|
233
233
|
--env DEEPGRAM_API_KEY=your-deepgram-key \
|
|
234
234
|
--env ASSEMBLYAI_API_KEY=your-assemblyai-key \
|
|
@@ -353,53 +353,203 @@ Set `VIDEO_MCP_DEFAULT_PROVIDER=gemini`, `qwen`, `kimi`, or `mimo` to change the
|
|
|
353
353
|
|
|
354
354
|
**GLM-4.6V**, **Qwen3.6**, and **MiMo-V2 Omni** all accept direct video URLs, but base64-encoding a local file caps out at **10–12 MB**. Above that limit, the server first tries to fall back to an upload-capable provider (Gemini or Kimi) if one is available, then falls back to **frame-based analysis** as a last resort. For the best results on large local videos, set `AWS_S3_BUCKET` — the server uploads the full video to S3 and passes a presigned URL to GLM, Qwen, and MiMo, bypassing the base64 limit entirely and taking priority over both fallbacks. No manual upload step needed.
|
|
355
355
|
|
|
356
|
-
|
|
356
|
+
#### Why S3 works
|
|
357
|
+
|
|
358
|
+
GLM, Qwen, and MiMo require the serving endpoint to provide `Content-Length` and `Content-Type` headers alongside the video. AWS S3 presigned URLs include both headers automatically.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
#### Prerequisites
|
|
363
|
+
|
|
364
|
+
Before setting up the S3 relay, you'll need an AWS account and access credentials.
|
|
365
|
+
|
|
366
|
+
##### 1. Create an AWS account
|
|
367
|
+
|
|
368
|
+
1. Go to [aws.amazon.com](https://aws.amazon.com/) and click **Create an AWS Account**.
|
|
369
|
+
2. Enter your email address, a password, and an AWS account name.
|
|
370
|
+
3. Choose the **Basic Support — Free** plan (sufficient for S3 relay usage).
|
|
371
|
+
4. Fill in your contact and billing information. A valid credit or debit card is required, but S3 usage within the free tier costs nothing.
|
|
372
|
+
5. Verify your identity via phone call or SMS.
|
|
373
|
+
6. Once confirmed, sign in to the [AWS Management Console](https://console.aws.amazon.com/).
|
|
374
|
+
|
|
375
|
+
> New AWS accounts include a 12-month Free Tier with 5 GB of S3 storage and 20,000 GET requests per month — more than enough for typical video analysis workflows.
|
|
376
|
+
|
|
377
|
+
##### 2. Get your AWS Access Key ID and Secret Access Key
|
|
378
|
+
|
|
379
|
+
The S3 relay needs programmatic access to your S3 bucket. You'll create an IAM user with limited permissions:
|
|
380
|
+
|
|
381
|
+
1. In the AWS Console, search for **IAM** in the top search bar and open the IAM dashboard.
|
|
382
|
+
2. Click **Users** in the left sidebar, then **Create user**.
|
|
383
|
+
3. Enter a user name (e.g., `video-mcp-s3`) and click **Next**.
|
|
384
|
+
4. Under **Permissions options**, select **Attach policies directly**.
|
|
385
|
+
5. Click **Create policy** — this opens a new tab:
|
|
386
|
+
- Switch to the **JSON** tab and paste the following minimum-permission policy:
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"Version": "2012-10-17",
|
|
390
|
+
"Statement": [
|
|
391
|
+
{
|
|
392
|
+
"Effect": "Allow",
|
|
393
|
+
"Action": [
|
|
394
|
+
"s3:PutObject",
|
|
395
|
+
"s3:GetObject",
|
|
396
|
+
"s3:DeleteObject",
|
|
397
|
+
"s3:ListBucket"
|
|
398
|
+
],
|
|
399
|
+
"Resource": [
|
|
400
|
+
"arn:aws:s3:::my-video-analysis",
|
|
401
|
+
"arn:aws:s3:::my-video-analysis/*"
|
|
402
|
+
]
|
|
403
|
+
}
|
|
404
|
+
]
|
|
405
|
+
}
|
|
406
|
+
```
|
|
407
|
+
- Replace `my-video-analysis` with your actual bucket name (you'll create it in the next step).
|
|
408
|
+
- Click **Next**, give the policy a name like `VideoMcpS3Access`, then **Create policy**.
|
|
409
|
+
6. Go back to the user creation tab, click the refresh icon, search for `VideoMcpS3Access`, select it, and click **Next** → **Create user**.
|
|
410
|
+
7. Open the newly created user, go to the **Security credentials** tab.
|
|
411
|
+
8. Under **Access keys**, click **Create access key**.
|
|
412
|
+
9. On **Access key best practices & alternatives**, choose **Other** or the closest equivalent programmatic/local-code option shown in your console, then click **Next**.
|
|
413
|
+
10. Optionally add a description tag, then click **Create access key**.
|
|
414
|
+
11. Copy and save the **Access Key ID** and **Secret Access Key** — you won't be able to see the secret key again after closing this dialog.
|
|
415
|
+
|
|
416
|
+
> **Never commit your Secret Access Key to version control or share it publicly.** Only add it to your local MCP configuration or AWS credentials file.
|
|
417
|
+
|
|
418
|
+
##### 3. (Optional) Install and configure the AWS CLI
|
|
419
|
+
|
|
420
|
+
The AWS CLI is only needed if you want to create buckets from the terminal or use the `~/.aws/credentials` method instead of environment variables. If you plan to add credentials directly to your MCP `env` block, you can skip this step.
|
|
421
|
+
|
|
422
|
+
**Install the AWS CLI**
|
|
423
|
+
|
|
424
|
+
- **Windows:** Download the installer from [aws.amazon.com/cli](https://aws.amazon.com/cli/) or run:
|
|
425
|
+
```bash
|
|
426
|
+
winget install Amazon.AWSCLI
|
|
427
|
+
```
|
|
428
|
+
- **macOS:**
|
|
429
|
+
```bash
|
|
430
|
+
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
|
|
431
|
+
sudo installer -pkg AWSCLIV2.pkg -target /
|
|
432
|
+
```
|
|
433
|
+
- **Linux:**
|
|
434
|
+
```bash
|
|
435
|
+
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
|
436
|
+
unzip awscliv2.zip
|
|
437
|
+
sudo ./aws/install
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**Configure your credentials**
|
|
441
|
+
|
|
442
|
+
Run the following command and paste your Access Key ID and Secret Access Key when prompted:
|
|
357
443
|
|
|
358
|
-
|
|
444
|
+
```bash
|
|
445
|
+
aws configure
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
You'll be asked for:
|
|
449
|
+
|
|
450
|
+
- **AWS Access Key ID** — paste the key you saved earlier
|
|
451
|
+
- **AWS Secret Access Key** — paste the secret key you saved earlier
|
|
452
|
+
- **Default region name** — enter your preferred region (e.g., `us-east-1`)
|
|
453
|
+
- **Default output format** — press Enter for `json`
|
|
454
|
+
|
|
455
|
+
This stores your credentials in `~/.aws/credentials` and `~/.aws/config`, which the MCP server reads automatically.
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
#### One-time setup
|
|
460
|
+
|
|
461
|
+
##### 1. Create an S3 bucket
|
|
462
|
+
|
|
463
|
+
If you installed the AWS CLI:
|
|
359
464
|
|
|
360
465
|
```bash
|
|
361
|
-
# 1. Create a bucket
|
|
362
466
|
aws s3 mb s3://my-video-analysis
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
Or create it manually in the [S3 Console](https://s3.console.aws.amazon.com/):
|
|
470
|
+
|
|
471
|
+
1. Open the S3 dashboard and click **Create bucket**.
|
|
472
|
+
2. Enter a unique bucket name (e.g., `my-video-analysis`).
|
|
473
|
+
3. Choose the AWS Region you want to use. This should match `AWS_REGION` in your MCP config or AWS CLI profile.
|
|
474
|
+
4. Leave **Block all public access** enabled. The bucket does not need to be public — the server uses presigned URLs.
|
|
475
|
+
5. Keep the default **Object Ownership** setting (`ACLs disabled` / `Bucket owner enforced`).
|
|
476
|
+
6. Leave the remaining settings at their defaults, then click **Create bucket**.
|
|
477
|
+
|
|
478
|
+
> You do not need to add a bucket policy or make objects public. A private bucket works fine because the MCP server generates time-limited presigned URLs for each uploaded video.
|
|
479
|
+
|
|
480
|
+
##### 2. Add `AWS_S3_BUCKET` to your MCP config
|
|
481
|
+
|
|
482
|
+
**VS Code (`.vscode/mcp.json`)**
|
|
363
483
|
|
|
364
|
-
|
|
484
|
+
```json
|
|
485
|
+
{
|
|
486
|
+
"servers": {
|
|
487
|
+
"videoMcp": {
|
|
488
|
+
"type": "stdio",
|
|
489
|
+
"command": "video-context-mcp",
|
|
490
|
+
"env": {
|
|
491
|
+
"AWS_S3_BUCKET": "my-video-analysis",
|
|
492
|
+
"GEMINI_API_KEY": "your-gemini-key"
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
365
497
|
```
|
|
366
498
|
|
|
367
|
-
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
#### AWS Credential Resolution
|
|
502
|
+
|
|
503
|
+
The server resolves AWS credentials in this order — you only need to configure one:
|
|
368
504
|
|
|
369
|
-
1. **Environment variables** — add
|
|
505
|
+
1. **Environment variables** — add directly to your MCP `env` block (no AWS CLI needed):
|
|
370
506
|
```jsonc
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
"AWS_SECRET_ACCESS_KEY": "your-secret-key",
|
|
376
|
-
"AWS_REGION": "us-east-1",
|
|
377
|
-
}
|
|
507
|
+
"AWS_S3_BUCKET": "my-video-analysis",
|
|
508
|
+
"AWS_ACCESS_KEY_ID": "AKIA...",
|
|
509
|
+
"AWS_SECRET_ACCESS_KEY": "your-secret-key",
|
|
510
|
+
"AWS_REGION": "us-east-1"
|
|
378
511
|
```
|
|
379
|
-
2. **`~/.aws/credentials`** — if
|
|
512
|
+
2. **`~/.aws/credentials`** — if the AWS CLI is configured, credentials are picked up automatically. Only `AWS_S3_BUCKET` is needed in your MCP config:
|
|
380
513
|
```jsonc
|
|
381
|
-
|
|
382
|
-
{
|
|
383
|
-
"AWS_S3_BUCKET": "my-video-analysis",
|
|
384
|
-
}
|
|
514
|
+
"AWS_S3_BUCKET": "my-video-analysis"
|
|
385
515
|
```
|
|
386
516
|
3. **IAM instance role / ECS task role** — for AWS-hosted environments.
|
|
387
517
|
|
|
388
|
-
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
#### How it works at runtime
|
|
521
|
+
|
|
522
|
+
Every time you analyze a local video (or a platform download like YouTube) with GLM, Qwen, or MiMo:
|
|
523
|
+
|
|
524
|
+
1. The server detects the file is too large for base64 encoding.
|
|
525
|
+
2. The file is uploaded to `s3://my-video-analysis/<hash>/<filename>`.
|
|
526
|
+
3. A presigned URL (valid for 1 hour) is passed to the AI provider.
|
|
527
|
+
4. The provider downloads the video directly from S3.
|
|
528
|
+
5. The object is kept in the bucket for reuse within the same session.
|
|
389
529
|
|
|
390
|
-
**Cleanup:** Relayed S3 objects are deleted automatically when the MCP server session ends
|
|
530
|
+
**Cleanup:** Relayed S3 objects are deleted automatically when the MCP server session ends. Orphaned objects from crashed sessions are swept at next startup.
|
|
391
531
|
|
|
392
|
-
|
|
532
|
+
To keep objects in the bucket for reuse across sessions (useful for large files you analyze repeatedly):
|
|
393
533
|
|
|
394
|
-
|
|
534
|
+
```jsonc
|
|
535
|
+
"AWS_S3_RELAY_CLEANUP": "false"
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
**Cost**: AWS S3 free tier covers 5 GB storage + 20K GET requests/month for 12 months. After the free tier, storage costs roughly $0.023/GB/month — negligible for most use cases.
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
#### Manual presigned URLs (alternative)
|
|
543
|
+
|
|
544
|
+
You can also pass a presigned URL directly to any tool without configuring the relay:
|
|
395
545
|
|
|
396
546
|
```bash
|
|
397
547
|
aws s3 cp my-video.mp4 s3://my-video-analysis/my-video.mp4
|
|
398
548
|
aws s3 presign s3://my-video-analysis/my-video.mp4 --expires-in 3600
|
|
399
|
-
#
|
|
549
|
+
# → https://my-video-analysis.s3.amazonaws.com/my-video.mp4?X-Amz-...
|
|
400
550
|
```
|
|
401
551
|
|
|
402
|
-
Then pass the URL directly to `analyze_video` or
|
|
552
|
+
Then pass the URL directly to `analyze_video`, `summarize_video`, or any other tool.
|
|
403
553
|
|
|
404
554
|
</details>
|
|
405
555
|
|
|
@@ -573,10 +723,10 @@ vmcp cache clear:all --yes # skip confirmation
|
|
|
573
723
|
"type": "stdio",
|
|
574
724
|
"command": "video-context-mcp",
|
|
575
725
|
"env": {
|
|
726
|
+
"GEMINI_API_KEY": "your-gemini-key",
|
|
576
727
|
"Z_AI_API_KEY": "your-zai-key",
|
|
577
728
|
"DASHSCOPE_API_KEY": "your-dashscope-key",
|
|
578
729
|
"MOONSHOT_API_KEY": "your-moonshot-key",
|
|
579
|
-
"GEMINI_API_KEY": "your-gemini-key",
|
|
580
730
|
"MIMO_API_KEY": "your-mimo-key",
|
|
581
731
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
582
732
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
@@ -720,10 +870,10 @@ Use this `.vscode/mcp.json` to run the local build (never commit this file):
|
|
|
720
870
|
"command": "node",
|
|
721
871
|
"args": ["${workspaceFolder}/dist/index.js"],
|
|
722
872
|
"env": {
|
|
873
|
+
"GEMINI_API_KEY": "your-gemini-key",
|
|
723
874
|
"Z_AI_API_KEY": "your-zai-key",
|
|
724
875
|
"DASHSCOPE_API_KEY": "your-dashscope-key",
|
|
725
876
|
"MOONSHOT_API_KEY": "your-moonshot-key",
|
|
726
|
-
"GEMINI_API_KEY": "your-gemini-key",
|
|
727
877
|
"MIMO_API_KEY": "your-mimo-key",
|
|
728
878
|
"VIDEO_MCP_DEFAULT_PROVIDER": "gemini",
|
|
729
879
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.52.
|
|
1
|
+
export declare const VERSION = "0.52.2-beta";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "video-context-mcp-server",
|
|
3
|
-
"version": "0.52.
|
|
3
|
+
"version": "0.52.2-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",
|
|
@@ -26,13 +26,26 @@
|
|
|
26
26
|
"mcp",
|
|
27
27
|
"model-context-protocol",
|
|
28
28
|
"video",
|
|
29
|
+
"video-analysis",
|
|
30
|
+
"video-summarization",
|
|
31
|
+
"transcription",
|
|
29
32
|
"ai",
|
|
30
33
|
"copilot",
|
|
34
|
+
"gemini",
|
|
31
35
|
"kimi",
|
|
32
36
|
"glm",
|
|
33
37
|
"qwen",
|
|
38
|
+
"mimo",
|
|
34
39
|
"moonshot",
|
|
35
|
-
"z.ai"
|
|
40
|
+
"z.ai",
|
|
41
|
+
"alibaba",
|
|
42
|
+
"xiaomi",
|
|
43
|
+
"google",
|
|
44
|
+
"deepgram",
|
|
45
|
+
"assemblyai",
|
|
46
|
+
"groq",
|
|
47
|
+
"ffmpeg",
|
|
48
|
+
"yt-dlp"
|
|
36
49
|
],
|
|
37
50
|
"author": "",
|
|
38
51
|
"license": "UNLICENSED",
|