Shoot Plan
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Practical filming plans for AI assistants. Shot-plan checks are not yet available to customers.
| Author | uk.co.theamateur |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2040 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Shoot Plan": {
"url": "https://theamateur.co.uk/mcp/shoot-plan",
"transport": "streamable-http"
}
}
}
Measured tools (11)
shoot_plan_capabilitiesread-onlyReturn truthful Shoot Plan scope, availability, privacy and commercial state.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_exampleread-onlyReturn a synthetic example plan generated by the real planner, with its provenance.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_quoteread-onlyCalculate a deterministic public quote from non-private project metadata. Do not send a script or brief.
Parameters:
projectType(required) — stringtargetRuntimeSeconds(required) — integersceneCount(required) — integerlocationCount(required) — integerpeopleCount(required) — integershootMinutes(required) — integerorientation(required) — stringequipment— arraynoAiImagery— Legacy compatibility field; omit or send true. The customer films their own material.coverageNeeds— arrayownFootageOnly— Customer films their own material. Same meaning as noAiImagery; omit or send true.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_createCreate a plan for an authenticated organisation after authoritative payment confirmation.
Parameters:
orderId(required) — string — The order id, or the customer-facing order reference shown on the website (for example A140A800).intake(required)idempotencyKey(required) — string
Hints: read-only no · destructive no · idempotent yes · open-world no
shoot_plan_listread-onlyList the authenticated organisation's Shoot Plans, most recently changed first, without returning private intake or full plan content. Archived plans are left out unless includeArchived is true. Each plan's taskId is the ID every other plan tool takes. Structured result: {plans:[...]}.
Parameters:
includeArchived— boolean — Also list plans the owner archived. Default false.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_statusread-onlyReturn a plan's status, version, whether its included revision is used, its customer-facing order reference, and progress (essential shots ticked, next shot, when the last tick was made). Read-only. Use the full taskId from shoot_plan_list (not planId). A unique eight-character task prefix or orderReference also works. Connections see only their own live or owner-test plans.
Parameters:
taskId(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_getread-onlyReturn a full plan: shots in filming order (priority must = essential), setup groups per location or visit, checklist, coverage risks, progress (item keys already ticked), progressSummary with counts, each tick's time and source (web, field or agent), and timeSummary when the plan has timing. Structured shots have a unique title and whole filming minutes (at least 1); older free-text shots omit both. Use a shot's shotId for progress. Read-only. Use the full taskId from shoot_plan_list (not planId). A unique eight-character task prefix or orderReference also works. Connections see only their own live or owner-test plans.
Parameters:
taskId(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_timingread-onlyStructured plans only (not older free-text plans). Compare planned and actual filming time between consecutive ticks in field mode. plannedSeconds is the planned time of those measured tick-to-tick steps, not the whole plan; planPlannedSeconds is the whole plan's planned shot work when present. Read-only. Use the full taskId from shoot_plan_list (not planId). A unique eight-character task prefix or orderReference also works. Connections see only their own live or owner-test plans.
Parameters:
taskId(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_revisedestructiveUse the plan's one included revision. This cannot be undone and uses up that revision, so call shoot_plan_revision_preview first and confirm with the person. For structured plans, change filming time or transfer time (constraintUpdates.availableMinutes, locationTransferMinutes), framing, or structuredChanges. Use the full taskId from shoot_plan_list (not planId). A unique eight-character task prefix or orderReference also works. Connections see only their own live or owner-test plans.
Parameters:
taskId(required) — stringrequest(required) — stringidempotencyKey(required) — stringframingMode— stringaudioPriority— stringreplacementBeats— arrayconstraintUpdates— objectstructuredChanges— object — Structured plans only: typed changes that stay within the plan's scope.
Hints: read-only no · destructive yes · idempotent yes · open-world no
shoot_plan_revision_previewread-onlyStructured plans only; older free-text plans cannot be previewed. Preview a revision without using it: what would change, which checked shots would be cleared, and whether it still fits. For example constraintUpdates.availableMinutes: 30 answers "what if I only had 30 minutes?". Never uses the included revision. Use the full taskId from shoot_plan_list (not planId). A unique eight-character task prefix or orderReference also works. Connections see only their own live or owner-test plans.
Parameters:
taskId(required) — stringframingMode— stringaudioPriority— stringreplacementBeats— arrayconstraintUpdates— objectstructuredChanges— object — Structured plans only: typed changes that stay within the plan's scope.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
shoot_plan_progress_syncTick or untick shots and checklist items. Each op: itemKey "shot:<shotId>" or "check:<itemId>" from shoot_plan_get, basePlanVersion = the plan's version, a new random UUID v4 as opId, state "complete" or "incomplete". Retry-safe: resending the same opId does nothing twice. An op made against an older basePlanVersion still applies when that item is unchanged in the current version; otherwise its result is item_changed_in_current_version and nothing changes. Ticking records that the person checked the shot, not its technical quality. Use the full taskId from shoot_plan_list (not planId). A unique eight-character task prefix or orderReference also works. Connections see only their own live or owner-test plans.
Parameters:
taskId(required) — stringops(required) — array
Hints: read-only no · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.