video-context-mcp-server 0.49.3-beta → 0.50.1-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 +8 -8
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/services/audio/deepgramClient.d.ts.map +1 -1
- package/dist/services/audio/deepgramClient.js +3 -8
- package/dist/services/audio/deepgramClient.js.map +1 -1
- package/dist/tools/schemas.d.ts +59 -73
- package/dist/tools/schemas.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ An MCP server that gives coding assistants (GitHub Copilot, Cursor, Claude Code)
|
|
|
25
25
|
|
|
26
26
|
### Prerequisites
|
|
27
27
|
|
|
28
|
-
- **Node.js
|
|
28
|
+
- **Node.js 20+**
|
|
29
29
|
- A supported MCP client (VS Code + GitHub Copilot Chat, Cursor, or Claude Code)
|
|
30
30
|
- At least one API key — see [API Keys](#api-keys) below
|
|
31
31
|
|
|
@@ -298,24 +298,24 @@ When an audio key is missing or an audio API call fails at runtime, tools automa
|
|
|
298
298
|
|
|
299
299
|
| Feature | GLM-4.6V (default) | Gemini 3 Flash Preview | Qwen3.5 | Kimi K2.5 | MiMo-V2 Omni |
|
|
300
300
|
| -------------- | ------------------------------------------------------ | ---------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------- | ------------------------------------------------------ |
|
|
301
|
-
| Price | Free tier available (GLM-4.6V-Flash) | Free tier available | Free credits (1M tokens, 90 days) | $0.60 input / $3.00 output per 1M tokens |
|
|
301
|
+
| Price | Free tier available (GLM-4.6V-Flash) | Free tier available | Free credits (1M tokens, 90 days) | $0.60 input / $3.00 output per 1M tokens | $0.40 input / $2.00 output per 1M tokens |
|
|
302
302
|
| Video formats | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, mov, avi, wmv |
|
|
303
303
|
| Context window | 128K tokens | 1M tokens | 1M tokens | 256K tokens | 256K tokens |
|
|
304
304
|
| Max file size | ~12 MB base64 / frames fallback / **unlimited w/ S3↓** | 2 GB | ~10 MB base64 / frames fallback / **unlimited w/ S3↓** | 100 MB | ~10 MB base64 / frames fallback / **unlimited w/ S3↓** |
|
|
305
|
-
| Best for | **Default** — free, no card required | Free fallback, no card (less accurate) | Free credits (card required) | Paid — broadest format support |
|
|
305
|
+
| Best for | **Default** — free, no card required | Free fallback, no card (less accurate) | Free credits (card required) | Paid — broadest format support | Paid — thinking mode; multimodal |
|
|
306
306
|
|
|
307
|
-
**GLM-4.6V** is the default — it offers a free tier with no credit card required. **Gemini** is the second fallback — also free with no card required, though it has proven less accurate for video analysis in practice. **Qwen3.5** offers free credits (1M tokens for 90 days) but requires a credit card to sign up. **Kimi K2.5** is a paid provider with the broadest video format support. **MiMo-V2 Omni** is Xiaomi's multimodal model with thinking mode support
|
|
307
|
+
**GLM-4.6V** is the default — it offers a free tier with no credit card required. **Gemini** is the second fallback — also free with no card required, though it has proven less accurate for video analysis in practice. **Qwen3.5** offers free credits (1M tokens for 90 days) but requires a credit card to sign up. **Kimi K2.5** is a paid provider with the broadest video format support. **MiMo-V2 Omni** is Xiaomi's multimodal model with thinking mode support ($0.40 input / $2.00 output per 1M tokens).
|
|
308
308
|
|
|
309
309
|
Set `VIDEO_MCP_DEFAULT_PROVIDER=gemini`, `qwen`, `kimi`, or `mimo` to change the default.
|
|
310
310
|
|
|
311
|
-
> **ℹ️ Large local files with GLM or
|
|
311
|
+
> **ℹ️ Large local files with GLM, Qwen, or MiMo:** All three providers have a 10–12 MB base64 limit for local files. When a file exceeds this limit, the server first tries to fall back to an upload-capable provider (Gemini or Kimi) if one is available in the fallback chain. Frame-based analysis (evenly-spaced keyframes sent as images) is used only as a **last resort** when no upload-capable provider is available, or when all upload-capable providers fail at runtime — no configuration needed. For the highest quality with large local videos, set up the optional **S3 relay** (below) — GLM, Qwen, and MiMo will receive a presigned URL to the full video, bypassing the limit entirely and taking priority over both fallbacks.
|
|
312
312
|
|
|
313
313
|
<details open>
|
|
314
|
-
<summary><strong>Automatic S3 relay: bypass the 10 MB local file limit with Qwen and
|
|
314
|
+
<summary><strong>Automatic S3 relay: bypass the 10 MB local file limit with GLM, Qwen, and MiMo</strong></summary>
|
|
315
315
|
|
|
316
|
-
**GLM-4.6V
|
|
316
|
+
**GLM-4.6V**, **Qwen3.5**, 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.
|
|
317
317
|
|
|
318
|
-
**Why it works**: Qwen and
|
|
318
|
+
**Why it works**: GLM, Qwen, and MiMo require the server to serve `Content-Length` and `Content-Type` headers alongside the video. AWS S3 provides these automatically.
|
|
319
319
|
|
|
320
320
|
**One-time setup**
|
|
321
321
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.50.1-beta";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepgramClient.d.ts","sourceRoot":"","sources":["../../../src/services/audio/deepgramClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deepgramClient.d.ts","sourceRoot":"","sources":["../../../src/services/audio/deepgramClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,2BAA2B,CAAA;AASlC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAqMD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAI1B;;;;OAIG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,cAAc,CAAC;CAkB3B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as fs from 'fs/promises';
|
|
1
|
+
import { DeepgramClient as DGClient } from '@deepgram/sdk';
|
|
3
2
|
/**
|
|
4
3
|
* Deepgram Audio Client
|
|
5
4
|
* Transcribes audio files using Deepgram's Nova-2 model
|
|
@@ -103,12 +102,8 @@ export class DeepgramClient {
|
|
|
103
102
|
* @param options - Transcription options
|
|
104
103
|
*/
|
|
105
104
|
async transcribe(audioPath, options = {}) {
|
|
106
|
-
const client =
|
|
107
|
-
const
|
|
108
|
-
const { result, error } = await client.listen.prerecorded.transcribeFile(audioBuffer, buildDeepgramRequest(options));
|
|
109
|
-
if (error) {
|
|
110
|
-
throw new Error(`Deepgram transcription error: ${error.message}`);
|
|
111
|
-
}
|
|
105
|
+
const client = new DGClient({ apiKey: this.apiKey });
|
|
106
|
+
const result = (await client.listen.v1.media.transcribeFile({ path: audioPath }, buildDeepgramRequest(options)));
|
|
112
107
|
const { paragraphs, text } = buildTranscript(result, options);
|
|
113
108
|
return {
|
|
114
109
|
text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepgramClient.js","sourceRoot":"","sources":["../../../src/services/audio/deepgramClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"deepgramClient.js","sourceRoot":"","sources":["../../../src/services/audio/deepgramClient.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/schemas.d.ts
CHANGED
|
@@ -4,101 +4,87 @@
|
|
|
4
4
|
* file (for deriving typed params via z.infer<>).
|
|
5
5
|
*/
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
export declare const videoProviderEnum: z.ZodEnum<
|
|
8
|
-
|
|
7
|
+
export declare const videoProviderEnum: z.ZodEnum<{
|
|
8
|
+
glm: "glm";
|
|
9
|
+
kimi: "kimi";
|
|
10
|
+
gemini: "gemini";
|
|
11
|
+
qwen: "qwen";
|
|
12
|
+
mimo: "mimo";
|
|
13
|
+
}>;
|
|
14
|
+
export declare const audioProviderEnum: z.ZodEnum<{
|
|
15
|
+
gemini: "gemini";
|
|
16
|
+
deepgram: "deepgram";
|
|
17
|
+
assemblyai: "assemblyai";
|
|
18
|
+
groq: "groq";
|
|
19
|
+
}>;
|
|
9
20
|
export declare const analyzeVideoSchema: z.ZodObject<{
|
|
10
21
|
videoPath: z.ZodString;
|
|
11
22
|
question: z.ZodString;
|
|
12
|
-
provider: z.ZodOptional<z.ZodEnum<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
provider?: "glm" | "kimi" | "gemini" | "qwen" | "mimo" | undefined;
|
|
21
|
-
}>;
|
|
23
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
24
|
+
glm: "glm";
|
|
25
|
+
kimi: "kimi";
|
|
26
|
+
gemini: "gemini";
|
|
27
|
+
qwen: "qwen";
|
|
28
|
+
mimo: "mimo";
|
|
29
|
+
}>>;
|
|
30
|
+
}, z.core.$strip>;
|
|
22
31
|
export declare const summarizeVideoSchema: z.ZodObject<{
|
|
23
32
|
videoPath: z.ZodString;
|
|
24
|
-
provider: z.ZodOptional<z.ZodEnum<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}>;
|
|
33
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
glm: "glm";
|
|
35
|
+
kimi: "kimi";
|
|
36
|
+
gemini: "gemini";
|
|
37
|
+
qwen: "qwen";
|
|
38
|
+
mimo: "mimo";
|
|
39
|
+
}>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
32
41
|
export declare const extractFramesSchema: z.ZodObject<{
|
|
33
42
|
videoPath: z.ZodString;
|
|
34
|
-
mode: z.ZodEnum<
|
|
43
|
+
mode: z.ZodEnum<{
|
|
44
|
+
even: "even";
|
|
45
|
+
interval: "interval";
|
|
46
|
+
timestamps: "timestamps";
|
|
47
|
+
scene: "scene";
|
|
48
|
+
}>;
|
|
35
49
|
count: z.ZodOptional<z.ZodNumber>;
|
|
36
50
|
intervalSec: z.ZodOptional<z.ZodNumber>;
|
|
37
|
-
timestamps: z.ZodOptional<z.ZodArray<z.ZodNumber
|
|
51
|
+
timestamps: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
38
52
|
maxImages: z.ZodOptional<z.ZodNumber>;
|
|
39
53
|
offset: z.ZodOptional<z.ZodNumber>;
|
|
40
54
|
sceneThreshold: z.ZodOptional<z.ZodNumber>;
|
|
41
|
-
},
|
|
42
|
-
videoPath: string;
|
|
43
|
-
mode: "even" | "interval" | "timestamps" | "scene";
|
|
44
|
-
timestamps?: number[] | undefined;
|
|
45
|
-
count?: number | undefined;
|
|
46
|
-
intervalSec?: number | undefined;
|
|
47
|
-
maxImages?: number | undefined;
|
|
48
|
-
offset?: number | undefined;
|
|
49
|
-
sceneThreshold?: number | undefined;
|
|
50
|
-
}, {
|
|
51
|
-
videoPath: string;
|
|
52
|
-
mode: "even" | "interval" | "timestamps" | "scene";
|
|
53
|
-
timestamps?: number[] | undefined;
|
|
54
|
-
count?: number | undefined;
|
|
55
|
-
intervalSec?: number | undefined;
|
|
56
|
-
maxImages?: number | undefined;
|
|
57
|
-
offset?: number | undefined;
|
|
58
|
-
sceneThreshold?: number | undefined;
|
|
59
|
-
}>;
|
|
55
|
+
}, z.core.$strip>;
|
|
60
56
|
export declare const searchTimestampSchema: z.ZodObject<{
|
|
61
57
|
videoPath: z.ZodString;
|
|
62
58
|
query: z.ZodString;
|
|
63
|
-
provider: z.ZodOptional<z.ZodEnum<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
provider?: "glm" | "kimi" | "gemini" | "qwen" | "mimo" | undefined;
|
|
72
|
-
}>;
|
|
59
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
glm: "glm";
|
|
61
|
+
kimi: "kimi";
|
|
62
|
+
gemini: "gemini";
|
|
63
|
+
qwen: "qwen";
|
|
64
|
+
mimo: "mimo";
|
|
65
|
+
}>>;
|
|
66
|
+
}, z.core.$strip>;
|
|
73
67
|
export declare const getVideoInfoSchema: z.ZodObject<{
|
|
74
68
|
videoPath: z.ZodString;
|
|
75
|
-
},
|
|
76
|
-
videoPath: string;
|
|
77
|
-
}, {
|
|
78
|
-
videoPath: string;
|
|
79
|
-
}>;
|
|
69
|
+
}, z.core.$strip>;
|
|
80
70
|
export declare const transcribeVideoSchema: z.ZodObject<{
|
|
81
71
|
videoPath: z.ZodString;
|
|
82
|
-
provider: z.ZodOptional<z.ZodEnum<
|
|
72
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
73
|
+
gemini: "gemini";
|
|
74
|
+
deepgram: "deepgram";
|
|
75
|
+
assemblyai: "assemblyai";
|
|
76
|
+
groq: "groq";
|
|
77
|
+
}>>;
|
|
83
78
|
language: z.ZodOptional<z.ZodString>;
|
|
84
79
|
diarize: z.ZodOptional<z.ZodBoolean>;
|
|
85
80
|
translate: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
-
outputFormat: z.ZodOptional<z.ZodEnum<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
outputFormat?: "text" | "json" | "srt" | "vtt" | undefined;
|
|
94
|
-
}, {
|
|
95
|
-
videoPath: string;
|
|
96
|
-
language?: string | undefined;
|
|
97
|
-
diarize?: boolean | undefined;
|
|
98
|
-
provider?: "gemini" | "deepgram" | "assemblyai" | "groq" | undefined;
|
|
99
|
-
translate?: boolean | undefined;
|
|
100
|
-
outputFormat?: "text" | "json" | "srt" | "vtt" | undefined;
|
|
101
|
-
}>;
|
|
81
|
+
outputFormat: z.ZodOptional<z.ZodEnum<{
|
|
82
|
+
text: "text";
|
|
83
|
+
json: "json";
|
|
84
|
+
srt: "srt";
|
|
85
|
+
vtt: "vtt";
|
|
86
|
+
}>>;
|
|
87
|
+
}, z.core.$strip>;
|
|
102
88
|
export type AnalyzeVideoParams = z.infer<typeof analyzeVideoSchema>;
|
|
103
89
|
export type SummarizeVideoParams = z.infer<typeof summarizeVideoSchema>;
|
|
104
90
|
export type ExtractFramesParams = z.infer<typeof extractFramesSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAA;AACF,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAA;AAIF,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAQ7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;iBAO/B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAwD9B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAgBhC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;iBAM7B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;iBAmChC,CAAA;AAIF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACnE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACzE,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "video-context-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.50.1-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",
|
|
@@ -39,17 +39,17 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@aws-sdk/client-s3": "^3.1009.0",
|
|
41
41
|
"@aws-sdk/s3-request-presigner": "^3.1009.0",
|
|
42
|
-
"@deepgram/sdk": "^
|
|
42
|
+
"@deepgram/sdk": "^5.0.0",
|
|
43
43
|
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
|
44
44
|
"@ffprobe-installer/ffprobe": "^2.1.0",
|
|
45
45
|
"@google/genai": "^1.42.0",
|
|
46
46
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
47
47
|
"assemblyai": "^4.23.1",
|
|
48
48
|
"fluent-ffmpeg": "^2.1.3",
|
|
49
|
-
"openai": "^
|
|
49
|
+
"openai": "^6.32.0",
|
|
50
50
|
"p-limit": "^7.3.0",
|
|
51
51
|
"youtube-dl-exec": "^3.1.3",
|
|
52
|
-
"zod": "^3.
|
|
52
|
+
"zod": "^4.3.6"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@eslint/js": "^10.0.1",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"vitest": "^4.0.18"
|
|
68
68
|
},
|
|
69
69
|
"engines": {
|
|
70
|
-
"node": ">=
|
|
70
|
+
"node": ">=20.0.0"
|
|
71
71
|
},
|
|
72
72
|
"overrides": {
|
|
73
73
|
"minimatch": ">=10.2.1"
|