Skip to main content
Glama

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 verification

Design rules (from SPEC.md)

  1. Video is a first-class sibling of images, not a mode of image_analyze.

  2. Time is canonical — integer milliseconds internally; HH:MM:SS.mmm at the edge. Never frame numbers.

  3. Artifacts are immutable — every operation creates a new artifact with lineage. Never overwrites sources.

  4. Every AI claim carries evidence — no evidence → marked unverified.

  5. Deterministic first — if FFprobe/FFmpeg can answer, no AI call happens.

  6. Privacy is structural — only *_analyze/video_transcribe may transmit media, only when cloud_policy allows.

  7. No raw ffmpeg args — structured ops compile to FFmpeg invocations internally.

Related MCP server: ffmpeg-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.jsonmcpServers 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

video_open / image_open

Import from path or SSRF-hardened URL → vid_… / img_…

video_inspect

Codec/streams/duration/fps/chapters/metadata

video_frame

Frames at exact timestamps or uniform sampling → img_… with provenance

video_scenes

FFmpeg scene detection → scm_… scene map (+representative frames)

video_clip

Frame-accurate [start_ms,end_ms) extraction → new artifact

video_transform / video_transcode

crop/resize/rotate/fps/speed; mp4/webm/mkv

video_audio

Extract audio track → aud_… (wav/mp3/aac/flac)

video_transcribe

✔/AI

Subtitle streams → whisper.cpp → cloud ASR → trn_…

video_subtitles

extract / import / export (srt/vtt)

video_compare

Stream properties + PSNR/SSIM

video_export / image_export

Export payload (never overwrites)

image_inspect

Dimensions + dominant color palette + exact pixel color

image_edit

resize/crop/rotate/flip/convert/watermark/blur/sharpen/modulate/pad → new artifact

image_analyze

AI

Vision-provider analysis of any image artifact

video_analyze

AI

14 modes (summary/timeline/locate_event/ocr/security/…), fast/balanced/deep, adaptive coarse→fine

video_timeline

AI

Structured event timeline (optionally focused)

media_list / media_delete / media_capabilities

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 @img/sharp-win32-*; ffmpeg via winget/MSYS2

macOS Intel / Apple Silicon

npm prebuilt via @img/sharp-darwin-*; ffmpeg via brew

Linux x64 / ARM64 / armv7 (glibc, musl)

npm prebuilt via @img/sharp-linux-*; ffmpeg via package manager

Offline / air-gapped

npm pack tarball + MAKIA_VISION_FFMPEG_DIR pointing at a pinned runtime; cloud_policy: RESTRICTED

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 check

License: project code MIT — see LICENSE-NOTES.md for the FFmpeg/libvips/provider license chain. Architecture: SPEC.md · research: RESEARCH.md · plan: PLAN.md.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables comprehensive video and audio processing using FFmpeg, supporting tasks like metadata extraction, clipping, scaling, and adding transitions or overlays. It provides a high-performance interface for building media processing microservices via FastMCP.
    12
    10
    -
  • A
    license
    A
    quality
    B
    maintenance
    Provides MCP-compatible AI agents with a verify_image tool to check a photo's capture time and provenance using C2PA, EXIF, XMP metadata, and pixel forensics, returning a verdict and confidence score.
    1
    86
    2
    MIT

Latest Blog Posts

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/ParsaSarcheshmeh/makia-vision-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server