approve_content
What it does
Marks a content item as Approvato and copies its latest review-area upload into the final-cut (VF) area. This is what makes deliver_asset work later.
The promotion is the same code path the staff dashboard uses when a reviewer clicks Approve — no parallel R2 pipeline, no duplicate state.
Input schema
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | required | — |
Content id to approve. |
Example call
json{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "approve_content", "arguments": { "id": "c_abc123def456" } } }
Response shape
json{ "ok": true, "id": "c_abc123def456", "previous_stato": "Attesa Approvazione", "new_stato": "Approvato", "promotion": { "promoted_upload_id": "u_xyz789abcdef", "vf_r2_key": "your-slug/vf/Brand/Title/...mp4", "from_review_r2_key": "your-slug/review/Brand/Title/...mp4" } }
Usage from Claude Desktop
prompt"Approve c_abc123 — the team signed off on the third cut this morning."
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": "approve_content", "arguments": {"id": "c_abc123"} }, }) 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: "approve_content", arguments: { id: "c_abc123" }, }, }), }); const data = await r.json(); console.log(data);
Required env vars / integrations
- Uses the workspace R2 binding (
UPLOADS) to copy the review file into the VF area — no external integration required.
Known limitations
- Requires a write scope API key.
- If there's no review upload on the item, the promotion step returns an explanatory error but the status change still lands.
- Idempotent at the status level (re-approving an
Approvatoitem is a no-op for status, but always re-promotes the latest review file).