video-context-mcp-server 1.0.2 → 1.1.0
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 +43 -22
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.js +36 -1
- package/dist/index.js.map +1 -1
- package/dist/services/kimiClient.d.ts.map +1 -1
- package/dist/services/kimiClient.js +12 -4
- package/dist/services/kimiClient.js.map +1 -1
- package/dist/services/minimaxClient.d.ts +49 -0
- package/dist/services/minimaxClient.d.ts.map +1 -0
- package/dist/services/minimaxClient.js +314 -0
- package/dist/services/minimaxClient.js.map +1 -0
- package/dist/services/providerRouter.js +1 -1
- package/dist/tools/generateImage.d.ts +10 -0
- package/dist/tools/generateImage.d.ts.map +1 -0
- package/dist/tools/generateImage.js +78 -0
- package/dist/tools/generateImage.js.map +1 -0
- package/dist/tools/generateMusic.d.ts +10 -0
- package/dist/tools/generateMusic.d.ts.map +1 -0
- package/dist/tools/generateMusic.js +75 -0
- package/dist/tools/generateMusic.js.map +1 -0
- package/dist/tools/generateVideo.d.ts +11 -0
- package/dist/tools/generateVideo.d.ts.map +1 -0
- package/dist/tools/generateVideo.js +64 -0
- package/dist/tools/generateVideo.js.map +1 -0
- package/dist/tools/queryGenerationTask.d.ts +11 -0
- package/dist/tools/queryGenerationTask.d.ts.map +1 -0
- package/dist/tools/queryGenerationTask.js +75 -0
- package/dist/tools/queryGenerationTask.js.map +1 -0
- package/dist/tools/schemas.d.ts +94 -0
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +192 -3
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/textToSpeech.d.ts +10 -0
- package/dist/tools/textToSpeech.d.ts.map +1 -0
- package/dist/tools/textToSpeech.js +75 -0
- package/dist/tools/textToSpeech.js.map +1 -0
- package/dist/types/media.d.ts +90 -0
- package/dist/types/media.d.ts.map +1 -0
- package/dist/types/media.js +9 -0
- package/dist/types/media.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video Context MCP Server
|
|
2
2
|
|
|
3
|
-
An MCP server that gives coding assistants (GitHub Copilot, Cursor, 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 **and generate media** (text-to-speech, images, videos, music) via the MiniMax API.
|
|
4
4
|
|
|
5
5
|
**[Official Documentation](https://www.videocontextmcp.com/)**<br />
|
|
6
6
|
**[Tutorials Playlist](https://www.youtube.com/playlist?list=PL3Big7arQA0Rc1B6WVLmZqXKwDyp1fyme)**
|
|
@@ -15,9 +15,13 @@ An MCP server that gives coding assistants (GitHub Copilot, Cursor, Claude Code)
|
|
|
15
15
|
- 🎙️ **Audio Transcription** — Transcribe speech with paragraph-level timestamps (`[MM:SS]`) or export as SRT/VTT subtitles and JSON using Deepgram, AssemblyAI, Groq/Whisper, or Gemini
|
|
16
16
|
- 🔊 **Speaker Diarization** — Identify who said what (Deepgram and AssemblyAI)
|
|
17
17
|
- 🔊 **Audio-Enhanced Analysis** — Auto-transcribes audio and injects transcripts into AI prompts for richer results (GLM/Kimi/Qwen)
|
|
18
|
-
- 🔄 **Multi-Provider Support** — Choose between GLM-4.6V, Qwen3.6, Kimi K2.
|
|
18
|
+
- 🔄 **Multi-Provider Support** — Choose between GLM-4.6V, Qwen3.6, Kimi K2.6, Gemini, or MiMo-V2 Omni
|
|
19
19
|
- 🎯 **Smart Video Handling** — Extracts keyframes from long videos to reduce token usage
|
|
20
|
-
-
|
|
20
|
+
- 🗣️ **Text-to-Speech** — Convert text to natural speech audio (MiniMax TTS)
|
|
21
|
+
- 🖼️ **Image Generation** — Generate images from text prompts (MiniMax image-01)
|
|
22
|
+
- 🎬 **Video Generation** — Generate videos from text or image prompts (MiniMax Hailuo)
|
|
23
|
+
- 🎵 **Music Generation** — Generate music from prompts and lyrics (MiniMax music-2.6)
|
|
24
|
+
- ⭐ **Pro tier** — Extended frame extraction, multi-platform downloads, higher resolution, media generation. [Learn more ↓](#pro)
|
|
21
25
|
|
|
22
26
|
---
|
|
23
27
|
|
|
@@ -96,7 +100,8 @@ Set all keys to enable the full fallback chain. If one provider is unavailable o
|
|
|
96
100
|
"MIMO_API_KEY": "your-mimo-key",
|
|
97
101
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
98
102
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
99
|
-
"GROQ_API_KEY": "your-groq-key"
|
|
103
|
+
"GROQ_API_KEY": "your-groq-key",
|
|
104
|
+
"MINIMAX_API_KEY": "your-minimax-key"
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
}
|
|
@@ -125,7 +130,8 @@ You can configure the MCP server globally (for all projects) or at the project l
|
|
|
125
130
|
"MIMO_API_KEY": "your-mimo-key",
|
|
126
131
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
127
132
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
128
|
-
"GROQ_API_KEY": "your-groq-key"
|
|
133
|
+
"GROQ_API_KEY": "your-groq-key",
|
|
134
|
+
"MINIMAX_API_KEY": "your-minimax-key"
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
137
|
}
|
|
@@ -214,7 +220,8 @@ Use `npx -y video-context-mcp-server@latest` as the command instead of `video-co
|
|
|
214
220
|
"MIMO_API_KEY": "your-mimo-key",
|
|
215
221
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
216
222
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
217
|
-
"GROQ_API_KEY": "your-groq-key"
|
|
223
|
+
"GROQ_API_KEY": "your-groq-key",
|
|
224
|
+
"MINIMAX_API_KEY": "your-minimax-key"
|
|
218
225
|
}
|
|
219
226
|
}
|
|
220
227
|
}
|
|
@@ -233,6 +240,7 @@ claude mcp add \
|
|
|
233
240
|
--env DEEPGRAM_API_KEY=your-deepgram-key \
|
|
234
241
|
--env ASSEMBLYAI_API_KEY=your-assemblyai-key \
|
|
235
242
|
--env GROQ_API_KEY=your-groq-key \
|
|
243
|
+
--env MINIMAX_API_KEY=your-minimax-key \
|
|
236
244
|
videoMcp -- npx -y video-context-mcp-server@latest
|
|
237
245
|
```
|
|
238
246
|
|
|
@@ -244,14 +252,19 @@ claude mcp add \
|
|
|
244
252
|
|
|
245
253
|
## Available Tools
|
|
246
254
|
|
|
247
|
-
| Tool
|
|
248
|
-
|
|
|
249
|
-
| `analyze_video`
|
|
250
|
-
| `summarize_video`
|
|
251
|
-
| `extract_frames`
|
|
252
|
-
| `search_timestamp`
|
|
253
|
-
| `get_video_info`
|
|
254
|
-
| `transcribe_video`
|
|
255
|
+
| Tool | Description | Key Parameters |
|
|
256
|
+
| ----------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
|
257
|
+
| `analyze_video` | Ask questions about video content | `videoPath`, `question`, `provider?` |
|
|
258
|
+
| `summarize_video` | Generate a structured video summary | `videoPath`, `provider?` |
|
|
259
|
+
| `extract_frames` | Extract frames from a video | `videoPath`, `mode`, `count/intervalSec/timestamps/sceneThreshold`, `maxImages?`, `offset?` |
|
|
260
|
+
| `search_timestamp` | Find when something specific happens | `videoPath`, `query`, `provider?` |
|
|
261
|
+
| `get_video_info` | Get video metadata | `videoPath` |
|
|
262
|
+
| `transcribe_video` | Transcribe audio/speech from a video | `videoPath`, `provider?`, `language?`, `diarize?`, `translate?`, `outputFormat?` |
|
|
263
|
+
| `text_to_speech` | Convert text to natural speech audio | `text`, `model?`, `voice_id?`, `speed?`, `vol?`, `pitch?`, `emotion?`, `format?` |
|
|
264
|
+
| `generate_image` | Generate images from a text prompt | `prompt`, `model?`, `aspect_ratio?`, `n?`, `prompt_optimizer?` |
|
|
265
|
+
| `generate_video` | Generate video from text/image prompt (returns task_id) | `prompt?`, `model?`, `first_frame_image?`, `duration?`, `resolution?` |
|
|
266
|
+
| `generate_music` | Generate music from prompt + lyrics | `prompt`, `lyrics?`, `model?`, `is_instrumental?`, `lyrics_optimizer?` |
|
|
267
|
+
| `query_generation_task` | Poll async generation task status + download result | `task_id` |
|
|
255
268
|
|
|
256
269
|
All tools accept local file paths, `file://` URIs, and remote `http(s)` URLs. Remote videos are downloaded automatically.
|
|
257
270
|
|
|
@@ -304,7 +317,7 @@ Set all keys to get the full fallback chain. The server will try Gemini first, t
|
|
|
304
317
|
| **Gemini 3 Flash Preview** (default, free-tier) | `GEMINI_API_KEY` | [Get key](https://aistudio.google.com/app/apikey) |
|
|
305
318
|
| **GLM-4.6V** (free-tier) | `Z_AI_API_KEY` | [Get key](https://z.ai/manage-apikey/apikey-list) |
|
|
306
319
|
| **Qwen3.6** (FREE — promotional) | `DASHSCOPE_API_KEY` | [Get key](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=dashboard#/api-key) |
|
|
307
|
-
| **Kimi K2.
|
|
320
|
+
| **Kimi K2.6** (paid) | `MOONSHOT_API_KEY` | [Get key](https://platform.kimi.ai) |
|
|
308
321
|
| **MiMo-V2 Omni** (paid) | `MIMO_API_KEY` | [Get key](https://platform.xiaomimimo.com/#/console/api-keys) |
|
|
309
322
|
|
|
310
323
|
When a provider's API key is missing or its API call fails at runtime, tools automatically fall back through the remaining providers in priority order, starting from the configured default:
|
|
@@ -334,7 +347,7 @@ When an audio key is missing or an audio API call fails at runtime, tools automa
|
|
|
334
347
|
|
|
335
348
|
### Video Providers
|
|
336
349
|
|
|
337
|
-
| Feature | Gemini 3 Flash Preview (default) | GLM-4.6V | Qwen3.6 | Kimi K2.
|
|
350
|
+
| Feature | Gemini 3 Flash Preview (default) | GLM-4.6V | Qwen3.6 | Kimi K2.6 | MiMo-V2 Omni |
|
|
338
351
|
| -------------- | ---------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | ---------------------------------------------- | ------------------------------------------------------ |
|
|
339
352
|
| Price | Free tier available | Free tier available (GLM-4.6V-Flash) | **FREE** (promotional launch period) | $0.60 input / $3.00 output per 1M tokens | $0.40 input / $2.00 output per 1M tokens |
|
|
340
353
|
| Video formats | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, avi, mov, wmv, webm, m4v | mp4, avi, mov, wmv, webm, m4v | mp4, mpeg, mov, avi, flv, mpg, webm, wmv, 3gpp | mp4, mov, avi, wmv |
|
|
@@ -342,7 +355,7 @@ When an audio key is missing or an audio API call fails at runtime, tools automa
|
|
|
342
355
|
| Max file size | 2 GB | ~12 MB base64 / frames fallback / **unlimited w/ S3↓** | ~10 MB base64 / frames fallback / **unlimited w/ S3↓** | 100 MB | ~10 MB base64 / frames fallback / **unlimited w/ S3↓** |
|
|
343
356
|
| Best for | **Default** — free, no card required | Free, no card required | **FREE during promo** — SOTA agentic coding | Paid — broadest format support | Paid — thinking mode; multimodal |
|
|
344
357
|
|
|
345
|
-
**Gemini 3 Flash Preview** is the default — it offers a free tier with no credit card required, 1M context window, and 2 GB file support. **GLM-4.6V** is the second fallback — also free with no card required. **Qwen3.6** is currently **FREE** during its promotional launch period (released April 2, 2026) — standard pricing will be $0.50 input / $3.00 output per 1M tokens. **Kimi K2.
|
|
358
|
+
**Gemini 3 Flash Preview** is the default — it offers a free tier with no credit card required, 1M context window, and 2 GB file support. **GLM-4.6V** is the second fallback — also free with no card required. **Qwen3.6** is currently **FREE** during its promotional launch period (released April 2, 2026) — standard pricing will be $0.50 input / $3.00 output per 1M tokens. **Kimi K2.6** 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).
|
|
346
359
|
|
|
347
360
|
Set `VIDEO_MCP_DEFAULT_PROVIDER=gemini`, `glm`, `qwen`, `kimi`, or `mimo` to change the default provider used when a tool call does not pass `provider`. If a tool call includes `provider`, that per-call value takes precedence.
|
|
348
361
|
|
|
@@ -578,7 +591,7 @@ Set `AUDIO_MCP_DEFAULT_PROVIDER` to change the default.
|
|
|
578
591
|
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------- |
|
|
579
592
|
| `Z_AI_API_KEY` | Z.AI API key for GLM-4.6V | — |
|
|
580
593
|
| `DASHSCOPE_API_KEY` | Alibaba Cloud API key for Qwen3.6 | — |
|
|
581
|
-
| `MOONSHOT_API_KEY` | Moonshot AI API key for Kimi K2.
|
|
594
|
+
| `MOONSHOT_API_KEY` | Moonshot AI API key for Kimi K2.6 | — |
|
|
582
595
|
| `GEMINI_API_KEY` | Google API key for Gemini | — |
|
|
583
596
|
| `MIMO_API_KEY` | Xiaomi MiMo API key for MiMo-V2 Omni | — |
|
|
584
597
|
| `VIDEO_MCP_DEFAULT_PROVIDER` | Default video provider used when a tool call does not pass `provider`; a per-call `provider` argument can override it | `gemini` |
|
|
@@ -603,6 +616,14 @@ Set `AUDIO_MCP_DEFAULT_PROVIDER` to change the default.
|
|
|
603
616
|
| `AUDIO_MCP_DEFAULT_PROVIDER` | Default audio provider: `deepgram`, `assemblyai`, `groq`, or `gemini`. Falls back in that order when the selected key is missing. | `deepgram` |
|
|
604
617
|
| `AUDIO_ENHANCE_VIDEO_ANALYSIS` | Inject audio transcripts into `analyze_video`/`summarize_video` prompts (GLM/Kimi/Qwen/MiMo). `auto` = transcribe when audio track detected; `true` = always; `false` = disabled. | `auto` |
|
|
605
618
|
|
|
619
|
+
### Media Generation (MiniMax)
|
|
620
|
+
|
|
621
|
+
| Variable | Description | Default |
|
|
622
|
+
| ---------------------------- | -------------------------------------------- | --------------------------- |
|
|
623
|
+
| `MINIMAX_API_KEY` | MiniMax API key for all generation tools | — (required for generation) |
|
|
624
|
+
| `MINIMAX_BASE_URL` | Override MiniMax API base URL | `https://api.minimax.io` |
|
|
625
|
+
| `MINIMAX_REQUEST_TIMEOUT_MS` | Client-side timeout for MiniMax API requests | `240000` (4 min) |
|
|
626
|
+
|
|
606
627
|
### Caching
|
|
607
628
|
|
|
608
629
|
Downloaded videos, extracted frames, audio tracks, and transcripts are cached together in a persistent per-video directory. Subsequent tool calls that reference the same video reuse cached artifacts instead of re-running ffmpeg, re-downloading, or re-calling audio provider APIs.
|
|
@@ -814,13 +835,14 @@ Restart the MCP server. **Keep your cookies file private** — never commit it t
|
|
|
814
835
|
|
|
815
836
|
## Pro
|
|
816
837
|
|
|
817
|
-
The free tier covers all core functionality. A **pro license** unlocks
|
|
838
|
+
The free tier covers all core functionality. A **pro license** unlocks four power features:
|
|
818
839
|
|
|
819
840
|
| Feature | Free | Pro |
|
|
820
841
|
| ------------------------------------------------ | ------------------- | --------------------------------- |
|
|
821
842
|
| 🖼️ Extended frame extraction (`summarize_video`) | Capped at 50 frames | Default 100; set `0` for uncapped |
|
|
822
843
|
| 🌐 Platform video downloads | YouTube only | Almost all video platforms |
|
|
823
844
|
| 📺 Download resolution | Capped at 720p | Uncapped |
|
|
845
|
+
| 🗣️ Media generation (TTS, image, video, music) | Not available | Full access |
|
|
824
846
|
|
|
825
847
|
> Local files and direct `http(s)://` video URLs work for all users — the platform gate only applies to yt-dlp URLs (YouTube, Vimeo, TikTok, Bilibili, etc.).
|
|
826
848
|
|
|
@@ -846,8 +868,6 @@ Add `VIDEO_MCP_LICENSE_KEY` to your MCP config `env` block and restart the serve
|
|
|
846
868
|
}
|
|
847
869
|
```
|
|
848
870
|
|
|
849
|
-
---
|
|
850
|
-
|
|
851
871
|
## Troubleshooting
|
|
852
872
|
|
|
853
873
|
- **`video-context-mcp: command not found`** (or `vmcp: 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.
|
|
@@ -889,6 +909,7 @@ Use this `.vscode/mcp.json` to run the local build (never commit this file):
|
|
|
889
909
|
"DEEPGRAM_API_KEY": "your-deepgram-key",
|
|
890
910
|
"ASSEMBLYAI_API_KEY": "your-assemblyai-key",
|
|
891
911
|
"GROQ_API_KEY": "your-groq-key",
|
|
912
|
+
"MINIMAX_API_KEY": "your-minimax-key",
|
|
892
913
|
"AUDIO_MCP_DEFAULT_PROVIDER": "deepgram",
|
|
893
914
|
"AUDIO_ENHANCE_VIDEO_ANALYSIS": "auto",
|
|
894
915
|
"VIDEO_MCP_CACHE_TTL_MINUTES": "43200",
|
|
@@ -928,7 +949,7 @@ Proprietary — All Rights Reserved. No part of this software may be copied, mod
|
|
|
928
949
|
## Credits
|
|
929
950
|
|
|
930
951
|
- [MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk) by Anthropic
|
|
931
|
-
- [Kimi K2.
|
|
952
|
+
- [Kimi K2.6](https://github.com/MoonshotAI/Kimi-K2.6) by Moonshot AI
|
|
932
953
|
- [GLM-4.6V](https://docs.z.ai/guides/vlm/glm-4.6v) by Z.AI
|
|
933
954
|
- [Qwen3.6](https://bailian.console.alibabacloud.com/ap-southeast-1/) by Alibaba Cloud
|
|
934
955
|
- [MiMo-V2 Omni](https://platform.xiaomimimo.com/) by Xiaomi
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "1.0
|
|
1
|
+
export declare const VERSION = "1.1.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,11 @@ import { extractFramesTool } from './tools/extractFrames.js';
|
|
|
8
8
|
import { searchTimestampTool } from './tools/searchTimestamp.js';
|
|
9
9
|
import { getVideoInfoTool } from './tools/getVideoInfo.js';
|
|
10
10
|
import { transcribeVideoTool } from './tools/transcribeVideo.js';
|
|
11
|
+
import { textToSpeechTool } from './tools/textToSpeech.js';
|
|
12
|
+
import { generateImageTool } from './tools/generateImage.js';
|
|
13
|
+
import { generateVideoTool } from './tools/generateVideo.js';
|
|
14
|
+
import { generateMusicTool } from './tools/generateMusic.js';
|
|
15
|
+
import { queryGenerationTaskTool } from './tools/queryGenerationTask.js';
|
|
11
16
|
import { setLoggerServer, logProgress } from './utils/logger.js';
|
|
12
17
|
import { initLicenseValidation } from './utils/license.js';
|
|
13
18
|
import { sweepStaleTempDirs } from './utils/tempFiles.js';
|
|
@@ -16,7 +21,7 @@ import { resolveYtDlpPath } from './utils/ytDlpPath.js';
|
|
|
16
21
|
import { registerSessionCleanup, sweepStaleRelayKeys, } from './services/s3Relay.js';
|
|
17
22
|
import { triggerUpdateCheck, waitForUpdateCheck, wrapWithUpdateNotice, } from './utils/updateCheck.js';
|
|
18
23
|
import { VERSION } from './generated/version.js';
|
|
19
|
-
import { analyzeVideoSchema, summarizeVideoSchema, extractFramesSchema, searchTimestampSchema, getVideoInfoSchema, transcribeVideoSchema, } from './tools/schemas.js';
|
|
24
|
+
import { analyzeVideoSchema, summarizeVideoSchema, extractFramesSchema, searchTimestampSchema, getVideoInfoSchema, transcribeVideoSchema, textToSpeechSchema, generateImageSchema, generateVideoSchema, generateMusicSchema, queryGenerationTaskSchema, } from './tools/schemas.js';
|
|
20
25
|
/**
|
|
21
26
|
* Main entry point for the Video Context MCP Server
|
|
22
27
|
* Creates an MCP server, registers all video analysis tools, and connects via stdio
|
|
@@ -109,6 +114,36 @@ async function main() {
|
|
|
109
114
|
description: 'Extract audio from a video and transcribe it using a dedicated speech-to-text provider (Deepgram, AssemblyAI, Groq/Whisper, or Gemini). Supports speaker diarization and translation to English.',
|
|
110
115
|
inputSchema: transcribeVideoSchema,
|
|
111
116
|
}, withUpdateCheck(transcribeVideoTool));
|
|
117
|
+
// Tool 7: text_to_speech - Convert text to speech using MiniMax TTS
|
|
118
|
+
server.registerTool('text_to_speech', {
|
|
119
|
+
title: 'Text to Speech',
|
|
120
|
+
description: 'Convert text to natural speech audio using MiniMax TTS. Supports 40+ languages, multiple voices, and adjustable speed/pitch/volume.',
|
|
121
|
+
inputSchema: textToSpeechSchema,
|
|
122
|
+
}, withUpdateCheck(textToSpeechTool));
|
|
123
|
+
// Tool 8: generate_image - Generate images from text prompt
|
|
124
|
+
server.registerTool('generate_image', {
|
|
125
|
+
title: 'Generate Image',
|
|
126
|
+
description: 'Generate images from a text prompt using MiniMax image-01 model. Supports custom aspect ratios and batch generation.',
|
|
127
|
+
inputSchema: generateImageSchema,
|
|
128
|
+
}, withUpdateCheck(generateImageTool));
|
|
129
|
+
// Tool 9: generate_video - Generate video from text/image prompt
|
|
130
|
+
server.registerTool('generate_video', {
|
|
131
|
+
title: 'Generate Video',
|
|
132
|
+
description: 'Generate a video from a text prompt and/or first-frame image using MiniMax Hailuo models. Returns a task_id; use query_generation_task to poll for completion.',
|
|
133
|
+
inputSchema: generateVideoSchema,
|
|
134
|
+
}, withUpdateCheck(generateVideoTool));
|
|
135
|
+
// Tool 10: generate_music - Generate music from prompt + lyrics
|
|
136
|
+
server.registerTool('generate_music', {
|
|
137
|
+
title: 'Generate Music',
|
|
138
|
+
description: 'Generate music from a prompt and optional lyrics using MiniMax music-2.6. Supports instrumental mode and auto-lyrics generation.',
|
|
139
|
+
inputSchema: generateMusicSchema,
|
|
140
|
+
}, withUpdateCheck(generateMusicTool));
|
|
141
|
+
// Tool 11: query_generation_task - Poll async generation task status
|
|
142
|
+
server.registerTool('query_generation_task', {
|
|
143
|
+
title: 'Query Generation Task',
|
|
144
|
+
description: 'Query the status of an asynchronous generation task (e.g., video generation). Returns task status and downloads the result when complete.',
|
|
145
|
+
inputSchema: queryGenerationTaskSchema,
|
|
146
|
+
}, withUpdateCheck(queryGenerationTaskTool));
|
|
112
147
|
// Connect to VS Code via stdio transport
|
|
113
148
|
const transport = new StdioServerTransport();
|
|
114
149
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kimiClient.d.ts","sourceRoot":"","sources":["../../src/services/kimiClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"kimiClient.d.ts","sourceRoot":"","sources":["../../src/services/kimiClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAcnD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAQ;gBAEV,OAAO,EAAE,iBAAiB;IAOtC;;;;OAIG;IACG,WAAW,CACf,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAc3D;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BrE;;OAEG;IACG,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;KACf,CAAC;IAyCF;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EACjD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IA+BlB,OAAO,CAAC,6BAA6B;CA6BtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CAMpD"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
2
|
/**
|
|
3
|
-
* Kimi K2.
|
|
3
|
+
* Kimi K2.6 Client
|
|
4
4
|
* Handles video upload and analysis using Moonshot AI's API
|
|
5
5
|
*/
|
|
6
6
|
const KIMI_BASE_URL = 'https://api.moonshot.ai/v1';
|
|
7
|
+
const KIMI_MODEL = 'kimi-k2.6';
|
|
8
|
+
/** Thinking config objects — K2.6 enables thinking by default; be explicit. */
|
|
9
|
+
const THINKING_DISABLED = { type: 'disabled' };
|
|
10
|
+
const THINKING_ENABLED = { type: 'enabled' };
|
|
7
11
|
export class KimiClient {
|
|
8
12
|
client;
|
|
9
13
|
constructor(options) {
|
|
@@ -37,7 +41,8 @@ export class KimiClient {
|
|
|
37
41
|
*/
|
|
38
42
|
async analyzeVideo(fileId, question) {
|
|
39
43
|
const response = await this.client.chat.completions.create({
|
|
40
|
-
model:
|
|
44
|
+
model: KIMI_MODEL,
|
|
45
|
+
thinking: THINKING_DISABLED,
|
|
41
46
|
messages: [
|
|
42
47
|
{
|
|
43
48
|
role: 'user',
|
|
@@ -62,7 +67,8 @@ export class KimiClient {
|
|
|
62
67
|
*/
|
|
63
68
|
async analyzeVideoWithThinking(fileId, question) {
|
|
64
69
|
const response = await this.client.chat.completions.create({
|
|
65
|
-
model:
|
|
70
|
+
model: KIMI_MODEL,
|
|
71
|
+
thinking: THINKING_ENABLED,
|
|
66
72
|
messages: [
|
|
67
73
|
{
|
|
68
74
|
role: 'user',
|
|
@@ -101,7 +107,9 @@ export class KimiClient {
|
|
|
101
107
|
},
|
|
102
108
|
}));
|
|
103
109
|
const response = await this.client.chat.completions.create({
|
|
104
|
-
model:
|
|
110
|
+
model: KIMI_MODEL,
|
|
111
|
+
// @ts-expect-error Moonshot extends ChatCompletionCreateParams with 'thinking'; not in OpenAI SDK types for image-only calls
|
|
112
|
+
thinking: THINKING_DISABLED,
|
|
105
113
|
messages: [
|
|
106
114
|
{
|
|
107
115
|
role: 'user',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kimiClient.js","sourceRoot":"","sources":["../../src/services/kimiClient.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAG3B;;;GAGG;AAEH,MAAM,aAAa,GAAG,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"kimiClient.js","sourceRoot":"","sources":["../../src/services/kimiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MiniMax API Client
|
|
3
|
+
* Handles media generation: TTS, image, video, and music.
|
|
4
|
+
*
|
|
5
|
+
* API Specification:
|
|
6
|
+
* - Base URL: https://api.minimax.io
|
|
7
|
+
* - Auth: Authorization: Bearer <api_key>
|
|
8
|
+
* - TTS: POST /v1/t2a_v2 (sync, hex or url output)
|
|
9
|
+
* - Image: POST /v1/image_generation (sync, url or base64 output)
|
|
10
|
+
* - Video: POST /v1/video_generation (async → task_id)
|
|
11
|
+
* - Music: POST /v1/music_generation (sync, hex or url output)
|
|
12
|
+
* - Query: GET /v1/query/video_generation?task_id=X
|
|
13
|
+
* - Download: GET /v1/files/retrieve?file_id=X
|
|
14
|
+
*/
|
|
15
|
+
import type { TtsParams, TtsResult, ImageParams, ImageResult, VideoParams, VideoTaskResult, MusicParams, MusicResult, FileDownloadResult } from '../types/media.js';
|
|
16
|
+
export interface MinimaxClientOptions {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
baseURL?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class MinimaxClient {
|
|
21
|
+
private apiKey;
|
|
22
|
+
private baseURL;
|
|
23
|
+
constructor(options: MinimaxClientOptions);
|
|
24
|
+
textToSpeech(params: TtsParams): Promise<TtsResult>;
|
|
25
|
+
generateImage(params: ImageParams): Promise<ImageResult>;
|
|
26
|
+
createVideoTask(params: VideoParams): Promise<{
|
|
27
|
+
taskId: string;
|
|
28
|
+
}>;
|
|
29
|
+
queryVideoTask(taskId: string): Promise<VideoTaskResult>;
|
|
30
|
+
downloadFile(fileId: string): Promise<FileDownloadResult>;
|
|
31
|
+
generateMusic(params: MusicParams): Promise<MusicResult>;
|
|
32
|
+
private buildTtsBody;
|
|
33
|
+
private buildTtsVoiceSetting;
|
|
34
|
+
private parseTtsResult;
|
|
35
|
+
private buildMusicBody;
|
|
36
|
+
private parseMusicResult;
|
|
37
|
+
private post;
|
|
38
|
+
private get;
|
|
39
|
+
private downloadAsBuffer;
|
|
40
|
+
private assertSuccess;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a MinimaxClient if the API key is available.
|
|
44
|
+
* @param apiKey - MiniMax API key (MINIMAX_API_KEY env var)
|
|
45
|
+
* @param baseURL - Optional custom base URL
|
|
46
|
+
* @returns MinimaxClient instance or null if no API key
|
|
47
|
+
*/
|
|
48
|
+
export declare function createMinimaxClient(apiKey?: string, baseURL?: string): MinimaxClient | null;
|
|
49
|
+
//# sourceMappingURL=minimaxClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimaxClient.d.ts","sourceRoot":"","sources":["../../src/services/minimaxClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AA6E1B,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,EAAE,oBAAoB;IAOnC,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAcnD,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAqCxD,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BjE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA0BxD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqBzD,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAc9D,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,gBAAgB;YAgBV,IAAI;YA4CJ,GAAG;YA0CH,gBAAgB;IA4B9B,OAAO,CAAC,aAAa;CAOtB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,GAAG,IAAI,CAItB"}
|