Lumiqa Docs

analyze_video

Vision AI read

What it does

Sends the latest review video for a content item (or a specific upload_id) to Claude vision and returns a strict-JSON analysis: hook score, retention prediction, detected objects/brands, transcript excerpt, sentiment, suggested cuts, and a two-sentence summary.

Use focus to narrow scope — e.g. focus: "hook" for a fast first-3-seconds-only pass, or focus: "brands" when you only care about IP risk.

Input schema

NameTypeRequiredDefaultDescription
content_id string optional Uses the latest review upload. Pass this or upload_id.
upload_id string optional Specific upload to analyze. Overrides content_id.
focus string optional "full" hook · brands · pacing · full.

Example call

json{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "analyze_video",
    "arguments": {
        "content_id": "c_abc123",
        "focus": "full"
    }
  }
}

Response shape

json{
  "ok": true,
  "content_id": "c_abc123",
  "upload_id": "u_xyz789",
  "filename": "veo_cut_v3.mp4",
  "model_used": "claude-sonnet-4-6",
  "focus": "full",
  "analysis": {
    "hook_score": 7,
    "retention_prediction": "high",
    "detected_objects": ["espresso machine", "barista hands"],
    "detected_brands": ["La Marzocco"],
    "transcript_excerpt": "Today we're pulling the perfect shot...",
    "sentiment": "positive",
    "suggested_cuts": [
      { "start": 4.2, "end": 5.8, "reason": "dead air between steps" }
    ],
    "summary": "Tight espresso tutorial with strong opening shot. La Marzocco logo is prominently visible — flag for sponsorship disclosure."
  },
  "notes": [ "Video URL passed directly to Claude API..." ]
}

Usage from Claude Desktop

prompt"Analyze the latest review cut on c_abc123 and tell me if the hook is strong enough for Reels."

Usage from Python

pythonimport requests

LUMIQA = "https://lumiqa.io/mcp/your-slug"
HEADERS = {"Authorization": "Bearer lk_live_xxxxxxxxxxxx"}

r = requests.post(LUMIQA, headers=HEADERS, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "tools/call",
    "params": {
        "name": "analyze_video",
        "arguments": {"content_id": "c_abc123", "focus": "hook"}
    },
})
print(r.json())

Usage from Node

javascriptconst r = await fetch("https://lumiqa.io/mcp/your-slug", {
  method: "POST",
  headers: {
    "Authorization": "Bearer lk_live_xxxxxxxxxxxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    jsonrpc: "2.0", id: 1,
    method: "tools/call",
    params: {
      name: "analyze_video",
      arguments: { content_id: "c_abc123", focus: "hook" },
    },
  }),
});
const data = await r.json();
console.log(data);

Required env vars / integrations

Known limitations