Vision MCP Server
Allows describing and transcribing videos from Bilibili by downloading them via Bilibili's API and processing them with visual analysis and optional audio transcription.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vision MCP ServerDescribe the image at https://example.com/cat.jpg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vision MCP Server
MCP server for image/video understanding and audio transcription. Uses GLM-4.6V-Flash for visual analysis and faster-whisper for audio transcription.
This repository is a personal/demo project. It integrates external models and media-download tools; check each dependency and model license before commercial use. Keep
.envlocal and never commit API keys or runtime logs.
Screenshots
Web workflow

Summary result

Frame analysis

The screenshots show a real end-to-end Bilibili video test using the Web interface. The summarized topic belongs to the test video and is not bundled project content.
Related MCP server: qwen-omni-mcp
Why this project
Long videos often contain useful information but are expensive to watch from beginning to end. This project turns a video into a compact, searchable understanding result by combining visual frames, speech, subtitles, and a final language-model summary.
Architecture
Web UI
-> Hono HTTP/SSE layer
-> media acquisition and type detection
-> FFmpeg frame/audio preprocessing
-> GLM vision analysis + faster-whisper transcription
-> structured summary responseThe MCP layer exposes the same capabilities to AI clients, while the Web UI provides a human-facing workflow with progress events. Visual analysis and transcription can run in parallel when the input supports both.
Typical workflow
Paste a public video URL or provide a local media file.
Choose
smart,quick, orvisualmode and optionally describe the information to focus on.The server detects the media type, downloads or reads it, extracts representative frames, and prepares audio.
GLM analyzes visual content and faster-whisper produces a timestamped transcript.
The result is combined into a structured summary and displayed through the Web UI or returned by MCP.
Validation
TypeScript build completed with
npm run build.End-to-end validation completed with a public Bilibili video.
Verified progress events for frame analysis, transcription, summary generation, and completion.
Tested timeout, VAD, dynamic-module, and failed-audio paths during iteration.
Scope and limitations
This is a personal/demo project, not a hosted public inference service.
API credentials, model weights, runtime logs, and generated media are intentionally excluded from Git.
Long videos and CPU transcription can be slow and require larger timeouts.
Video downloading must comply with the source platform's terms and applicable copyright rules.
Tools
Tool | Description |
| Describe an image (URL, base64, or local file) |
| Describe a video with visual analysis + optional audio transcription |
| Auto-detect file type (image/video/audio) and describe |
| Transcribe audio from a video or audio file using Whisper |
Prerequisites
Node.js 18+
ffmpeg (for video frame extraction and audio processing)
ffprobe (for video duration detection, usually bundled with ffmpeg)
Python 3.8+ with
faster-whisperinstalled (pip install faster-whisper)Zhipu API key (for GLM-4.6V-Flash vision model)
Environment Variables
Variable | Default | Description |
| (required) | Zhipu API key for GLM-4.6V-Flash |
|
| Python interpreter path (e.g. |
|
| ffmpeg executable path |
|
| ffprobe executable path |
|
| yt-dlp executable path (for non-Bilibili video downloads) |
|
| Whisper model size ( |
|
| Whisper transcription timeout in ms |
|
| Video download timeout in ms |
|
| Single GLM API call timeout in ms |
Register MCP Server
Claude Code
Edit ~/.claude/.mcp.json:
{
"mcpServers": {
"vision": {
"command": "node",
"args": ["/path/to/vision-mcp-server/dist/index.js"],
"env": {
"ZHIPU_API_KEY": "your-api-key",
"PYTHON_PATH": "python",
"FFMPEG_PATH": "ffmpeg",
"FFPROBE_PATH": "ffprobe"
}
}
}
}Codex CLI
codex mcp add vision --env ZHIPU_API_KEY=your-api-key --env PYTHON_PATH=python --env FFMPEG_PATH=ffmpeg -- node /path/to/vision-mcp-server/dist/index.jsOr edit ~/.codex/config.toml:
[mcp_servers.vision]
command = "node"
args = ["/path/to/vision-mcp-server/dist/index.js"]
[mcp_servers.vision.env]
ZHIPU_API_KEY = "your-api-key"
PYTHON_PATH = "python"
FFMPEG_PATH = "ffmpeg"
FFPROBE_PATH = "ffprobe"OpenCode
Edit ~/.config/opencode/opencode.json or your project's opencode.json:
{
"mcp": {
"vision": {
"type": "local",
"enabled": true,
"command": ["node", "/path/to/vision-mcp-server/dist/index.js"],
"environment": {
"ZHIPU_API_KEY": "your-api-key",
"PYTHON_PATH": "python",
"FFMPEG_PATH": "ffmpeg",
"FFPROBE_PATH": "ffprobe"
},
"timeout": 300000
}
}
}Note: OpenCode's
timeoutfield controls how long it waits for MCP tool responses. Set to at least 300000 (5 minutes) for video processing with Whisper transcription.
Windows Example
On Windows, if ffmpeg/python aren't on PATH, specify full paths:
{
"env": {
"ZHIPU_API_KEY": "your-api-key",
"PYTHON_PATH": "D:\\miniconda\\python.exe",
"FFMPEG_PATH": "C:\\Users\\You\\AppData\\Local\\Microsoft\\WinGet\\Packages\\Gyan.FFmpeg_...\\bin\\ffmpeg.exe",
"FFPROBE_PATH": "C:\\Users\\You\\AppData\\Local\\Microsoft\\WinGet\\Packages\\Gyan.FFmpeg_...\\bin\\ffprobe.exe"
}
}Build
npm install
npx tscPublic repository notes
Copy
.env.exampleto.envand fill in local values before running.The
.env,web.log,dist/, andnode_modules/paths are intentionally excluded from Git.This project does not train or distribute a vision model. It orchestrates external vision APIs, video processing, and speech recognition.
Long-video transcription can be slow on CPU and may require a longer MCP or Web request timeout.
How It Works
describe_video (online video)
Bilibili: Download via API → extract base64 → call GLM-4V video API + Whisper in parallel
Other URLs: Try GLM native video API first → fallback to yt-dlp download → frame extraction + Whisper
Local file: Extract key frames (adaptive interval) → batch GLM-4V analysis + Whisper in parallel
Frame extraction strategy
Dynamic interval based on video duration (3-30 seconds per frame)
Target ~12 frames, max 15 frames
Short videos (< 1 min): 3s/frame for detail
Long videos (5+ min): 15-30s/frame for coverage
transcribe_audio
Extract audio to WAV with ffmpeg (16kHz mono)
Run faster-whisper via Python subprocess
Return timestamped transcript
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
Multimodal video analysis MCP — transcription, vision, and OCR for any video URL.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables multimodal AI capabilities through GLM-4.5V API for image processing, visual querying with OCR/QA/detection modes, and file content extraction from various formats including PDFs, documents, and images.3Apache 2.0
- AlicenseAqualityAmaintenanceEnables Claude Code and other AI agents to understand videos and images via Qwen3.7-Plus, supporting native video analysis, image understanding, and convenience tools like summarization and OCR.5402MIT
- FlicenseAqualityCmaintenanceEnables AI assistants to recognize and extract information from images via GLM-4V, supporting automatic screenshot recognition and MCP-based local image file reading for non-vision models like DeepSeek.1
- AlicenseNot gradedqualityBmaintenanceEnables text-only LLMs to see images/videos via cloud vision models, offering vision chat, OCR, grounding, and media info tools with free GLM fallback.1Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xkhenjyh41805-cell/vision-mcp-video-summary'
If you have feedback or need assistance with the MCP directory API, please join our Discord server