Setup

In Cursor, open Settings → MCP → Add new server, or edit ~/.cursor/mcp.json directly:

{
  "mcpServers": {
    "media-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@avclabs.ai/media-mcp@latest",
        "media-mcp"
      ],
      "env": {
        "API_KEY": "your-api-key"
      }
    }
  }
}

CLI equivalent for the Command palette: env API_KEY=your-api-key npx -y -p @avclabs.ai/media-mcp@latest media-mcp. Requires Node.js ≥ 18; grab a key from the dashboard.

Available tools

ToolWhat it does
create_taskAsync video enhancement — upscaling up to 2K, quality enhancement
get_task_statusPoll task progress and fetch the result URL
enhance_video_syncSynchronous mode for short clips (truncates at 45s)
enhance_image_syncImage enhancement and 1–4x upscaling (45s truncation)
colorize_image_syncColorize black-and-white photos
denoise_image_syncRemove image noise and grain
get_image_task_statusPoll image task progress and fetch the result URL
sam3_predictText-prompt segmentation via SAM3 — masks, boxes, scores
get_sam3_task_statusPoll SAM3 task progress and fetch the result URL

Only need one capability? Per-capability packages (video, image, SAM3) are coming soon — installing just one keeps Cursor's tool context smaller and tool selection more accurate.

Example prompts

  • "Upscale promo-final.mp4 to 1080p and ping me when it finishes"
  • "Denoise and upscale ./assets/hero-shot.jpg 2x"
  • "Segment the background objects in ./screenshots/home.png"
  • "Batch-enhance every mp4 in ./footage and report status"

Tips

  • For videos that take longer than ~45 seconds to process, let Cursor use create_task + get_task_status (async) — sync calls truncate.
  • Dragging an attachment into Cursor doesn't always pass a file path to the MCP server; typing the absolute path is more reliable.