makia-vision-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Makia Vision MCP — Media Intelligence for any MCP client
English | فارسی
One MCP server that gives your agent eyes and hands for media: deterministic video/image/audio engines (FFmpeg, sharp) plus pluggable AI providers (Gemini, Qwen3-VL, any OpenAI-compatible endpoint, whisper.cpp). Every answer is structured, timestamped, and evidence-backed — the server returns video_id + start_ms + end_ms windows you can re-verify with video_frame/video_clip.
video_analyze → { answer, events: [{start_ms, end_ms, description, confidence, evidence}] }
→ video_clip(evidence) → independent verificationDesign rules (from SPEC.md)
Video is a first-class sibling of images, not a mode of
image_analyze.Time is canonical — integer milliseconds internally;
HH:MM:SS.mmmat the edge. Never frame numbers.Artifacts are immutable — every operation creates a new artifact with lineage. Never overwrites sources.
Every AI claim carries evidence — no evidence → marked unverified.
Deterministic first — if FFprobe/FFmpeg can answer, no AI call happens.
Privacy is structural — only
*_analyze/video_transcribemay transmit media, only whencloud_policyallows.No raw ffmpeg args — structured ops compile to FFmpeg invocations internally.
Related MCP server: pictor-mcp
Quickstart
Prereqs: Node ≥ 22.5 and ffmpeg/ffprobe on PATH (Windows: winget install ffmpeg; macOS: brew install ffmpeg; Debian/Ubuntu: sudo apt install ffmpeg; Arch: sudo pacman -S ffmpeg). Check with makia-vision-mcp --doctor.
// Standard config — works in Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Cline, …
{
"mcpServers": {
"makia-vision": {
"command": "npx",
"args": ["-y", "makia-vision-mcp@latest"],
"env": {
// optional: enables AI analysis. All deterministic tools work without keys.
"GEMINI_API_KEY": "AIza…"
}
}
}
}claude mcp add makia-vision -s user -e GEMINI_API_KEY=AIza… -- npx -y makia-vision-mcp@latest
# scopes: -s user (all projects) | -s project (committed .mcp.json) | -s local (this project only)Build the bundle: npm pack && npx @anthropic-ai/mcpb pack packaging/mcpb/manifest.json — then open the resulting .mcpb file, or paste the standard config into claude_desktop_config.json.
Add to .vscode/mcp.json (workspace) or user settings — standard snippet above. For secrets prefer input variables: "inputs": [{ "name": "gemini", "type": "promptString", "password": true }].
~/.cursor/mcp.json (global) or .cursor/mcp.json (project) — standard snippet above; ${env:GEMINI_API_KEY} interpolation supported.
~/.gemini/settings.json → mcpServers block — standard snippet above.
{
"mcpServers": {
"makia-vision": {
"command": "npx", "args": ["-y", "makia-vision-mcp@latest"],
"env": {
"MAKIA_CLOUD_POLICY": "LOCAL",
// any OpenAI-compatible local server (LM Studio :1234, llama.cpp, vLLM, Ollama /v1):
"OPENAI_BASE_URL": "http://127.0.0.1:1234/v1",
"WHISPER_CPP_BIN": "/usr/local/bin/whisper-cli",
"WHISPER_CPP_MODEL": "/models/ggml-base.bin"
}
}
}
}MAKIA_CLOUD_POLICY=LOCAL guarantees media never leaves the machine; the mock-friendly openai-compat path covers local multimodal servers.
Tools (v1 — see media_capabilities for live status)
Tool | Deterministic | Description |
| ✔ | Import from path or SSRF-hardened URL → |
| ✔ | Codec/streams/duration/fps/chapters/metadata |
| ✔ | Frames at exact timestamps or uniform sampling → |
| ✔ | FFmpeg scene detection → |
| ✔ | Frame-accurate |
| ✔ | crop/resize/rotate/fps/speed; mp4/webm/mkv |
| ✔ | Extract audio track → |
| ✔/AI | Subtitle streams → whisper.cpp → cloud ASR → |
| ✔ | extract / import / export (srt/vtt) |
| ✔ | Stream properties + PSNR/SSIM |
| ✔ | Export payload (never overwrites) |
| ✔ | Dimensions + dominant color palette + exact pixel color |
| ✔ | resize/crop/rotate/flip/convert/watermark/blur/sharpen/modulate/pad → new artifact |
| AI | Vision-provider analysis of any image artifact |
| AI | 14 modes (summary/timeline/locate_event/ocr/security/…), fast/balanced/deep, adaptive coarse→fine |
| AI | Structured event timeline (optionally focused) |
| ✔ | Store management + live capability report |
Storage
$MAKIA_VISION_HOME (default ~/.makia-vision)
artifacts/<vid_|img_|aud_|trn_|scm_…>/meta.json + data.<ext>
tmp/ # scratch, swept at startup + TTL
route-log.ndjson # routing/provider decisions (observability)Configuration
// ~/.makia-vision/config.json (all optional)
{
"models": {
"image": { "provider": "gemini", "model": "gemini-3.8-flash" },
"video": { "provider": "qwen", "model": "qwen3-vl-plus" },
"transcription": { "provider": "openai", "model": "whisper-1" },
"cloud_policy": "HYBRID"
},
"security": {
"max_duration_s": 14400, "max_width": 8192, "max_height": 8192,
"max_pixels_per_frame": 8294400, "max_total_pixels": 497664000,
"max_streams": 64, "max_bytes": 21474836480, "probe_timeout_ms": 30000, "op_timeout_s": 600
},
"keep_artifacts_h": 72
}Env: MAKIA_VISION_HOME, MAKIA_CLOUD_POLICY, GEMINI_API_KEY/GOOGLE_API_KEY, OPENAI_API_KEY, OPENAI_BASE_URL, QWEN_API_KEY/DASHSCOPE_API_KEY, WHISPER_CPP_BIN, WHISPER_CPP_MODEL, MAKIA_VISION_FFMPEG_DIR (air-gapped), HTTPS_PROXY (fetcher/provider calls).
Universal install matrix
Platform | Status |
Windows x64 / ARM64 | npm prebuilt via |
macOS Intel / Apple Silicon | npm prebuilt via |
Linux x64 / ARM64 / armv7 (glibc, musl) | npm prebuilt via |
Offline / air-gapped |
|
Security posture
Decode budgets before any decode: duration/width/height/total-pixels/streams/bytes caps; probing under strict timeouts (malformed-container abuse).
URL ingestion through a hardened fetcher: scheme allowlist, DNS pinning, private-network denial (CGNAT/link-local/loopback), redirect validation, size caps. Never
ffmpeg -i URL.Immutability: ops never overwrite sources; exports refuse to overwrite existing files.
Prompt injection: images/video may contain adversarial content; the server returns structured evidence (not free-text instructions) and marks unverified claims.
Error taxonomy: structured
{error:{code,message}}across the MCP boundary — never raw stack traces.
Development
npm install # sharp prebuilts fetched per-platform
npm run build # tsc → dist/
npm test # unit + ffmpeg integration + MCP stdio e2e
npm run dev # stdio via tsx
node dist/index.js --http --port 8629 # Streamable HTTP on 127.0.0.1
node dist/index.js --doctor # capability health checkLicense: project code MIT — see LICENSE-NOTES.md for the FFmpeg/libvips/provider license chain. Architecture: SPEC.md · research: RESEARCH.md · plan: PLAN.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP tools for FFmpeg-style video and audio processing through FFMPEG API.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
FFmpeg processing for video, audio and images via MCP with OAuth and shared account allowance.
Remote MCP for C2PA intake verifier MCP, structured receipts, audit logs, and reviewer-ready evidenc
Related MCP Servers
- FlicenseCqualityBmaintenanceProvides a durable MCP media pipeline for image, video, audio, and storyboard generation, with FFmpeg composition, provider routing, and resumable long-running jobs.21-
- AlicenseAqualityBmaintenanceEnables MCP clients to inspect, convert, resize, compress, crop, rotate, watermark, background-remove, and batch-process images with secure path confinement and result verification.14MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible clients to generate images and videos, synthesize speech, clone and design voices, and create related media outputs.493 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables applications and AI agents to inspect, convert, extract, and process media through asynchronous HTTP and MCP tasks, with optional natural-language planning and A2A interoperability.MIT